diff options
| author | Dusan Klinec <dusan.klinec@gmail.com> | 2019-05-02 10:11:43 +0200 |
|---|---|---|
| committer | Dusan Klinec <dusan.klinec@gmail.com> | 2019-05-02 16:19:22 +0200 |
| commit | c88bb60135226dc889e51ad5a494d4bd600662b6 (patch) | |
| tree | 9afb5f50b5257e8ba0d0a0f5486482a011346569 /src/libwalletqt/Wallet.cpp | |
| parent | 97cd215491a44c753ee1450712b3b8d93efdcc37 (diff) | |
| download | monzero-gui-c88bb60135226dc889e51ad5a494d4bd600662b6.tar.gz monzero-gui-c88bb60135226dc889e51ad5a494d4bd600662b6.tar.xz monzero-gui-c88bb60135226dc889e51ad5a494d4bd600662b6.zip | |
transaction: async commit
Addresses #2123, reduces UI freezing on long-lasting operation, improves Trezor experience
Diffstat (limited to 'src/libwalletqt/Wallet.cpp')
| -rw-r--r-- | src/libwalletqt/Wallet.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 0c320842..17b391a6 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -496,6 +496,22 @@ bool Wallet::submitTxFile(const QString &fileName) const return m_walletImpl->importKeyImages(fileName.toStdString() + "_keyImages"); } +void Wallet::commitTransactionAsync(PendingTransaction *t) +{ + QStringList txid(t->txid()); + QFuture<bool> future = QtConcurrent::run(t, &PendingTransaction::commit); + + QFutureWatcher<bool> * watcher = new QFutureWatcher<bool>(); + + connect(watcher, &QFutureWatcher<bool>::finished, + this, [this, watcher, t, txid]() { + QFuture<bool> future = watcher->future(); + watcher->deleteLater(); + emit transactionCommitted(future.result(), t, txid); + }); + watcher->setFuture(future); +} + void Wallet::disposeTransaction(PendingTransaction *t) { m_walletImpl->disposeTransaction(t->m_pimpl); |
