From ca1c1eea78ff2ab83979a4308dd5a93ea0032fc8 Mon Sep 17 00:00:00 2001 From: leyla_linden Date: Wed, 19 Jan 2011 11:38:34 -0800 Subject: SH-808 Selectively enable/disable features in edit tools --- indra/llui/llcombobox.cpp | 4 ++++ indra/llui/llcombobox.h | 1 + indra/newview/llfloatertools.cpp | 7 +++++++ indra/newview/llpanelobject.cpp | 26 ++++++++++++++++++++++++++ 4 files changed, 38 insertions(+) (limited to 'indra') diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp index 8b6a73af56..701d1ff706 100644 --- a/indra/llui/llcombobox.cpp +++ b/indra/llui/llcombobox.cpp @@ -231,6 +231,10 @@ void LLComboBox::resetDirty() } } +bool LLComboBox::itemExists(const std::string& name) +{ + return mList->getItemByLabel(name); +} // add item "name" to menu LLScrollListItem* LLComboBox::add(const std::string& name, EAddPosition pos, BOOL enabled) diff --git a/indra/llui/llcombobox.h b/indra/llui/llcombobox.h index 74d64269bd..59beba509c 100644 --- a/indra/llui/llcombobox.h +++ b/indra/llui/llcombobox.h @@ -134,6 +134,7 @@ public: LLScrollListItem* addSeparator(EAddPosition pos = ADD_BOTTOM); BOOL remove( S32 index ); // remove item by index, return TRUE if found and removed void removeall() { clearRows(); } + bool itemExists(const std::string& name); void sortByName(BOOL ascending = TRUE); // Sort the entries in the combobox by name diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 920bdef7f6..49e24f8e3d 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -463,6 +463,13 @@ void LLFloaterTools::refresh() childSetEnabled("linked_set_cost", have_selection); childSetEnabled("object_cost", have_selection); + bool enable_mesh = gSavedSettings.getBOOL("MeshEnabled"); + + getChildView("linked_set_count")->setVisible(enable_mesh); + getChildView("linked_set_cost")->setVisible(enable_mesh); + getChildView("object_count")->setVisible(enable_mesh); + getChildView("object_cost")->setVisible(enable_mesh); + // Refresh child tabs mPanelPermissions->refresh(); mPanelObject->refresh(); diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 45e9a04fc2..73a8fbe3aa 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -1910,6 +1910,32 @@ void LLPanelObject::refresh() { mRootObject = NULL; } + + bool enable_mesh = gSavedSettings.getBOOL("MeshEnabled"); + + getChildView("label physicsshapetype")->setVisible(enable_mesh); + getChildView("Physics Shape Type Combo Ctrl")->setVisible(enable_mesh); + getChildView("Physics Gravity")->setVisible(enable_mesh); + getChildView("Physics Material Override")->setVisible(enable_mesh); + getChildView("Physics Friction")->setVisible(enable_mesh); + getChildView("Physics Density")->setVisible(enable_mesh); + getChildView("Physics Restitution")->setVisible(enable_mesh); + + // if mesh isn't enabled we want to the scale max to be 10 + getChild("Scale X")->setMaxValue(enable_mesh ? 64 : 10); + getChild("Scale Y")->setMaxValue(enable_mesh ? 64 : 10); + getChild("Scale Z")->setMaxValue(enable_mesh ? 64 : 10); + + LLComboBox* sculpt_combo = getChild("sculpt type control"); + BOOL found = sculpt_combo->itemExists("Mesh"); + if (enable_mesh && !found) + { + sculpt_combo->add("Mesh"); + } + else if (!enable_mesh && found) + { + sculpt_combo->remove("Mesh"); + } } -- cgit v1.2.3