From aa014a65e76a1312dee82de38dc8d73b64e7a8b5 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Fri, 24 Apr 2020 20:50:57 +0300
Subject: SL-13123 Bind shape matrix orientation warning is misbehaving

---
 indra/newview/llfloatermodelpreview.cpp | 21 +++++----------------
 indra/newview/llfloatermodelpreview.h   |  1 -
 indra/newview/llmodelpreview.cpp        |  4 ++++
 3 files changed, 9 insertions(+), 17 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 98ffd30bc7..f609e8a91a 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -180,7 +180,6 @@ BOOL LLFloaterModelPreview::postBuild()
 
 	childSetCommitCallback("preview_lod_combo", onPreviewLODCommit, this);
 
-	childSetCommitCallback("upload_skin", onUploadSkinCommit, this);
 	childSetCommitCallback("upload_joints", onUploadJointsCommit, this);
 	childSetCommitCallback("lock_scale_if_joint_position", onUploadJointsCommit, this);
 
@@ -331,7 +330,11 @@ void LLFloaterModelPreview::onUploadOptionChecked(LLUICtrl* ctrl)
 	if (mModelPreview)
 	{
 		auto name = ctrl->getName();
-		mModelPreview->mViewOption[name] = !mModelPreview->mViewOption[name];
+        mModelPreview->mViewOption[name] = !mModelPreview->mViewOption[name];
+        mModelPreview->refresh();
+        mModelPreview->resetPreviewTarget();
+        mModelPreview->clearBuffers();
+        mModelPreview->mDirty = true;
 	}
 	toggleCalculateButton(true);
 }
@@ -615,20 +618,6 @@ void LLFloaterModelPreview::onUploadJointsCommit(LLUICtrl*,void* userdata)
 	fp->mModelPreview->refresh();
 }
 
-//static
-void LLFloaterModelPreview::onUploadSkinCommit(LLUICtrl*,void* userdata)
-{
-	LLFloaterModelPreview *fp =(LLFloaterModelPreview *)userdata;
-
-	if (!fp->mModelPreview)
-	{
-		return;
-	}
-	fp->mModelPreview->refresh();
-	fp->mModelPreview->resetPreviewTarget();
-	fp->mModelPreview->clearBuffers();
-}
-
 //static
 void LLFloaterModelPreview::onPreviewLODCommit(LLUICtrl* ctrl, void* userdata)
 {
diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h
index 48b90e9d44..6ecc279365 100644
--- a/indra/newview/llfloatermodelpreview.h
+++ b/indra/newview/llfloatermodelpreview.h
@@ -140,7 +140,6 @@ protected:
 	static void		onImportScaleCommit(LLUICtrl*, void*);
 	static void		onPelvisOffsetCommit(LLUICtrl*, void*);
 	static void		onUploadJointsCommit(LLUICtrl*,void*);
-	static void		onUploadSkinCommit(LLUICtrl*,void*);
 
 	static void		onPreviewLODCommit(LLUICtrl*,void*);
 	
diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp
index 6de88b318a..dbb2c162a3 100644
--- a/indra/newview/llmodelpreview.cpp
+++ b/indra/newview/llmodelpreview.cpp
@@ -599,6 +599,10 @@ void LLModelPreview::rebuildUploadData()
                         setLoadState(LLModelLoader::WARNING_BIND_SHAPE_ORIENTATION);
                     }
                 }
+                else if (getLoadState() == LLModelLoader::WARNING_BIND_SHAPE_ORIENTATION)
+                {
+                    setLoadState(LLModelLoader::DONE);
+                }
             }
             instance.mTransform = mat;
             mUploadData.push_back(instance);
-- 
cgit v1.2.3