change remove tabs for verify/sign
[electrum-nvc.git] / gui / qt / main_window.py
index 3044bd4..bba7e8f 100644 (file)
@@ -409,6 +409,9 @@ class ElectrumWindow(QMainWindow):
         plugins_labels = tools_menu.addAction(_("&Plugins"))
         plugins_labels.triggered.connect(self.plugins_dialog)
 
+        verifymessage = tools_menu.addAction(_("&Verify message"))
+        verifymessage.triggered.connect(self.verify_message)
+
         tools_menu.addSeparator()
 
         csv_transaction_menu = tools_menu.addMenu(_("&Create transaction"))
@@ -1151,7 +1154,7 @@ class ElectrumWindow(QMainWindow):
             menu.addAction(_("Edit label"), lambda: self.edit_label(True))
             if self.wallet.seed:
                 menu.addAction(_("Private key"), lambda: self.show_private_key(addr))
-                menu.addAction(_("Sign message"), lambda: self.sign_message(addr))
+                menu.addAction(_("Sign message"), lambda: self.sign_message(True,addr))
             if addr in self.wallet.imported_keys:
                 menu.addAction(_("Remove from wallet"), lambda: self.delete_imported_key(addr))
 
@@ -1718,16 +1721,26 @@ class ElectrumWindow(QMainWindow):
         except Exception as e:
             self.show_message(str(e))
 
-    def sign_message(self, address):
-        if not address: return
+    def do_verify(self, address, message, signature):
+        message = unicode(message.toPlainText())
+        message = message.encode('utf-8')
+        if bitcoin.verify_message(address.text(), str(signature.toPlainText()), message):
+            self.show_message(_("Signature verified"))
+        else:
+            self.show_message(_("Error: wrong signature"))
+
+
+    def sign_message(self, sign, address):
+        if sign and not address: return
         d = QDialog(self)
         d.setModal(1)
-        d.setWindowTitle(_('Sign Message'))
+        if sign:
+            d.setWindowTitle(_('Sign Message'))
+        elif not sign:
+            d.setWindowTitle(_('Verify Message'))
         d.setMinimumSize(410, 290)
 
-        tab_widget = QTabWidget()
-        tab = QWidget()
-        layout = QGridLayout(tab)
+        layout = QGridLayout(d)
 
         sign_address = QLineEdit()
 
@@ -1745,61 +1758,23 @@ class ElectrumWindow(QMainWindow):
         layout.addWidget(sign_signature, 3, 1)
         layout.setRowStretch(3,1)
 
-
-        hbox = QHBoxLayout()
-        b = QPushButton(_("Sign"))
-        hbox.addWidget(b)
-        b.clicked.connect(lambda: self.do_sign(sign_address, sign_message, sign_signature))
-        b = QPushButton(_("Close"))
-        b.clicked.connect(d.accept)
-        hbox.addWidget(b)
-        layout.addLayout(hbox, 4, 1)
-        tab_widget.addTab(tab, _("Sign"))
-
-
-        tab = QWidget()
-        layout = QGridLayout(tab)
-
-        verify_address = QLineEdit()
-        layout.addWidget(QLabel(_('Address')), 1, 0)
-        layout.addWidget(verify_address, 1, 1)
-
-        verify_message = QTextEdit()
-        layout.addWidget(QLabel(_('Message')), 2, 0)
-        layout.addWidget(verify_message, 2, 1)
-        layout.setRowStretch(2,3)
-
-        verify_signature = QTextEdit()
-        layout.addWidget(QLabel(_('Signature')), 3, 0)
-        layout.addWidget(verify_signature, 3, 1)
-        layout.setRowStretch(3,1)
-
-        def do_verify():
-            message = unicode(verify_message.toPlainText())
-            message = message.encode('utf-8')
-            if bitcoin.verify_message(verify_address.text(), str(verify_signature.toPlainText()), message):
-                self.show_message(_("Signature verified"))
-            else:
-                self.show_message(_("Error: wrong signature"))
-
         hbox = QHBoxLayout()
-        b = QPushButton(_("Verify"))
-        b.clicked.connect(do_verify)
+        if sign:
+            b = QPushButton(_("Sign"))
+        elif not sign:
+            b = QPushButton(_("Verify"))
         hbox.addWidget(b)
+        if sign:
+            b.clicked.connect(lambda: self.do_sign(sign_address, sign_message, sign_signature))
+        elif not sign:
+            b.clicked.connect(lambda: self.do_verify(sign_address, sign_message, sign_signature))
         b = QPushButton(_("Close"))
         b.clicked.connect(d.accept)
         hbox.addWidget(b)
         layout.addLayout(hbox, 4, 1)
-        tab_widget.addTab(tab, _("Verify"))
-
-        vbox = QVBoxLayout()
-        vbox.addWidget(tab_widget)
-        d.setLayout(vbox)
         d.exec_()
 
 
-
-
     def question(self, msg):
         return QMessageBox.question(self, _('Message'), msg, QMessageBox.Yes | QMessageBox.No, QMessageBox.No) == QMessageBox.Yes
 
@@ -2188,6 +2163,8 @@ class ElectrumWindow(QMainWindow):
         event.accept()
 
 
+    def verify_message(self):
+        self.sign_message(False, "")
 
     def plugins_dialog(self):
         from electrum.plugins import plugins