summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMnikolenko Productengine <mnikolenko@productengine.com>2016-10-28 11:30:48 +0300
committerMnikolenko Productengine <mnikolenko@productengine.com>2016-10-28 11:30:48 +0300
commit68267b611cc6b6ba351858f37cdc1fe1fd5f8a78 (patch)
tree303fda63c8f94cd6b9154956afcf881f331256ac /indra
parent97c372047c14ce9966a41744c15b79d27ce8fba4 (diff)
MAINT-6875 Viewer crashes after double clicking on Upload>Mesh
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llfloatermodelpreview.cpp10
-rw-r--r--indra/newview/llfloatermodelpreview.h2
-rw-r--r--indra/newview/llviewermenufile.cpp8
3 files changed, 18 insertions, 2 deletions
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index a07f3311f1..47d2c0e3c1 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -1756,8 +1756,8 @@ void LLModelPreview::loadModel(std::string filename, S32 lod, bool force_disable
// this is the initial file picking. Close the whole floater
// if we don't have a base model to show for high LOD.
mFMP->closeFloater(false);
- mLoading = false;
}
+ mLoading = false;
return;
}
@@ -4515,4 +4515,12 @@ void LLFloaterModelPreview::setPermissonsErrorStatus(S32 status, const std::stri
LLNotificationsUtil::add("MeshUploadPermError");
}
+bool LLFloaterModelPreview::isModelLoading()
+{
+ if(mModelPreview)
+ {
+ return mModelPreview->mLoading;
+ }
+ return false;
+}
diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h
index 184315f604..df58b843cb 100644
--- a/indra/newview/llfloatermodelpreview.h
+++ b/indra/newview/llfloatermodelpreview.h
@@ -115,6 +115,8 @@ public:
void enableViewOption(const std::string& option);
void disableViewOption(const std::string& option);
+ bool isModelLoading();
+
// shows warning message if agent has no permissions to upload model
/*virtual*/ void onPermissionsReceived(const LLSD& result);
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index b48b45502b..08d024e45c 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -93,6 +93,12 @@ class LLFileEnableUploadModel : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
+ LLFloaterModelPreview* fmp = (LLFloaterModelPreview*) LLFloaterReg::findInstance("upload_model");
+ if (fmp && fmp->isModelLoading())
+ {
+ return false;
+ }
+
return true;
}
};
@@ -359,7 +365,7 @@ class LLFileUploadModel : public view_listener_t
bool handleEvent(const LLSD& userdata)
{
LLFloaterModelPreview* fmp = (LLFloaterModelPreview*) LLFloaterReg::getInstance("upload_model");
- if (fmp)
+ if (fmp && !fmp->isModelLoading())
{
fmp->loadModel(3);
}