mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-05-01 23:42:46 +02:00
Merge bitcoin-core/gui#403: refactor: Make paths to update Encryption and HD wallet statuses simpler
b8aa84b1a116599a6dd3b9ddb4e6c178a6688b1b qt, refactor: Replace `if` check with `assert` (Hennadii Stepanov) fcdc8b0fcb9dc81b76289abc57a4203671f748eb qt, refactor: Drop redundant signalling in WalletView::setWalletModel (Hennadii Stepanov) 37dcf161d3dd1f7862a67bec1e8f2887cbd6de90 qt, refactor: Emit WalletView::encryptionStatusChanged signal directly (Hennadii Stepanov) 7d0d4c04903cafade32be3bf2bf1cad3f33c6c03 qt: Add WalletFrame::currentWalletSet signal (Hennadii Stepanov) Pull request description: This PR makes signal-slot paths to reach `setHDStatus` and `setEncryptionStatus` functions shorter and easier to reason about them. Required to simplify #398 (see https://github.com/bitcoin-core/gui/pull/398#discussion_r686094883). --- **Note for reviewers.** Please verify that "Encrypt Wallet..." menu item, and the following icons  and updated properly in each and every possible scenario. ACKs for top commit: jarolrod: tACK b8aa84b1a116599a6dd3b9ddb4e6c178a6688b1b Talkless: Code review ACK b8aa84b1a116599a6dd3b9ddb4e6c178a6688b1b. Did build on Debian Sid with Qt 5.15.2 but no actual testing performed. ryanofsky: Code review ACK b8aa84b1a116599a6dd3b9ddb4e6c178a6688b1b. Only change since last review was rebase Tree-SHA512: 275737cdba02baff71049df41bc24089e916f96326dd2dea26ec607c7949cb3aae368eeabbe3ad5a0a27651503a1d65536873726de854c5f6af259bcc29727e7
This commit is contained in:
commit
774a4f517c
@ -113,6 +113,7 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty
|
||||
connect(walletFrame, &WalletFrame::message, [this](const QString& title, const QString& message, unsigned int style) {
|
||||
this->message(title, message, style);
|
||||
});
|
||||
connect(walletFrame, &WalletFrame::currentWalletSet, [this] { updateWalletStatus(); });
|
||||
setCentralWidget(walletFrame);
|
||||
} else
|
||||
#endif // ENABLE_WALLET
|
||||
@ -694,7 +695,6 @@ void BitcoinGUI::addWallet(WalletModel* walletModel)
|
||||
});
|
||||
connect(wallet_view, &WalletView::encryptionStatusChanged, this, &BitcoinGUI::updateWalletStatus);
|
||||
connect(wallet_view, &WalletView::incomingTransaction, this, &BitcoinGUI::incomingTransaction);
|
||||
connect(wallet_view, &WalletView::hdEnabledStatusChanged, this, &BitcoinGUI::updateWalletStatus);
|
||||
connect(this, &BitcoinGUI::setPrivacy, wallet_view, &WalletView::setPrivacy);
|
||||
wallet_view->setPrivacy(isPrivacyModeActivated());
|
||||
const QString display_name = walletModel->getDisplayName();
|
||||
@ -1340,9 +1340,8 @@ void BitcoinGUI::setEncryptionStatus(int status)
|
||||
|
||||
void BitcoinGUI::updateWalletStatus()
|
||||
{
|
||||
if (!walletFrame) {
|
||||
return;
|
||||
}
|
||||
assert(walletFrame);
|
||||
|
||||
WalletView * const walletView = walletFrame->currentWalletView();
|
||||
if (!walletView) {
|
||||
return;
|
||||
|
@ -109,7 +109,8 @@ void WalletFrame::setCurrentWallet(WalletModel* wallet_model)
|
||||
walletView->updateGeometry();
|
||||
|
||||
walletStack->setCurrentWidget(walletView);
|
||||
walletView->updateEncryptionStatus();
|
||||
|
||||
Q_EMIT currentWalletSet();
|
||||
}
|
||||
|
||||
void WalletFrame::removeWallet(WalletModel* wallet_model)
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
Q_SIGNALS:
|
||||
void createWalletButtonClicked();
|
||||
void message(const QString& title, const QString& message, unsigned int style);
|
||||
void currentWalletSet();
|
||||
|
||||
private:
|
||||
QStackedWidget *walletStack;
|
||||
|
@ -118,10 +118,6 @@ void WalletView::setWalletModel(WalletModel *_walletModel)
|
||||
|
||||
// Handle changes in encryption status
|
||||
connect(_walletModel, &WalletModel::encryptionStatusChanged, this, &WalletView::encryptionStatusChanged);
|
||||
updateEncryptionStatus();
|
||||
|
||||
// update HD status
|
||||
Q_EMIT hdEnabledStatusChanged();
|
||||
|
||||
// Balloon pop-up for new transaction
|
||||
connect(_walletModel->getTransactionTableModel(), &TransactionTableModel::rowsInserted, this, &WalletView::processNewTransaction);
|
||||
@ -211,11 +207,6 @@ void WalletView::showOutOfSyncWarning(bool fShow)
|
||||
overviewPage->showOutOfSyncWarning(fShow);
|
||||
}
|
||||
|
||||
void WalletView::updateEncryptionStatus()
|
||||
{
|
||||
Q_EMIT encryptionStatusChanged();
|
||||
}
|
||||
|
||||
void WalletView::encryptWallet()
|
||||
{
|
||||
if(!walletModel)
|
||||
@ -224,7 +215,7 @@ void WalletView::encryptWallet()
|
||||
dlg.setModel(walletModel);
|
||||
dlg.exec();
|
||||
|
||||
updateEncryptionStatus();
|
||||
Q_EMIT encryptionStatusChanged();
|
||||
}
|
||||
|
||||
void WalletView::backupWallet()
|
||||
|
@ -103,9 +103,6 @@ public Q_SLOTS:
|
||||
/** Show used receiving addresses */
|
||||
void usedReceivingAddresses();
|
||||
|
||||
/** Re-emit encryption status signal */
|
||||
void updateEncryptionStatus();
|
||||
|
||||
/** Show progress dialog e.g. for rescan */
|
||||
void showProgress(const QString &title, int nProgress);
|
||||
|
||||
@ -117,8 +114,6 @@ Q_SIGNALS:
|
||||
void message(const QString &title, const QString &message, unsigned int style);
|
||||
/** Encryption status of wallet changed */
|
||||
void encryptionStatusChanged();
|
||||
/** HD-Enabled status of wallet changed (only possible during startup) */
|
||||
void hdEnabledStatusChanged();
|
||||
/** Notify that a new transaction appeared */
|
||||
void incomingTransaction(const QString& date, int unit, const CAmount& amount, const QString& type, const QString& address, const QString& label, const QString& walletName);
|
||||
/** Notify that the out of sync warning icon has been pressed */
|
||||
|
Loading…
x
Reference in New Issue
Block a user