improve gui.show_tx_details
authorthomasv <thomasv@gitorious>
Thu, 28 Feb 2013 12:13:35 +0000 (13:13 +0100)
committerthomasv <thomasv@gitorious>
Thu, 28 Feb 2013 12:13:35 +0000 (13:13 +0100)
lib/gui_qt.py

index 4273a22..516d804 100644 (file)
@@ -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):