Skip to content

Commit 1951ea4

Browse files
committed
gui: Show indeterminate progress dialog while opening walllet
1 parent 8847cda commit 1951ea4

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/qt/bitcoingui.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,10 +370,29 @@ void BitcoinGUI::createActions()
370370
for (std::string path : m_wallet_controller->getWalletsAvailableToOpen()) {
371371
QString name = path.empty() ? QString("["+tr("default wallet")+"]") : QString::fromStdString(path);
372372
QAction* action = m_open_wallet_action->menu()->addAction(name);
373-
connect(action, &QAction::triggered, [this, path] {
373+
connect(action, &QAction::triggered, [this, name, path] {
374374
OpenWalletActivity* activity = m_wallet_controller->openWallet(path);
375+
376+
QProgressDialog* dialog = new QProgressDialog(this);
377+
dialog->setLabelText(tr("Opening Wallet <b>%1</b>...").arg(name.toHtmlEscaped()));
378+
dialog->setRange(0, 0);
379+
dialog->setCancelButton(nullptr);
380+
dialog->setWindowModality(Qt::ApplicationModal);
381+
dialog->show();
382+
383+
connect(activity, &OpenWalletActivity::message, this, [this] (QMessageBox::Icon icon, QString text) {
384+
QMessageBox box;
385+
box.setIcon(icon);
386+
box.setText(tr("Open Wallet Failed"));
387+
box.setInformativeText(text);
388+
box.setStandardButtons(QMessageBox::Ok);
389+
box.setDefaultButton(QMessageBox::Ok);
390+
connect(this, &QObject::destroyed, &box, &QDialog::accept);
391+
box.exec();
392+
});
375393
connect(activity, &OpenWalletActivity::opened, this, &BitcoinGUI::setCurrentWallet);
376394
connect(activity, &OpenWalletActivity::finished, activity, &QObject::deleteLater);
395+
connect(activity, &OpenWalletActivity::finished, dialog, &QObject::deleteLater);
377396
});
378397
}
379398
});

0 commit comments

Comments
 (0)