Skip to content

Commit 9561e49

Browse files
committed
Merge #749: make '-min' minimize wallet loading dialog
32db154 gui: make '-min' minimize wallet loading dialog (furszy) Pull request description: Simple fix for #748. When '-min' is enabled, no loading dialog should be presented on screen during startup. ACKs for top commit: hebasto: ACK 32db154, tested on Debian 11 + XFCE. Tree-SHA512: d08060b044938c67e8309db77b49ca645850fc21fdd7d78d5368d336fb9f602dcc66ea398a7505b00bf7d43afa07108347c7260480319fad3ec84cb41332f780
2 parents df5af11 + 32db154 commit 9561e49

File tree

5 files changed

+17
-11
lines changed

5 files changed

+17
-11
lines changed

src/qt/bitcoin.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -407,18 +407,21 @@ void BitcoinApplication::initializeResult(bool success, interfaces::BlockAndHead
407407
qInfo() << "Platform customization:" << platformStyle->getName();
408408
clientModel = new ClientModel(node(), optionsModel);
409409
window->setClientModel(clientModel, &tip_info);
410+
411+
// If '-min' option passed, start window minimized (iconified) or minimized to tray
412+
bool start_minimized = gArgs.GetBoolArg("-min", false);
410413
#ifdef ENABLE_WALLET
411414
if (WalletModel::isWalletEnabled()) {
412415
m_wallet_controller = new WalletController(*clientModel, platformStyle, this);
413-
window->setWalletController(m_wallet_controller);
416+
window->setWalletController(m_wallet_controller, /*show_loading_minimized=*/start_minimized);
414417
if (paymentServer) {
415418
paymentServer->setOptionsModel(optionsModel);
416419
}
417420
}
418421
#endif // ENABLE_WALLET
419422

420-
// If -min option passed, start window minimized (iconified) or minimized to tray
421-
if (!gArgs.GetBoolArg("-min", false)) {
423+
// Show or minimize window
424+
if (!start_minimized) {
422425
window->show();
423426
} else if (clientModel->getOptionsModel()->getMinimizeToTray() && window->hasTrayIcon()) {
424427
// do nothing as the window is managed by the tray icon

src/qt/bitcoingui.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,7 @@ void BitcoinGUI::enableHistoryAction(bool privacy)
679679
if (historyAction->isChecked()) gotoOverviewPage();
680680
}
681681

682-
void BitcoinGUI::setWalletController(WalletController* wallet_controller)
682+
void BitcoinGUI::setWalletController(WalletController* wallet_controller, bool show_loading_minimized)
683683
{
684684
assert(!m_wallet_controller);
685685
assert(wallet_controller);
@@ -699,7 +699,7 @@ void BitcoinGUI::setWalletController(WalletController* wallet_controller)
699699
});
700700

701701
auto activity = new LoadWalletsActivity(m_wallet_controller, this);
702-
activity->load();
702+
activity->load(show_loading_minimized);
703703
}
704704

705705
WalletController* BitcoinGUI::getWalletController()

src/qt/bitcoingui.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class BitcoinGUI : public QMainWindow
8181
*/
8282
void setClientModel(ClientModel *clientModel = nullptr, interfaces::BlockAndHeaderTipInfo* tip_info = nullptr);
8383
#ifdef ENABLE_WALLET
84-
void setWalletController(WalletController* wallet_controller);
84+
void setWalletController(WalletController* wallet_controller, bool show_loading_minimized);
8585
WalletController* getWalletController();
8686
#endif
8787

src/qt/walletcontroller.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ WalletControllerActivity::WalletControllerActivity(WalletController* wallet_cont
191191
connect(this, &WalletControllerActivity::finished, this, &QObject::deleteLater);
192192
}
193193

194-
void WalletControllerActivity::showProgressDialog(const QString& title_text, const QString& label_text)
194+
void WalletControllerActivity::showProgressDialog(const QString& title_text, const QString& label_text, bool show_minimized)
195195
{
196196
auto progress_dialog = new QProgressDialog(m_parent_widget);
197197
progress_dialog->setAttribute(Qt::WA_DeleteOnClose);
@@ -206,6 +206,8 @@ void WalletControllerActivity::showProgressDialog(const QString& title_text, con
206206
// The setValue call forces QProgressDialog to start the internal duration estimation.
207207
// See details in https://bugreports.qt.io/browse/QTBUG-47042.
208208
progress_dialog->setValue(0);
209+
// When requested, launch dialog minimized
210+
if (show_minimized) progress_dialog->showMinimized();
209211
}
210212

211213
CreateWalletActivity::CreateWalletActivity(WalletController* wallet_controller, QWidget* parent_widget)
@@ -368,14 +370,15 @@ LoadWalletsActivity::LoadWalletsActivity(WalletController* wallet_controller, QW
368370
{
369371
}
370372

371-
void LoadWalletsActivity::load()
373+
void LoadWalletsActivity::load(bool show_loading_minimized)
372374
{
373375
showProgressDialog(
374376
//: Title of progress window which is displayed when wallets are being loaded.
375377
tr("Load Wallets"),
376378
/*: Descriptive text of the load wallets progress window which indicates to
377379
the user that wallets are currently being loaded.*/
378-
tr("Loading wallets…"));
380+
tr("Loading wallets…"),
381+
/*show_minimized=*/show_loading_minimized);
379382

380383
QTimer::singleShot(0, worker(), [this] {
381384
for (auto& wallet : node().walletLoader().getWallets()) {

src/qt/walletcontroller.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class WalletControllerActivity : public QObject
100100
interfaces::Node& node() const { return m_wallet_controller->m_node; }
101101
QObject* worker() const { return m_wallet_controller->m_activity_worker; }
102102

103-
void showProgressDialog(const QString& title_text, const QString& label_text);
103+
void showProgressDialog(const QString& title_text, const QString& label_text, bool show_minimized=false);
104104

105105
WalletController* const m_wallet_controller;
106106
QWidget* const m_parent_widget;
@@ -156,7 +156,7 @@ class LoadWalletsActivity : public WalletControllerActivity
156156
public:
157157
LoadWalletsActivity(WalletController* wallet_controller, QWidget* parent_widget);
158158

159-
void load();
159+
void load(bool show_loading_minimized);
160160
};
161161

162162
class RestoreWalletActivity : public WalletControllerActivity

0 commit comments

Comments
 (0)