History

Fix crashing if manually close Clara download status message box

David Rowe committed 9 years ago

Commit fa9aef81 parent 7ebdc6d2 files · +18 −1Browse files

Showing the changes to interface/src/Application.cpp (1 of 2 files). Show all

Unified · Split

interface/src/Application.cpp+17−1
@@ -5909,6 +5909,7 @@ void Application::addAssetToWorldInfo(QString modelName, QString infoText) { · 5908 unmodified lines
59095909 if (!_addAssetToWorldMessageBox) {
59105910 _addAssetToWorldMessageBox = DependencyManager::get<OffscreenUi>()->createMessageBox(OffscreenUi::ICON_INFORMATION,
59115911 "Downloading Asset", "", QMessageBox::NoButton, QMessageBox::NoButton);
5912+ connect(_addAssetToWorldMessageBox, SIGNAL(destroyed()), this, SLOT(onAssetToWorldMessageBoxClosed()));
59125913 }
59135914
59145915 _addAssetToWorldMessageBox->setProperty("text", "\n" + infoText);
@@ -5964,6 +5965,7 @@ void Application::addAssetToWorldInfoTimeout() { · 49 unmodified lines
59645965 if (_addAssetToWorldInfoKeys.length() > 0) {
59655966 _addAssetToWorldMessageBox->setProperty("text", "\n" + _addAssetToWorldInfoMessages.last());
59665967 } else {
5968+ disconnect(_addAssetToWorldMessageBox);
59675969 _addAssetToWorldMessageBox->setVisible(false);
59685970 _addAssetToWorldMessageBox->deleteLater();
59695971 _addAssetToWorldMessageBox = nullptr;
@@ -5991,6 +5993,7 @@ void Application::addAssetToWorldError(QString modelName, QString errorText) { · 21 unmodified lines
59915993 if (!_addAssetToWorldMessageBox) {
59925994 _addAssetToWorldMessageBox = DependencyManager::get<OffscreenUi>()->createMessageBox(OffscreenUi::ICON_INFORMATION,
59935995 "Downloading Asset", "", QMessageBox::NoButton, QMessageBox::NoButton);
5996+ connect(_addAssetToWorldMessageBox, SIGNAL(destroyed()), this, SLOT(onAssetToWorldMessageBoxClosed()));
59945997 }
59955998
59965999 _addAssetToWorldMessageBox->setProperty("text", "\n" + errorText);
@@ -6008,9 +6011,11 @@ void Application::addAssetToWorldErrorTimeout() { · 11 unmodified lines
60086011 If list is not empty, display message from last entry.
60096012 If list is empty, close the message box.
60106013 */
6014+
60116015 if (_addAssetToWorldInfoKeys.length() > 0) {
60126016 _addAssetToWorldMessageBox->setProperty("text", "\n" + _addAssetToWorldInfoMessages.last());
60136017 } else {
6018+ disconnect(_addAssetToWorldMessageBox);
60146019 _addAssetToWorldMessageBox->setVisible(false);
60156020 _addAssetToWorldMessageBox->deleteLater();
60166021 _addAssetToWorldMessageBox = nullptr;
@@ -6022,8 +6027,9 @@ void Application::addAssetToWorldMessageClose() { · 5 unmodified lines
60226027 // Clear messages, e.g., if Interface is being closed or domain changes.
60236028
60246029 /*
6025− Call if application is shutting down.
6030+ Call if user manually closes message box.
60266031 Call if domain changes.
6032+ Call if application is shutting down.
60276033
60286034 Stop timers.
60296035 Close the message box if open.
@@ -6034,6 +6040,7 @@ void Application::addAssetToWorldMessageClose() { · 4 unmodified lines
60346040 _addAssetToWorldErrorTimer.stop();
60356041
60366042 if (_addAssetToWorldMessageBox) {
6043+ disconnect(_addAssetToWorldMessageBox);
60376044 _addAssetToWorldMessageBox->setVisible(false);
60386045 _addAssetToWorldMessageBox->deleteLater();
60396046 _addAssetToWorldMessageBox = nullptr;
@@ -6043,6 +6050,15 @@ void Application::addAssetToWorldMessageClose() { · 3 unmodified lines
60436050 _addAssetToWorldInfoMessages.clear();
60446051 }
60456052
6053+void Application::onAssetToWorldMessageBoxClosed() {
6054+ // User manually closed message box.
6055+
6056+ qInfo(interfaceapp) << "User manually closed download status message box";
6057+ disconnect(_addAssetToWorldMessageBox);
6058+ _addAssetToWorldMessageBox = nullptr;
6059+ addAssetToWorldMessageClose();
6060+}
6061+
60466062
60476063 void Application::handleUnzip(QString zipFile, QString unzipFile, bool autoAdd) {
60486064 if (autoAdd) {