URI: 
       tdialogs - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 034f740fd2e82669e34e42bc89732609940e7772
   DIR parent eac8fb3c3249e28a7d24db71942ff8ac71a77839
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Mon, 13 Feb 2012 00:00:33 +0100
       
       dialogs
       
       Diffstat:
         M client/gui.py                       |       2 +-
         M client/gui_qt.py                    |      72 +++++++++++++++++++++++++++----
       
       2 files changed, 65 insertions(+), 9 deletions(-)
       ---
   DIR diff --git a/client/gui.py b/client/gui.py
       t@@ -1218,7 +1218,7 @@ class BitcoinGUI:
        
            def newaddress_dialog(self, w):
        
       -        title = "New sending address" 
       +        title = "New Contact" 
                dialog = gtk.Dialog(title, parent=self.window, 
                                    flags=gtk.DIALOG_MODAL|gtk.DIALOG_NO_SEPARATOR, 
                                    buttons= ("cancel", 0, "ok",1)  )
   DIR diff --git a/client/gui_qt.py b/client/gui_qt.py
       t@@ -137,7 +137,7 @@ class ElectrumWindow(QMainWindow):
                tx = self.wallet.tx_history.get(tx_hash)
                s = self.wallet.labels.get(tx_hash)
                text = str( item.text(2) )
       -        if text != '': 
       +        if text: 
                    self.wallet.labels[tx_hash] = text
                    item.setForeground(2, QBrush(QColor('black')))
                else:
       t@@ -145,9 +145,24 @@ class ElectrumWindow(QMainWindow):
                    text = tx['default_label']
                    item.setText(2, text)
                    item.setForeground(2, QBrush(QColor('gray')))
       -
                self.is_edit=False
        
       +    def address_label_clicked(self, item, column, l):
       +        if column==1 and item.isSelected():
       +            item.setFlags(Qt.ItemIsEditable|Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
       +            l.editItem( item, column )
       +            item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
       +
       +    def address_label_changed(self, item, column, l):
       +        addr = str(item.text(0))
       +        text = str( item.text(1) )
       +        if text:
       +            self.wallet.labels[addr] = text
       +        else:
       +            s = self.wallet.labels.get(addr)
       +            if s: self.wallet.labels.pop(addr)
       +        self.update_history_tab()
       +
            def update_history_tab(self):
                self.history_list.clear()
                balance = 0
       t@@ -202,6 +217,11 @@ class ElectrumWindow(QMainWindow):
                grid.addWidget(QLabel('Fee'), 4, 0)
                grid.addWidget(feeEdit, 4, 1)
                
       +        sendButton = QPushButton("Send")
       +        clearButton = QPushButton("Clear")
       +        grid.addWidget(sendButton, 5, 1)
       +        grid.addWidget(clearButton, 5, 1)
       +
                w.setLayout(grid) 
                w.show()
        
       t@@ -236,6 +256,7 @@ class ElectrumWindow(QMainWindow):
                hbox.addWidget(copyButton)
                if not is_recv:
                    addButton = QtGui.QPushButton("New")
       +            addButton.clicked.connect(self.newaddress_dialog)
                    paytoButton = QtGui.QPushButton("Pay to")
                    hbox.addWidget(addButton)
                    hbox.addWidget(paytoButton)
       t@@ -249,7 +270,18 @@ class ElectrumWindow(QMainWindow):
                return w, l
        
            def create_receive_tab(self):
       -        w, self.receive_list = self.make_address_list(True)
       +        w, l = self.make_address_list(True)
       +        self.connect(l, SIGNAL('itemDoubleClicked(QTreeWidgetItem*, int)'), lambda a, b: self.address_label_clicked(a,b,l))
       +        self.connect(l, SIGNAL('itemChanged(QTreeWidgetItem*, int)'), lambda a,b: self.address_label_changed(a,b,l))
       +        self.receive_list = l
       +        return w
       +
       +    def create_contacts_tab(self):
       +        w, l = self.make_address_list(False)
       +        self.connect(l, SIGNAL('itemDoubleClicked(QTreeWidgetItem*, int)'), lambda a, b: self.address_label_clicked(a,b,l))
       +        self.connect(l, SIGNAL('itemChanged(QTreeWidgetItem*, int)'), lambda a,b: self.address_label_changed(a,b,l))
       +        self.connect(l, SIGNAL('itemActivated(QTreeWidgetItem*, int)'), self.show_contact_details)
       +        self.contacts_list = l
                return w
        
            def update_receive_tab(self):
       t@@ -266,11 +298,6 @@ class ElectrumWindow(QMainWindow):
                    item.setFont(0, QFont('monospace'))
                    self.receive_list.addTopLevelItem(item)
        
       -    def create_contacts_tab(self):
       -        w, self.contacts_list = self.make_address_list(False)
       -        self.connect(self.contacts_list, SIGNAL('itemActivated(QTreeWidgetItem*, int)'), self.show_contact_details)
       -        return w
       -
            def show_contact_details(self, item, column):
                m = str(item.text(0))
                a = self.wallet.aliases.get(m)
       t@@ -334,6 +361,7 @@ class ElectrumWindow(QMainWindow):
                b.setToolTip("Seed")
                b.setFlat(True)
                b.setMaximumWidth(20)
       +        b.clicked.connect(self.show_seed_dialog)
                hbox.addWidget(b)
        
                icon = QIcon("icons/status_disconnected.svg")
       t@@ -346,6 +374,34 @@ class ElectrumWindow(QMainWindow):
                sb.addPermanentWidget(buttons)
                self.setStatusBar(sb)
        
       +    def newaddress_dialog(self):
       +
       +        text, ok = QtGui.QInputDialog.getText(self, 'New Contact', 'Address:')
       +        address = str(text)
       +        if ok:
       +            if self.wallet.is_valid(address):
       +                self.wallet.addressbook.append(address)
       +                self.wallet.save()
       +                self.update_contacts_tab()
       +            else:
       +                QMessageBox.warning(self, 'Error', 'Invalid Address', 'OK')
       +
       +    def show_seed_dialog(self):
       +        import mnemonic
       +        pw, ok = QtGui.QInputDialog.getText(self, 'Password', 'Password:')
       +        if ok:
       +            try:
       +                seed = self.wallet.pw_decode( self.wallet.seed, str(pw))
       +            except:
       +                QMessageBox.warning(self, 'Error', 'Invalid Password', 'OK')
       +                return
       +
       +            msg = "Your wallet generation seed is:\n\n" + seed \
       +                + "\n\nPlease keep it in a safe place; if you lose it, you will not be able to restore your wallet.\n\n" \
       +                + "Equivalently, your wallet seed can be stored and recovered with the following mnemonic code:\n\n\"" \
       +                + ' '.join(mnemonic.mn_encode(seed)) + "\""
       +            QMessageBox.information(self, 'Seed', msg, 'OK')
       +
        
        class BitcoinGUI():