diff --git a/lib/gui_qt.py b/lib/gui_qt.py index 4273a2208..516d804b7 100644 --- a/lib/gui_qt.py +++ b/lib/gui_qt.py @@ -537,34 +537,58 @@ class ElectrumWindow(QMainWindow): tx_hash = str(item.data(0, Qt.UserRole).toString()) if not tx_hash: return menu = QMenu() - menu.addAction(_("Copy ID to Clipboard"), lambda: self.app.clipboard().setText(tx_hash)) - menu.addAction(_("Details"), lambda: self.tx_details(tx_hash)) + #menu.addAction(_("Copy ID to Clipboard"), lambda: self.app.clipboard().setText(tx_hash)) + menu.addAction(_("Details"), lambda: self.show_tx_details(self.wallet.transactions.get(tx_hash))) menu.addAction(_("Edit description"), lambda: self.tx_label_clicked(item,2)) menu.exec_(self.contacts_list.viewport().mapToGlobal(position)) - def tx_details(self, tx_hash): + def show_tx_details(self, tx): dialog = QDialog(None) dialog.setModal(1) dialog.setWindowTitle(_("Transaction Details")) + vbox = QVBoxLayout() + dialog.setLayout(vbox) + dialog.setMinimumSize(600,300) + + tx_hash = tx.hash() + if tx_hash in self.wallet.transactions.keys(): + is_mine, v, fee = self.wallet.get_tx_value(tx) + conf, timestamp = self.wallet.verifier.get_confirmations(tx_hash) + if timestamp: + time_str = datetime.datetime.fromtimestamp(timestamp).isoformat(' ')[:-3] + else: + time_str = 'pending' + else: + is_mine = False + + vbox.addWidget(QLabel("Transaction ID:")) + e = QLineEdit(tx_hash) + e.setReadOnly(True) + vbox.addWidget(e) + + vbox.addWidget(QLabel("Date: %s"%time_str)) + vbox.addWidget(QLabel("Status: %d confirmations"%conf)) + if is_mine: + if fee: + vbox.addWidget(QLabel("Amount sent: %s"% format_satoshis(v-fee, False))) + vbox.addWidget(QLabel("Transaction fee: %s"% format_satoshis(fee, False))) + else: + vbox.addWidget(QLabel("Amount sent: %s"% format_satoshis(v, False))) + vbox.addWidget(QLabel("Transaction fee: unknown")) + else: + vbox.addWidget(QLabel("Amount received: %s"% format_satoshis(v, False))) - main_text = QTextEdit() - main_text.setText(self.wallet.get_tx_details(tx_hash)) - main_text.setReadOnly(True) - main_text.setMinimumSize(550,275) - - ok_button = QPushButton(_("OK")) + vbox.addWidget( self.generate_transaction_information_widget(tx) ) + + ok_button = QPushButton(_("Close")) ok_button.setDefault(True) ok_button.clicked.connect(dialog.accept) hbox = QHBoxLayout() hbox.addStretch(1) hbox.addWidget(ok_button) - - vbox = QVBoxLayout() - vbox.addWidget(main_text) vbox.addLayout(hbox) - dialog.setLayout(vbox) dialog.exec_() def tx_label_clicked(self, item, column):