diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-07-09 00:47:29 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-07-10 20:45:37 -0400 |
| commit | fa6602816160f6ac959527ce843dee22b1272603 (patch) | |
| tree | 7586d0f1f0e6c59e45b19a85a382b219f0536a87 | |
| parent | d9003f9e5407396fdd552c5df3d0be76ab9a16a3 (diff) | |
dialog should be on the heap, gets deleted by the main window
| -rw-r--r-- | src/nxmaccessmanager.cpp | 19 | ||||
| -rw-r--r-- | src/nxmaccessmanager.h | 2 |
2 files changed, 10 insertions, 11 deletions
diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp index a68dea54..cabe07a9 100644 --- a/src/nxmaccessmanager.cpp +++ b/src/nxmaccessmanager.cpp @@ -46,9 +46,8 @@ const QString NexusBaseUrl("https://api.nexusmods.com/v1"); const auto ValidationTimeout = 10s; -ValidationProgressDialog::ValidationProgressDialog(std::chrono::seconds t) : - m_timeout(t), m_bar(nullptr), m_buttons(nullptr), - m_timer(nullptr) +ValidationProgressDialog::ValidationProgressDialog(std::chrono::seconds t) + : m_timeout(t), m_bar(nullptr), m_buttons(nullptr), m_timer(nullptr) { m_bar = new QProgressBar; m_bar->setTextVisible(false); @@ -123,7 +122,7 @@ void ValidationProgressDialog::onTimer() NXMAccessManager::NXMAccessManager(QObject *parent, const QString &moVersion) : QNetworkAccessManager(parent) , m_ValidateReply(nullptr) - , m_ProgressDialog(ValidationTimeout) + , m_ProgressDialog(new ValidationProgressDialog(ValidationTimeout)) , m_MOVersion(moVersion) { m_ValidateTimeout.setSingleShot(true); @@ -149,7 +148,7 @@ NXMAccessManager::~NXMAccessManager() void NXMAccessManager::setTopLevelWidget(QWidget* w) { - m_ProgressDialog.setParentWidget(w); + m_ProgressDialog->setParentWidget(w); } QNetworkReply *NXMAccessManager::createRequest( @@ -206,7 +205,7 @@ void NXMAccessManager::startValidationCheck() request.setRawHeader("Application-Name", "MO2"); request.setRawHeader("Application-Version", m_MOVersion.toUtf8()); - m_ProgressDialog.start(); + m_ProgressDialog->start(); QCoreApplication::processEvents(); // for some reason the whole app hangs during the login. This way the user has at least a little feedback @@ -221,7 +220,7 @@ void NXMAccessManager::startValidationCheck() bool NXMAccessManager::validated() const { if (m_ValidateState == VALIDATE_CHECKING) { - m_ProgressDialog.show(); + m_ProgressDialog->show(); } return m_ValidateState == VALIDATE_VALID; @@ -300,7 +299,7 @@ void NXMAccessManager::clearApiKey() void NXMAccessManager::validateTimeout() { m_ValidateTimeout.stop(); - m_ProgressDialog.stop(); + m_ProgressDialog->stop(); m_ApiKey.clear(); m_ValidateState = VALIDATE_NOT_VALID; @@ -317,7 +316,7 @@ void NXMAccessManager::validateTimeout() void NXMAccessManager::validateError(QNetworkReply::NetworkError) { m_ValidateTimeout.stop(); - m_ProgressDialog.stop(); + m_ProgressDialog->stop(); m_ApiKey.clear(); m_ValidateState = VALIDATE_NOT_VALID; @@ -337,7 +336,7 @@ void NXMAccessManager::validateError(QNetworkReply::NetworkError) void NXMAccessManager::validateFinished() { m_ValidateTimeout.stop(); - m_ProgressDialog.stop(); + m_ProgressDialog->stop(); if (m_ValidateReply != nullptr) { QJsonDocument jdoc = QJsonDocument::fromJson(m_ValidateReply->readAll()); diff --git a/src/nxmaccessmanager.h b/src/nxmaccessmanager.h index 4467ea8d..f53f6648 100644 --- a/src/nxmaccessmanager.h +++ b/src/nxmaccessmanager.h @@ -130,7 +130,7 @@ private: QWidget* m_TopLevel; QTimer m_ValidateTimeout; QNetworkReply *m_ValidateReply; - mutable ValidationProgressDialog m_ProgressDialog; + mutable ValidationProgressDialog* m_ProgressDialog; QString m_MOVersion; |
