From: gg Date: Sun, 18 Jan 2026 04:51:10 +0000 (-0500) Subject: Tx stuff and update Wallet status X-Git-Url: https://git.nutra.tk/v1?a=commitdiff_plain;h=0a858eaa713826664c44f7e17da2de7b49b59e14;p=gamesguru%2Ffeather.git Tx stuff and update Wallet status --- diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 8f074ef8..ed8b59ec 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1857,7 +1857,7 @@ void MainWindow::importTransaction() { m_nodes->connectToNode(); } - TxImportDialog dialog(this, m_wallet); + TxImportDialog dialog(this, m_wallet, m_nodes); dialog.exec(); } diff --git a/src/dialog/TxImportDialog.cpp b/src/dialog/TxImportDialog.cpp index a2e49deb..c01ea267 100644 --- a/src/dialog/TxImportDialog.cpp +++ b/src/dialog/TxImportDialog.cpp @@ -7,23 +7,34 @@ #include #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; diff --git a/src/dialog/TxImportDialog.h b/src/dialog/TxImportDialog.h index 02b3441f..32a993a9 100644 --- a/src/dialog/TxImportDialog.h +++ b/src/dialog/TxImportDialog.h @@ -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; Wallet *m_wallet; + Nodes *m_nodes; };