]> Nutra Git (v2) - gamesguru/feather.git/commitdiff
Tx stuff and update Wallet status
authorgg <chown_tee@proton.me>
Sun, 18 Jan 2026 04:51:10 +0000 (23:51 -0500)
committergg <chown_tee@proton.me>
Sun, 18 Jan 2026 04:51:10 +0000 (23:51 -0500)
src/MainWindow.cpp
src/dialog/TxImportDialog.cpp
src/dialog/TxImportDialog.h

index 8f074ef8766a70d1b23ec73b5774147daf76fa18..ed8b59ec39360508c89f7a3408de2899caeb48e2 100644 (file)
@@ -1857,7 +1857,7 @@ void MainWindow::importTransaction() {
          m_nodes->connectToNode();
     }
 
-    TxImportDialog dialog(this, m_wallet);
+    TxImportDialog dialog(this, m_wallet, m_nodes);
     dialog.exec();
 }
 
index a2e49deb61405537bc729e21146adda397829f1b..c01ea267c4bc4f53b49b23cc868f94bb29d639aa 100644 (file)
@@ -7,23 +7,34 @@
 #include <QMessageBox>
 
 #include "utils/NetworkManager.h"
+#include "utils/nodes.h"
 
-TxImportDialog::TxImportDialog(QWidget *parent, Wallet *wallet)
+TxImportDialog::TxImportDialog(QWidget *parent, Wallet *wallet, Nodes *nodes)
         : WindowModalDialog(parent)
         , ui(new Ui::TxImportDialog)
         , m_wallet(wallet)
+        , m_nodes(nodes)
 {
     ui->setupUi(this);
 
     connect(ui->btn_import, &QPushButton::clicked, this, &TxImportDialog::onImport);
+    connect(m_wallet, &Wallet::connectionStatusChanged, this, &TxImportDialog::updateStatus);
 
     ui->line_txid->setMinimumWidth(600);
     this->adjustSize();
 
     this->layout()->setSizeConstraint(QLayout::SetFixedSize);
+
+    this->updateStatus(m_wallet->connectionStatus());
 }
 
 void TxImportDialog::onImport() {
+    if (m_wallet->connectionStatus() == Wallet::ConnectionStatus_Disconnected) {
+        m_nodes->connectToNode();
+        this->updateStatus(Wallet::ConnectionStatus_Connecting);
+        return;
+    }
+
     QString txid = ui->line_txid->text();
 
     if (m_wallet->haveTransaction(txid)) {
@@ -44,4 +55,17 @@ void TxImportDialog::onImport() {
     m_wallet->refreshModels();
 }
 
+void TxImportDialog::updateStatus(int status) {
+    if (status == Wallet::ConnectionStatus_Disconnected) {
+        ui->btn_import->setText("Connect");
+        ui->btn_import->setEnabled(true);
+    } else if (status == Wallet::ConnectionStatus_Connecting || status == Wallet::ConnectionStatus_WrongVersion) {
+        ui->btn_import->setText("Connecting...");
+        ui->btn_import->setEnabled(false);
+    } else {
+        ui->btn_import->setText("Import");
+        ui->btn_import->setEnabled(true);
+    }
+}
+
 TxImportDialog::~TxImportDialog() = default;
index 02b3441f3c2746af4a35c0839711ba98dc532a11..32a993a9ca89d90a7d1d248b2d0cd4efb3597b76 100644 (file)
@@ -14,20 +14,25 @@ namespace Ui {
     class TxImportDialog;
 }
 
+class Nodes;
+
 class TxImportDialog : public WindowModalDialog
 {
 Q_OBJECT
 
 public:
-    explicit TxImportDialog(QWidget *parent, Wallet *wallet);
+    explicit TxImportDialog(QWidget *parent, Wallet *wallet, Nodes *nodes);
     ~TxImportDialog() override;
 
 private slots:
     void onImport();
 
 private:
+    void updateStatus(int status);
+
     QScopedPointer<Ui::TxImportDialog> ui;
     Wallet *m_wallet;
+    Nodes *m_nodes;
 };