mirror of
				https://git.wownero.com/wowlet/wowlet.git
				synced 2024-08-15 01:03:14 +00:00 
			
		
		
		
	Status: constructing transaction
This commit is contained in:
		
							parent
							
								
									136f877778
								
							
						
					
					
						commit
						0dc196e76d
					
				
					 3 changed files with 47 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -758,9 +758,11 @@ void AppContext::onTransactionCreated(PendingTransaction *tx, const QString &add
 | 
			
		|||
    if(address == this->donationAddress)
 | 
			
		||||
        this->donationSending = true;
 | 
			
		||||
 | 
			
		||||
    // Let UI know that the transaction was constructed
 | 
			
		||||
    emit endTransaction();
 | 
			
		||||
 | 
			
		||||
    // tx created, but not sent yet. ask user to verify first.
 | 
			
		||||
    emit createTransactionSuccess(tx, address, mixin);
 | 
			
		||||
    emit endTransaction();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void AppContext::onTransactionCommitted(bool status, PendingTransaction *tx, const QStringList& txid){
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,7 +79,7 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
 | 
			
		|||
        connected ? m_statusBtnTor->setIcon(QIcon(":/assets/images/tor_logo.png"))
 | 
			
		||||
                  : m_statusBtnTor->setIcon(QIcon(":/assets/images/tor_logo_disabled.png"));});
 | 
			
		||||
    connect(m_ctx->nodes, &Nodes::updateStatus, [=](const QString &msg){
 | 
			
		||||
        m_statusLabelStatus->setText(msg);
 | 
			
		||||
        this->setStatusText(msg);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // menu connects
 | 
			
		||||
| 
						 | 
				
			
			@ -234,6 +234,22 @@ MainWindow::MainWindow(AppContext *ctx, QWidget *parent) :
 | 
			
		|||
    connect(m_ctx, &AppContext::initiateTransaction, ui->xmrToWidget, &XMRToWidget::onInitiateTransaction);
 | 
			
		||||
    connect(m_ctx, &AppContext::endTransaction, ui->xmrToWidget, &XMRToWidget::onEndTransaction);
 | 
			
		||||
 | 
			
		||||
    connect(m_ctx, &AppContext::initiateTransaction, [this]{
 | 
			
		||||
        m_statusDots = 0;
 | 
			
		||||
        m_constructingTransaction = true;
 | 
			
		||||
        m_txTimer.start(1000);
 | 
			
		||||
    });
 | 
			
		||||
    connect(m_ctx, &AppContext::endTransaction, [this]{
 | 
			
		||||
        // Todo: endTransaction can fail to fire when the node is switched during tx creation
 | 
			
		||||
        m_constructingTransaction = false;
 | 
			
		||||
        m_txTimer.stop();
 | 
			
		||||
        this->setStatusText(m_statusText);
 | 
			
		||||
    });
 | 
			
		||||
    connect(&m_txTimer, &QTimer::timeout, [this]{
 | 
			
		||||
        m_statusLabelStatus->setText("Constructing transaction" + this->statusDots());
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // testnet/stagenet warning
 | 
			
		||||
    auto worthlessWarning = QString("Feather wallet is currently running in %1 mode. This is meant "
 | 
			
		||||
                                    "for developers only. Your coins are WORTHLESS.");
 | 
			
		||||
| 
						 | 
				
			
			@ -592,9 +608,9 @@ void MainWindow::onWalletOpened() {
 | 
			
		|||
    this->activateWindow();
 | 
			
		||||
    this->setEnabled(true);
 | 
			
		||||
    if(!m_ctx->tor->torConnected)
 | 
			
		||||
        m_statusLabelStatus->setText("Wallet opened - Starting Tor (may take a while)");
 | 
			
		||||
        this->setStatusText("Wallet opened - Starting Tor (may take a while)");
 | 
			
		||||
    else
 | 
			
		||||
        m_statusLabelStatus->setText("Wallet opened - Searching for node");
 | 
			
		||||
        this->setStatusText("Wallet opened - Searching for node");
 | 
			
		||||
 | 
			
		||||
    connect(m_ctx->currentWallet, &Wallet::connectionStatusChanged, this, &MainWindow::onConnectionStatusChanged);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -655,22 +671,28 @@ void MainWindow::onBalanceUpdated(double balance, double unlocked, const QString
 | 
			
		|||
    m_balanceWidget->setHidden(hide);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::setStatusText(const QString &text) {
 | 
			
		||||
    m_statusText = text;
 | 
			
		||||
    if (!m_constructingTransaction)
 | 
			
		||||
        m_statusLabelStatus->setText(text);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::onSynchronized() {
 | 
			
		||||
    this->updateNetStats();
 | 
			
		||||
    m_statusLabelStatus->setText("Synchronized");
 | 
			
		||||
    this->setStatusText("Synchronized");
 | 
			
		||||
    this->onConnectionStatusChanged(Wallet::ConnectionStatus_Connected);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::onBlockchainSync(int height, int target) {
 | 
			
		||||
    QString blocks = (target >= height) ? QString::number(target - height) : "?";
 | 
			
		||||
    QString heightText = QString("Blockchain sync: %1 blocks remaining").arg(blocks);
 | 
			
		||||
    m_statusLabelStatus->setText(heightText);
 | 
			
		||||
    this->setStatusText(heightText);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::onRefreshSync(int height, int target) {
 | 
			
		||||
    QString blocks = (target >= height) ? QString::number(target - height) : "?";
 | 
			
		||||
    QString heightText = QString("Wallet refresh: %1 blocks remaining").arg(blocks);
 | 
			
		||||
    m_statusLabelStatus->setText(heightText);
 | 
			
		||||
    this->setStatusText(heightText);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MainWindow::onConnectionStatusChanged(int status)
 | 
			
		||||
| 
						 | 
				
			
			@ -684,7 +706,7 @@ void MainWindow::onConnectionStatusChanged(int status)
 | 
			
		|||
    switch(status){
 | 
			
		||||
        case Wallet::ConnectionStatus_Disconnected:
 | 
			
		||||
            statusIcon = ":/assets/images/status_disconnected.svg";
 | 
			
		||||
            m_statusLabelStatus->setText("Disconnected");
 | 
			
		||||
            this->setStatusText("Disconnected");
 | 
			
		||||
            break;
 | 
			
		||||
        case Wallet::ConnectionStatus_Connected:
 | 
			
		||||
            if (m_ctx->currentWallet->synchronized()) {
 | 
			
		||||
| 
						 | 
				
			
			@ -695,11 +717,11 @@ void MainWindow::onConnectionStatusChanged(int status)
 | 
			
		|||
            break;
 | 
			
		||||
        case Wallet::ConnectionStatus_Connecting:
 | 
			
		||||
            statusIcon = ":/assets/images/status_lagging.svg";
 | 
			
		||||
            m_statusLabelStatus->setText("Connecting to daemon");
 | 
			
		||||
            this->setStatusText("Connecting to daemon");
 | 
			
		||||
            break;
 | 
			
		||||
        case Wallet::ConnectionStatus_WrongVersion:
 | 
			
		||||
            statusIcon = ":/assets/images/status_disconnected.svg";
 | 
			
		||||
            m_statusLabelStatus->setText("Incompatible daemon");
 | 
			
		||||
            this->setStatusText("Incompatible daemon");
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
            statusIcon = ":/assets/images/status_disconnected.svg";
 | 
			
		||||
| 
						 | 
				
			
			@ -1300,6 +1322,12 @@ void MainWindow::rescanSpent() {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QString MainWindow::statusDots() {
 | 
			
		||||
    m_statusDots++;
 | 
			
		||||
    m_statusDots = m_statusDots % 4;
 | 
			
		||||
    return QString(".").repeated(m_statusDots);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
MainWindow::~MainWindow() {
 | 
			
		||||
    delete ui;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -168,6 +168,8 @@ private:
 | 
			
		|||
    void updatePasswordIcon();
 | 
			
		||||
    void updateNetStats();
 | 
			
		||||
    void rescanSpent();
 | 
			
		||||
    void setStatusText(const QString &text);
 | 
			
		||||
    QString statusDots();
 | 
			
		||||
 | 
			
		||||
    WalletWizard *createWizard(WalletWizard::Page startPage);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -179,8 +181,6 @@ private:
 | 
			
		|||
    AboutDialog *m_aboutDialog = nullptr;
 | 
			
		||||
    XMRigWidget *m_xmrig = nullptr;
 | 
			
		||||
 | 
			
		||||
    bool m_windowSpawned = false;
 | 
			
		||||
 | 
			
		||||
    QSystemTrayIcon *m_trayIcon;
 | 
			
		||||
    QMenu m_trayMenu;
 | 
			
		||||
    QAction *m_trayActionCalc;
 | 
			
		||||
| 
						 | 
				
			
			@ -218,6 +218,11 @@ private:
 | 
			
		|||
 | 
			
		||||
    QTimer m_updateBytes;
 | 
			
		||||
 | 
			
		||||
    QString m_statusText;
 | 
			
		||||
    int m_statusDots;
 | 
			
		||||
    bool m_constructingTransaction = false;
 | 
			
		||||
    QTimer m_txTimer;
 | 
			
		||||
 | 
			
		||||
private slots:
 | 
			
		||||
    void menuToggleTabVisible(const QString &key);
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue