URI: 
       tqt gui:history - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 1eef00ca8351b39da7e8814dbe979ac4d0422711
   DIR parent b9b5f1e58c954b5e195b00c109a52086101c2c88
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Sun, 12 Feb 2012 07:27:32 +0100
       
       qt gui:history
       
       Diffstat:
         M client/gui_qt.py                    |      88 +++++++++++++++++++++++++------
       
       1 file changed, 71 insertions(+), 17 deletions(-)
       ---
   DIR diff --git a/client/gui_qt.py b/client/gui_qt.py
       t@@ -1,4 +1,4 @@
       -import sys, time
       +import sys, time, datetime
        
        # todo: see PySide
        
       t@@ -32,6 +32,8 @@ class BitcoinWidget(QMainWindow):
                tabs.addTab(self.create_contacts_tab(),'Contacts')  
                tabs.addTab(self.create_wall_tab(),    'Wall')  
                tabs.setMinimumSize(600, 400)
       +        tabs.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
       +
                tabs.show()
        
                self.create_status_bar()
       t@@ -60,23 +62,81 @@ class BitcoinWidget(QMainWindow):
                if self.wallet.interface.was_updated:
                    self.textbox.setText( self.wallet.interface.message )
                    self.wallet.interface.was_updated = False
       +            self.update_history_tab()
       +
        
            def create_history_tab(self):
       -        h = [ 'ff', 'bar' ]
       -        qstr = QStringList((QString('foo'),QString('bar')))
       -        qstr_model = QtGui.QStringListModel(qstr)
       -        lv = QListView()
       -        lv.setModel(qstr_model)
       -        return lv
       +        self.history_list = w = QTreeWidget(self)
       +        w.setColumnCount(5)
       +        w.setHeaderLabels( ['conf', 'Date','Description','Amount','Balance'])
       +        return w
       +
       +
       +    def update_history_tab(self):
       +        self.history_list.clear()
       +        balance = 0
       +        for tx in self.wallet.get_tx_history():
       +            tx_hash = tx['tx_hash']
       +            if tx['height']:
       +                conf = self.wallet.interface.blocks - tx['height'] + 1
       +                time_str = datetime.datetime.fromtimestamp( tx['nTime']).isoformat(' ')[:-3]
       +            else:
       +                conf = 0
       +                time_str = 'pending'
       +            v = tx['value']
       +            balance += v 
       +            label = self.wallet.labels.get(tx_hash)
       +            is_default_label = (label == '') or (label is None)
       +            if is_default_label: label = tx['default_label']
       +            item = QTreeWidgetItem( [ "%d"%conf, time_str, label, format_satoshis(v,True), format_satoshis(balance)] )
       +            self.history_list.addTopLevelItem(item)
       +
        
            def create_send_tab(self):
       -        return QLabel('heh')
       +        w = QWidget()
       +
       +        paytoEdit = QtGui.QLineEdit()
       +        descriptionEdit = QtGui.QLineEdit()
       +        amountEdit = QtGui.QLineEdit()
       +        feeEdit = QtGui.QLineEdit()
       +
       +        grid = QtGui.QGridLayout()
       +        grid.setSpacing(8)
       +
       +        grid.addWidget(QLabel('Pay to'), 1, 0)
       +        grid.addWidget(paytoEdit, 1, 1)
       +
       +        grid.addWidget(QLabel('Description'), 2, 0)
       +        grid.addWidget(descriptionEdit, 2, 1)
       +
       +        grid.addWidget(QLabel('Amount'), 3, 0)
       +        grid.addWidget(amountEdit, 3, 1)
       +        
       +        grid.addWidget(QLabel('Fee'), 4, 0)
       +        grid.addWidget(feeEdit, 4, 1)
       +        
       +        w.setLayout(grid) 
       +        w.show()
       +
       +        w2 = QWidget()
       +        vbox = QtGui.QVBoxLayout()
       +        vbox.addWidget(w)
       +        vbox.addStretch(1)
       +        w2.setLayout(vbox)
       +
       +        return w2
        
            def create_receive_tab(self):
       -        return QLabel('heh')
       +        self.addresses_list = w = QTreeWidget(self)
       +        w.setColumnCount(3)
       +        w.setHeaderLabels( ['Address', 'Label','Tx'])
       +        return w
        
            def create_contacts_tab(self):
       -        return QLabel('heh')
       +        self.contacts_list = w = QTreeWidget(self)
       +        w.setColumnCount(3)
       +        w.setHeaderLabels( ['Address', 'Label','Tx'])
       +        return w
        
            def create_wall_tab(self):
                self.textbox = textbox = QTextEdit(self)
       t@@ -85,7 +145,7 @@ class BitcoinWidget(QMainWindow):
        
            def create_status_bar(self):
                sb = QStatusBar()
       -        sb.setFixedHeight(18)
       +        sb.setFixedHeight(20)
                self.setStatusBar(sb)
        
        
       t@@ -101,9 +161,3 @@ class BitcoinGUI():
                w = BitcoinWidget(self.wallet)
                w.connect_slots(s)
                app.exec_()
       -
       -
       -
       -
       -
       -