qt gui:history
This commit is contained in:
parent
b9b5f1e58c
commit
1eef00ca83
|
@ -1,4 +1,4 @@
|
|||
import sys, time
|
||||
import sys, time, datetime
|
||||
|
||||
# todo: see PySide
|
||||
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -85,7 +145,7 @@ class BitcoinWidget(QMainWindow):
|
|||
|
||||
def create_status_bar(self):
|
||||
sb = QStatusBar()
|
||||
sb.setFixedHeight(18)
|
||||
sb.setFixedHeight(20)
|
||||
self.setStatusBar(sb)
|
||||
|
||||
|
||||
|
@ -101,9 +161,3 @@ class BitcoinGUI():
|
|||
w = BitcoinWidget(self.wallet)
|
||||
w.connect_slots(s)
|
||||
app.exec_()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue