@@ -370,10 +370,29 @@ void BitcoinGUI::createActions()
370
370
for (std::string path : m_wallet_controller->getWalletsAvailableToOpen ()) {
371
371
QString name = path.empty () ? QString (" [" +tr (" default wallet" )+" ]" ) : QString::fromStdString (path);
372
372
QAction* action = m_open_wallet_action->menu ()->addAction (name);
373
- connect (action, &QAction::triggered, [this , path] {
373
+ connect (action, &QAction::triggered, [this , name, path] {
374
374
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
+ });
375
393
connect (activity, &OpenWalletActivity::opened, this , &BitcoinGUI::setCurrentWallet);
376
394
connect (activity, &OpenWalletActivity::finished, activity, &QObject::deleteLater);
395
+ connect (activity, &OpenWalletActivity::finished, dialog, &QObject::deleteLater);
377
396
});
378
397
}
379
398
});
0 commit comments