import PyQt4.QtCore as QtCore
from electrum import transaction
-
+from qt_util import MyTreeWidget
class TxDialog(QDialog):
QDialog.__init__(self)
self.setMinimumWidth(600)
- self.setWindowTitle(_('Transaction'))
+ self.setWindowTitle(_("Transaction"))
self.setModal(1)
vbox = QVBoxLayout()
self.setLayout(vbox)
- vbox.addWidget(QLabel("Transaction ID:"))
+ vbox.addWidget(QLabel(_("Transaction ID:")))
self.tx_hash_e = QLineEdit()
self.tx_hash_e.setReadOnly(True)
vbox.addWidget(self.tx_hash_e)
self.fee_label = QLabel()
vbox.addWidget(self.fee_label)
- self.io = self.io_widget(tx)
- vbox.addWidget( self.io )
+ self.add_io(vbox)
+
+ vbox.addStretch(1)
buttons = QHBoxLayout()
vbox.addLayout( buttons )
self.show_message(_("Transaction saved successfully"))
+
def update(self):
tx_hash = self.tx.hash()
is_relevant, is_mine, v, fee = self.wallet.get_tx_value(self.tx)
if self.tx.is_complete:
- status = "Status: Signed"
+ status = _("Status: Signed")
self.sign_button.hide()
if tx_hash in self.wallet.transactions.keys():
time_str = datetime.datetime.fromtimestamp(timestamp).isoformat(' ')[:-3]
else:
time_str = 'pending'
- status = "Status: %d confirmations"%conf
+ status = _("Status: %d confirmations")%conf
self.broadcast_button.hide()
else:
time_str = None
conf = 0
self.broadcast_button.show()
else:
- status = "Status: Unsigned"
+ status = _("Status: Unsigned")
time_str = None
self.sign_button.show()
self.broadcast_button.hide()
self.status_label.setText(status)
if time_str is not None:
- self.date_label.setText("Date: %s"%time_str)
+ self.date_label.setText(_("Date: %s")%time_str)
self.date_label.show()
else:
self.date_label.hide()
if is_relevant:
if is_mine:
if fee is not None:
- self.amount_label.setText("Amount sent: %s"% self.parent.format_amount(v-fee))
- self.fee_label.setText("Transaction fee: %s"% self.parent.format_amount(fee))
+ self.amount_label.setText(_("Amount sent:")+' %s'% self.parent.format_amount(v-fee) + ' ' + self.parent.base_unit())
+ self.fee_label.setText(_("Transaction fee:")+' %s'% self.parent.format_amount(fee) + ' ' + self.parent.base_unit())
else:
- self.amount_label.setText("Amount sent: %s"% self.parent.format_amount(v))
- self.fee_label.setText("Transaction fee: unknown")
+ self.amount_label.setText(_("Amount sent:")+' %s'% self.parent.format_amount(v) + ' ' + self.parent.base_unit())
+ self.fee_label.setText(_("Transaction fee: unknown"))
else:
- self.amount_label.setText("Amount received: %s"% self.parent.format_amount(v))
+ self.amount_label.setText(_("Amount received:")+' %s'% self.parent.format_amount(v) + ' ' + self.parent.base_unit())
else:
- self.amount_label.setText("Transaction unrelated to your wallet")
+ self.amount_label.setText(_("Transaction unrelated to your wallet"))
+ def exec_menu(self, position,l):
+ item = l.itemAt(position)
+ if not item: return
+ addr = unicode(item.text(0))
+ menu = QMenu()
+ menu.addAction(_("Copy to clipboard"), lambda: self.parent.app.clipboard().setText(addr))
+ menu.exec_(l.viewport().mapToGlobal(position))
- def io_widget(self, tx):
- tabs = QTabWidget(self)
- tab1 = QWidget()
- grid_ui = QGridLayout(tab1)
- grid_ui.setColumnStretch(0,1)
- tabs.addTab(tab1, _('Outputs') )
+ def add_io(self, vbox):
- tree_widget = QTreeWidget(self)
- tree_widget.setColumnCount(2)
- tree_widget.setHeaderLabels( [_('Address'), _('Amount')] )
- tree_widget.setColumnWidth(0, 300)
- tree_widget.setColumnWidth(1, 50)
+ vbox.addWidget(QLabel(_("Inputs")))
+ lines = map(lambda x: x.get('address') , self.tx.inputs )
- for address, value in tx.outputs:
- item = QTreeWidgetItem( [address, "%s" % ( self.parent.format_amount(value))] )
- tree_widget.addTopLevelItem(item)
+ i_text = QTextEdit('\n'.join(lines))
+ i_text.setReadOnly(True)
+ i_text.setMaximumHeight(100)
+ vbox.addWidget(i_text)
- tree_widget.setMaximumHeight(100)
+ vbox.addWidget(QLabel(_("Outputs")))
+ lines = map(lambda x: x[0] + u'\t\t' + self.parent.format_amount(x[1]), self.tx.outputs)
- grid_ui.addWidget(tree_widget)
+ o_text = QTextEdit()
+ o_text.setText('\n'.join(lines))
+ o_text.setReadOnly(True)
+ o_text.setMaximumHeight(100)
+ vbox.addWidget(o_text)
- tab2 = QWidget()
- grid_ui = QGridLayout(tab2)
- grid_ui.setColumnStretch(0,1)
- tabs.addTab(tab2, _('Inputs') )
- tree_widget = QTreeWidget(self)
- tree_widget.setColumnCount(2)
- tree_widget.setHeaderLabels( [ _('Address'), _('Previous output')] )
-
- for input_line in tx.inputs:
- item = QTreeWidgetItem( [ str(input_line["address"]), str(input_line.get("prevout_hash"))] )
- tree_widget.addTopLevelItem(item)
-
- tree_widget.setMaximumHeight(100)
-
- grid_ui.addWidget(tree_widget)
- return tabs
def broadcast(self):
result, result_message = self.wallet.sendtx( self.tx )
if result:
- self.show_message("Transaction successfully sent: %s" % (result_message))
+ self.show_message(_("Transaction successfully sent:")+' %s' % (result_message))
if dialog:
dialog.done(0)
else:
- self.show_message("There was a problem sending your transaction:\n %s" % (result_message))
+ self.show_message(_("There was a problem sending your transaction:") + '\n %s' % (result_message))
def show_message(self, msg):
QMessageBox.information(self, _('Message'), msg, _('OK'))