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
5909 if (!_addAssetToWorldMessageBox) {5909 if (!_addAssetToWorldMessageBox) {
5910 _addAssetToWorldMessageBox = DependencyManager::get<OffscreenUi>()->createMessageBox(OffscreenUi::ICON_INFORMATION,5910 _addAssetToWorldMessageBox = DependencyManager::get<OffscreenUi>()->createMessageBox(OffscreenUi::ICON_INFORMATION,
5911 "Downloading Asset", "", QMessageBox::NoButton, QMessageBox::NoButton);5911 "Downloading Asset", "", QMessageBox::NoButton, QMessageBox::NoButton);
5912 connect(_addAssetToWorldMessageBox, SIGNAL(destroyed()), this, SLOT(onAssetToWorldMessageBoxClosed()));
5912 }5913 }
5913 5914
5914 _addAssetToWorldMessageBox->setProperty("text", "\n" + infoText);5915 _addAssetToWorldMessageBox->setProperty("text", "\n" + infoText);
@@ -5964,6 +5965,7 @@ void Application::addAssetToWorldInfoTimeout() { · 49 unmodified lines
5964 if (_addAssetToWorldInfoKeys.length() > 0) {5965 if (_addAssetToWorldInfoKeys.length() > 0) {
5965 _addAssetToWorldMessageBox->setProperty("text", "\n" + _addAssetToWorldInfoMessages.last());5966 _addAssetToWorldMessageBox->setProperty("text", "\n" + _addAssetToWorldInfoMessages.last());
5966 } else {5967 } else {
5968 disconnect(_addAssetToWorldMessageBox);
5967 _addAssetToWorldMessageBox->setVisible(false);5969 _addAssetToWorldMessageBox->setVisible(false);
5968 _addAssetToWorldMessageBox->deleteLater();5970 _addAssetToWorldMessageBox->deleteLater();
5969 _addAssetToWorldMessageBox = nullptr;5971 _addAssetToWorldMessageBox = nullptr;
@@ -5991,6 +5993,7 @@ void Application::addAssetToWorldError(QString modelName, QString errorText) { · 21 unmodified lines
5991 if (!_addAssetToWorldMessageBox) {5993 if (!_addAssetToWorldMessageBox) {
5992 _addAssetToWorldMessageBox = DependencyManager::get<OffscreenUi>()->createMessageBox(OffscreenUi::ICON_INFORMATION,5994 _addAssetToWorldMessageBox = DependencyManager::get<OffscreenUi>()->createMessageBox(OffscreenUi::ICON_INFORMATION,
5993 "Downloading Asset", "", QMessageBox::NoButton, QMessageBox::NoButton);5995 "Downloading Asset", "", QMessageBox::NoButton, QMessageBox::NoButton);
5996 connect(_addAssetToWorldMessageBox, SIGNAL(destroyed()), this, SLOT(onAssetToWorldMessageBoxClosed()));
5994 }5997 }
5995 5998
5996 _addAssetToWorldMessageBox->setProperty("text", "\n" + errorText);5999 _addAssetToWorldMessageBox->setProperty("text", "\n" + errorText);
@@ -6008,9 +6011,11 @@ void Application::addAssetToWorldErrorTimeout() { · 11 unmodified lines
6008 If list is not empty, display message from last entry.6011 If list is not empty, display message from last entry.
6009 If list is empty, close the message box.6012 If list is empty, close the message box.
6010 */6013 */
6014
6011 if (_addAssetToWorldInfoKeys.length() > 0) {6015 if (_addAssetToWorldInfoKeys.length() > 0) {
6012 _addAssetToWorldMessageBox->setProperty("text", "\n" + _addAssetToWorldInfoMessages.last());6016 _addAssetToWorldMessageBox->setProperty("text", "\n" + _addAssetToWorldInfoMessages.last());
6013 } else {6017 } else {
6018 disconnect(_addAssetToWorldMessageBox);
6014 _addAssetToWorldMessageBox->setVisible(false);6019 _addAssetToWorldMessageBox->setVisible(false);
6015 _addAssetToWorldMessageBox->deleteLater();6020 _addAssetToWorldMessageBox->deleteLater();
6016 _addAssetToWorldMessageBox = nullptr;6021 _addAssetToWorldMessageBox = nullptr;
@@ -6022,8 +6027,9 @@ void Application::addAssetToWorldMessageClose() { · 5 unmodified lines
6022 // Clear messages, e.g., if Interface is being closed or domain changes.6027 // Clear messages, e.g., if Interface is being closed or domain changes.
6023 6028
6024 /*6029 /*
6025 Call if application is shutting down.6030 Call if user manually closes message box.
6026 Call if domain changes.6031 Call if domain changes.
6032 Call if application is shutting down.
6027 6033
6028 Stop timers.6034 Stop timers.
6029 Close the message box if open.6035 Close the message box if open.
@@ -6034,6 +6040,7 @@ void Application::addAssetToWorldMessageClose() { · 4 unmodified lines
6034 _addAssetToWorldErrorTimer.stop();6040 _addAssetToWorldErrorTimer.stop();
6035 6041
6036 if (_addAssetToWorldMessageBox) {6042 if (_addAssetToWorldMessageBox) {
6043 disconnect(_addAssetToWorldMessageBox);
6037 _addAssetToWorldMessageBox->setVisible(false);6044 _addAssetToWorldMessageBox->setVisible(false);
6038 _addAssetToWorldMessageBox->deleteLater();6045 _addAssetToWorldMessageBox->deleteLater();
6039 _addAssetToWorldMessageBox = nullptr;6046 _addAssetToWorldMessageBox = nullptr;
@@ -6043,6 +6050,15 @@ void Application::addAssetToWorldMessageClose() { · 3 unmodified lines
6043 _addAssetToWorldInfoMessages.clear();6050 _addAssetToWorldInfoMessages.clear();
6044}6051}
6045 6052
6053void 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
6046 6062
6047void Application::handleUnzip(QString zipFile, QString unzipFile, bool autoAdd) {6063void Application::handleUnzip(QString zipFile, QString unzipFile, bool autoAdd) {
6048 if (autoAdd) {6064 if (autoAdd) {