From 90d87a0cf75be44da34c3c3282f82e5b3a399168 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 10 Oct 2015 19:35:18 +0200 Subject: fixed progress dialogs appearing on startup Appears to be a new bug in qt or maybe incompatibility with Windows 10: All Progress dialogs were made visibly automatically a few seconds after application startup. This was "fixed" by creating the dialog dynamically on demand --- src/nxmaccessmanager.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/nxmaccessmanager.cpp') diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp index 07a75910..0763bb71 100644 --- a/src/nxmaccessmanager.cpp +++ b/src/nxmaccessmanager.cpp @@ -52,7 +52,6 @@ const std::set NXMAccessManager::s_PremiumAccountStates { 4, 6, 13, 27, 31, NXMAccessManager::NXMAccessManager(QObject *parent, const QString &moVersion) : QNetworkAccessManager(parent) , m_LoginReply(nullptr) - , m_ProgressDialog() , m_MOVersion(moVersion) { m_LoginTimeout.setSingleShot(true); @@ -239,10 +238,11 @@ void NXMAccessManager::pageLogin() request.setRawHeader("User-Agent", userAgent().toUtf8()); - m_ProgressDialog.setLabelText(tr("Logging into Nexus")); - QList buttons = m_ProgressDialog.findChildren(); + m_ProgressDialog = new QProgressDialog(nullptr); + m_ProgressDialog->setLabelText(tr("Logging into Nexus")); + QList buttons = m_ProgressDialog->findChildren(); buttons.at(0)->setEnabled(false); - m_ProgressDialog.show(); + m_ProgressDialog->show(); QCoreApplication::processEvents(); // for some reason the whole app hangs during the login. This way the user has at least a little feedback m_LoginReply = post(request, postDataQuery); @@ -269,7 +269,10 @@ void NXMAccessManager::loginTimeout() void NXMAccessManager::loginError(QNetworkReply::NetworkError) { qDebug("login error"); - m_ProgressDialog.hide(); + if (m_ProgressDialog != nullptr) { + m_ProgressDialog->deleteLater(); + m_ProgressDialog = nullptr; + } m_Username.clear(); m_Password.clear(); m_LoginState = LOGIN_NOT_VALID; @@ -300,7 +303,10 @@ bool NXMAccessManager::hasLoginCookies() const void NXMAccessManager::loginFinished() { - m_ProgressDialog.hide(); + if (m_ProgressDialog != nullptr) { + m_ProgressDialog->deleteLater(); + m_ProgressDialog = nullptr; + } m_LoginReply->deleteLater(); m_LoginReply = nullptr; -- cgit v1.3.1