1
0

qt tx dialog: two columns for tx stats

also show "RBF", and fix "date"
This commit is contained in:
SomberNight
2019-04-29 01:19:06 +02:00
parent 99f9a1b484
commit 271d1a3f1d
2 changed files with 44 additions and 17 deletions

View File

@@ -32,7 +32,7 @@ import traceback
from PyQt5.QtCore import QSize from PyQt5.QtCore import QSize
from PyQt5.QtGui import QTextCharFormat, QBrush, QFont from PyQt5.QtGui import QTextCharFormat, QBrush, QFont
from PyQt5.QtWidgets import (QDialog, QLabel, QPushButton, QHBoxLayout, QVBoxLayout, from PyQt5.QtWidgets import (QDialog, QLabel, QPushButton, QHBoxLayout, QVBoxLayout,
QTextEdit) QTextEdit, QFrame)
import qrcode import qrcode
from qrcode import exceptions from qrcode import exceptions
@@ -105,19 +105,9 @@ class TxDialog(QDialog, MessageBoxMixin):
self.tx_hash_e.addButton(qr_icon, qr_show, _("Show as QR code")) self.tx_hash_e.addButton(qr_icon, qr_show, _("Show as QR code"))
self.tx_hash_e.setReadOnly(True) self.tx_hash_e.setReadOnly(True)
vbox.addWidget(self.tx_hash_e) vbox.addWidget(self.tx_hash_e)
self.tx_desc = QLabel()
vbox.addWidget(self.tx_desc)
self.status_label = QLabel()
vbox.addWidget(self.status_label)
self.date_label = QLabel()
vbox.addWidget(self.date_label)
self.amount_label = QLabel()
vbox.addWidget(self.amount_label)
self.size_label = QLabel()
vbox.addWidget(self.size_label)
self.fee_label = QLabel()
vbox.addWidget(self.fee_label)
self.add_tx_stats(vbox)
vbox.addSpacing(10)
self.add_io(vbox) self.add_io(vbox)
self.sign_button = b = QPushButton(_("Sign")) self.sign_button = b = QPushButton(_("Sign"))
@@ -257,6 +247,8 @@ class TxDialog(QDialog, MessageBoxMixin):
self.date_label.show() self.date_label.show()
else: else:
self.date_label.hide() self.date_label.hide()
self.locktime_label.setText(f"LockTime: {self.tx.locktime}")
self.rbf_label.setText(f"RBF: {not self.tx.is_final()}")
if amount is None: if amount is None:
amount_str = _("Transaction unrelated to your wallet") amount_str = _("Transaction unrelated to your wallet")
elif amount > 0: elif amount > 0:
@@ -277,9 +269,6 @@ class TxDialog(QDialog, MessageBoxMixin):
run_hook('transaction_dialog_update', self) run_hook('transaction_dialog_update', self)
def add_io(self, vbox): def add_io(self, vbox):
if self.tx.locktime > 0:
vbox.addWidget(QLabel("LockTime: %d\n" % self.tx.locktime))
vbox.addWidget(QLabel(_("Inputs") + ' (%d)'%len(self.tx.inputs()))) vbox.addWidget(QLabel(_("Inputs") + ' (%d)'%len(self.tx.inputs())))
ext = QTextCharFormat() ext = QTextCharFormat()
rec = QTextCharFormat() rec = QTextCharFormat()
@@ -336,6 +325,44 @@ class TxDialog(QDialog, MessageBoxMixin):
cursor.insertBlock() cursor.insertBlock()
vbox.addWidget(o_text) vbox.addWidget(o_text)
def add_tx_stats(self, vbox):
hbox_stats = QHBoxLayout()
# left column
vbox_left = QVBoxLayout()
self.tx_desc = QLabel()
vbox_left.addWidget(self.tx_desc)
self.status_label = QLabel()
vbox_left.addWidget(self.status_label)
self.date_label = QLabel()
vbox_left.addWidget(self.date_label)
self.amount_label = QLabel()
vbox_left.addWidget(self.amount_label)
vbox_left.addStretch(1)
hbox_stats.addLayout(vbox_left, 50)
# vertical line separator
line_separator = QFrame()
line_separator.setFrameShape(QFrame.VLine)
line_separator.setFrameShadow(QFrame.Sunken)
line_separator.setLineWidth(1)
hbox_stats.addWidget(line_separator)
# right column
vbox_right = QVBoxLayout()
self.size_label = QLabel()
vbox_right.addWidget(self.size_label)
self.fee_label = QLabel()
vbox_right.addWidget(self.fee_label)
self.rbf_label = QLabel()
vbox_right.addWidget(self.rbf_label)
self.locktime_label = QLabel()
vbox_right.addWidget(self.locktime_label)
vbox_right.addStretch(1)
hbox_stats.addLayout(vbox_right, 50)
vbox.addLayout(hbox_stats)
class QTextEditWithDefaultSize(QTextEdit): class QTextEditWithDefaultSize(QTextEdit):
def sizeHint(self): def sizeHint(self):

View File

@@ -356,7 +356,7 @@ class Abstract_Wallet(AddressSynchronizer):
if self.db.get_transaction(tx_hash): if self.db.get_transaction(tx_hash):
label = self.get_label(tx_hash) label = self.get_label(tx_hash)
tx_mined_status = self.get_tx_height(tx_hash) tx_mined_status = self.get_tx_height(tx_hash)
height, conf = tx_mined_status.height, tx_mined_status.conf height, conf, timestamp = tx_mined_status.height, tx_mined_status.conf, tx_mined_status.timestamp
if height > 0: if height > 0:
if conf: if conf:
status = _("{} confirmations").format(conf) status = _("{} confirmations").format(conf)