mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 23:07:59 +01:00
gui: make '-min' minimize wallet loading dialog
When '-min' is enabled, no loading dialog should be presented on screen during startup.
This commit is contained in:
parent
3654d84c6f
commit
32db15450a
5 changed files with 17 additions and 11 deletions
|
@ -407,18 +407,21 @@ void BitcoinApplication::initializeResult(bool success, interfaces::BlockAndHead
|
||||||
qInfo() << "Platform customization:" << platformStyle->getName();
|
qInfo() << "Platform customization:" << platformStyle->getName();
|
||||||
clientModel = new ClientModel(node(), optionsModel);
|
clientModel = new ClientModel(node(), optionsModel);
|
||||||
window->setClientModel(clientModel, &tip_info);
|
window->setClientModel(clientModel, &tip_info);
|
||||||
|
|
||||||
|
// If '-min' option passed, start window minimized (iconified) or minimized to tray
|
||||||
|
bool start_minimized = gArgs.GetBoolArg("-min", false);
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
if (WalletModel::isWalletEnabled()) {
|
if (WalletModel::isWalletEnabled()) {
|
||||||
m_wallet_controller = new WalletController(*clientModel, platformStyle, this);
|
m_wallet_controller = new WalletController(*clientModel, platformStyle, this);
|
||||||
window->setWalletController(m_wallet_controller);
|
window->setWalletController(m_wallet_controller, /*show_loading_minimized=*/start_minimized);
|
||||||
if (paymentServer) {
|
if (paymentServer) {
|
||||||
paymentServer->setOptionsModel(optionsModel);
|
paymentServer->setOptionsModel(optionsModel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // ENABLE_WALLET
|
#endif // ENABLE_WALLET
|
||||||
|
|
||||||
// If -min option passed, start window minimized (iconified) or minimized to tray
|
// Show or minimize window
|
||||||
if (!gArgs.GetBoolArg("-min", false)) {
|
if (!start_minimized) {
|
||||||
window->show();
|
window->show();
|
||||||
} else if (clientModel->getOptionsModel()->getMinimizeToTray() && window->hasTrayIcon()) {
|
} else if (clientModel->getOptionsModel()->getMinimizeToTray() && window->hasTrayIcon()) {
|
||||||
// do nothing as the window is managed by the tray icon
|
// do nothing as the window is managed by the tray icon
|
||||||
|
|
|
@ -679,7 +679,7 @@ void BitcoinGUI::enableHistoryAction(bool privacy)
|
||||||
if (historyAction->isChecked()) gotoOverviewPage();
|
if (historyAction->isChecked()) gotoOverviewPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BitcoinGUI::setWalletController(WalletController* wallet_controller)
|
void BitcoinGUI::setWalletController(WalletController* wallet_controller, bool show_loading_minimized)
|
||||||
{
|
{
|
||||||
assert(!m_wallet_controller);
|
assert(!m_wallet_controller);
|
||||||
assert(wallet_controller);
|
assert(wallet_controller);
|
||||||
|
@ -699,7 +699,7 @@ void BitcoinGUI::setWalletController(WalletController* wallet_controller)
|
||||||
});
|
});
|
||||||
|
|
||||||
auto activity = new LoadWalletsActivity(m_wallet_controller, this);
|
auto activity = new LoadWalletsActivity(m_wallet_controller, this);
|
||||||
activity->load();
|
activity->load(show_loading_minimized);
|
||||||
}
|
}
|
||||||
|
|
||||||
WalletController* BitcoinGUI::getWalletController()
|
WalletController* BitcoinGUI::getWalletController()
|
||||||
|
|
|
@ -81,7 +81,7 @@ public:
|
||||||
*/
|
*/
|
||||||
void setClientModel(ClientModel *clientModel = nullptr, interfaces::BlockAndHeaderTipInfo* tip_info = nullptr);
|
void setClientModel(ClientModel *clientModel = nullptr, interfaces::BlockAndHeaderTipInfo* tip_info = nullptr);
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
void setWalletController(WalletController* wallet_controller);
|
void setWalletController(WalletController* wallet_controller, bool show_loading_minimized);
|
||||||
WalletController* getWalletController();
|
WalletController* getWalletController();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -191,7 +191,7 @@ WalletControllerActivity::WalletControllerActivity(WalletController* wallet_cont
|
||||||
connect(this, &WalletControllerActivity::finished, this, &QObject::deleteLater);
|
connect(this, &WalletControllerActivity::finished, this, &QObject::deleteLater);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WalletControllerActivity::showProgressDialog(const QString& title_text, const QString& label_text)
|
void WalletControllerActivity::showProgressDialog(const QString& title_text, const QString& label_text, bool show_minimized)
|
||||||
{
|
{
|
||||||
auto progress_dialog = new QProgressDialog(m_parent_widget);
|
auto progress_dialog = new QProgressDialog(m_parent_widget);
|
||||||
progress_dialog->setAttribute(Qt::WA_DeleteOnClose);
|
progress_dialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
@ -206,6 +206,8 @@ void WalletControllerActivity::showProgressDialog(const QString& title_text, con
|
||||||
// The setValue call forces QProgressDialog to start the internal duration estimation.
|
// The setValue call forces QProgressDialog to start the internal duration estimation.
|
||||||
// See details in https://bugreports.qt.io/browse/QTBUG-47042.
|
// See details in https://bugreports.qt.io/browse/QTBUG-47042.
|
||||||
progress_dialog->setValue(0);
|
progress_dialog->setValue(0);
|
||||||
|
// When requested, launch dialog minimized
|
||||||
|
if (show_minimized) progress_dialog->showMinimized();
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateWalletActivity::CreateWalletActivity(WalletController* wallet_controller, QWidget* parent_widget)
|
CreateWalletActivity::CreateWalletActivity(WalletController* wallet_controller, QWidget* parent_widget)
|
||||||
|
@ -368,14 +370,15 @@ LoadWalletsActivity::LoadWalletsActivity(WalletController* wallet_controller, QW
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadWalletsActivity::load()
|
void LoadWalletsActivity::load(bool show_loading_minimized)
|
||||||
{
|
{
|
||||||
showProgressDialog(
|
showProgressDialog(
|
||||||
//: Title of progress window which is displayed when wallets are being loaded.
|
//: Title of progress window which is displayed when wallets are being loaded.
|
||||||
tr("Load Wallets"),
|
tr("Load Wallets"),
|
||||||
/*: Descriptive text of the load wallets progress window which indicates to
|
/*: Descriptive text of the load wallets progress window which indicates to
|
||||||
the user that wallets are currently being loaded.*/
|
the user that wallets are currently being loaded.*/
|
||||||
tr("Loading wallets…"));
|
tr("Loading wallets…"),
|
||||||
|
/*show_minimized=*/show_loading_minimized);
|
||||||
|
|
||||||
QTimer::singleShot(0, worker(), [this] {
|
QTimer::singleShot(0, worker(), [this] {
|
||||||
for (auto& wallet : node().walletLoader().getWallets()) {
|
for (auto& wallet : node().walletLoader().getWallets()) {
|
||||||
|
|
|
@ -100,7 +100,7 @@ protected:
|
||||||
interfaces::Node& node() const { return m_wallet_controller->m_node; }
|
interfaces::Node& node() const { return m_wallet_controller->m_node; }
|
||||||
QObject* worker() const { return m_wallet_controller->m_activity_worker; }
|
QObject* worker() const { return m_wallet_controller->m_activity_worker; }
|
||||||
|
|
||||||
void showProgressDialog(const QString& title_text, const QString& label_text);
|
void showProgressDialog(const QString& title_text, const QString& label_text, bool show_minimized=false);
|
||||||
|
|
||||||
WalletController* const m_wallet_controller;
|
WalletController* const m_wallet_controller;
|
||||||
QWidget* const m_parent_widget;
|
QWidget* const m_parent_widget;
|
||||||
|
@ -156,7 +156,7 @@ class LoadWalletsActivity : public WalletControllerActivity
|
||||||
public:
|
public:
|
||||||
LoadWalletsActivity(WalletController* wallet_controller, QWidget* parent_widget);
|
LoadWalletsActivity(WalletController* wallet_controller, QWidget* parent_widget);
|
||||||
|
|
||||||
void load();
|
void load(bool show_loading_minimized);
|
||||||
};
|
};
|
||||||
|
|
||||||
class RestoreWalletActivity : public WalletControllerActivity
|
class RestoreWalletActivity : public WalletControllerActivity
|
||||||
|
|
Loading…
Add table
Reference in a new issue