qt, wallet: Move activity progress dialog from data member to local

This commit is contained in:
Hennadii Stepanov 2021-05-22 22:08:59 +03:00
parent d2dd1697ce
commit f9b633eeab
No known key found for this signature in database
GPG Key ID: 410108112E7EA81F
2 changed files with 10 additions and 27 deletions

View File

@ -193,31 +193,20 @@ WalletControllerActivity::WalletControllerActivity(WalletController* wallet_cont
{ {
} }
WalletControllerActivity::~WalletControllerActivity()
{
delete m_progress_dialog;
}
void WalletControllerActivity::showProgressDialog(const QString& label_text) void WalletControllerActivity::showProgressDialog(const QString& label_text)
{ {
assert(!m_progress_dialog); auto progress_dialog = new QProgressDialog(m_parent_widget);
m_progress_dialog = new QProgressDialog(m_parent_widget); progress_dialog->setAttribute(Qt::WA_DeleteOnClose);
connect(this, &WalletControllerActivity::finished, progress_dialog, &QWidget::close);
m_progress_dialog->setLabelText(label_text); progress_dialog->setLabelText(label_text);
m_progress_dialog->setRange(0, 0); progress_dialog->setRange(0, 0);
m_progress_dialog->setCancelButton(nullptr); progress_dialog->setCancelButton(nullptr);
m_progress_dialog->setWindowModality(Qt::ApplicationModal); progress_dialog->setWindowModality(Qt::ApplicationModal);
GUIUtil::PolishProgressDialog(m_progress_dialog); GUIUtil::PolishProgressDialog(progress_dialog);
// 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.
m_progress_dialog->setValue(0); progress_dialog->setValue(0);
}
void WalletControllerActivity::destroyProgressDialog()
{
assert(m_progress_dialog);
delete m_progress_dialog;
m_progress_dialog = nullptr;
} }
CreateWalletActivity::CreateWalletActivity(WalletController* wallet_controller, QWidget* parent_widget) CreateWalletActivity::CreateWalletActivity(WalletController* wallet_controller, QWidget* parent_widget)
@ -279,8 +268,6 @@ void CreateWalletActivity::createWallet()
void CreateWalletActivity::finish() void CreateWalletActivity::finish()
{ {
destroyProgressDialog();
if (!m_error_message.empty()) { if (!m_error_message.empty()) {
QMessageBox::critical(m_parent_widget, tr("Create wallet failed"), QString::fromStdString(m_error_message.translated)); QMessageBox::critical(m_parent_widget, tr("Create wallet failed"), QString::fromStdString(m_error_message.translated));
} else if (!m_warning_message.empty()) { } else if (!m_warning_message.empty()) {
@ -329,8 +316,6 @@ OpenWalletActivity::OpenWalletActivity(WalletController* wallet_controller, QWid
void OpenWalletActivity::finish() void OpenWalletActivity::finish()
{ {
destroyProgressDialog();
if (!m_error_message.empty()) { if (!m_error_message.empty()) {
QMessageBox::critical(m_parent_widget, tr("Open wallet failed"), QString::fromStdString(m_error_message.translated)); QMessageBox::critical(m_parent_widget, tr("Open wallet failed"), QString::fromStdString(m_error_message.translated));
} else if (!m_warning_message.empty()) { } else if (!m_warning_message.empty()) {

View File

@ -90,7 +90,7 @@ class WalletControllerActivity : public QObject
public: public:
WalletControllerActivity(WalletController* wallet_controller, QWidget* parent_widget); WalletControllerActivity(WalletController* wallet_controller, QWidget* parent_widget);
virtual ~WalletControllerActivity(); virtual ~WalletControllerActivity() = default;
Q_SIGNALS: Q_SIGNALS:
void finished(); void finished();
@ -100,11 +100,9 @@ protected:
QObject* worker() const { return m_wallet_controller->m_activity_worker; } QObject* worker() const { return m_wallet_controller->m_activity_worker; }
void showProgressDialog(const QString& label_text); void showProgressDialog(const QString& label_text);
void destroyProgressDialog();
WalletController* const m_wallet_controller; WalletController* const m_wallet_controller;
QWidget* const m_parent_widget; QWidget* const m_parent_widget;
QProgressDialog* m_progress_dialog{nullptr};
WalletModel* m_wallet_model{nullptr}; WalletModel* m_wallet_model{nullptr};
bilingual_str m_error_message; bilingual_str m_error_message;
std::vector<bilingual_str> m_warning_message; std::vector<bilingual_str> m_warning_message;