aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden
diff options
context:
space:
mode:
authorMcCabe Maxsted2010-06-15 21:12:53 -0700
committerJacek Antonelli2010-06-19 02:43:40 -0500
commitf1f72d0b8beb03715ea97cdeeafc1d1159b14504 (patch)
tree900a2c3c523d4b71ad3cb27491d4475d5ef5261e /linden
parentLittle cleanup of the AO menu check (diff)
downloadmeta-impy-f1f72d0b8beb03715ea97cdeeafc1d1159b14504.zip
meta-impy-f1f72d0b8beb03715ea97cdeeafc1d1159b14504.tar.gz
meta-impy-f1f72d0b8beb03715ea97cdeeafc1d1159b14504.tar.bz2
meta-impy-f1f72d0b8beb03715ea97cdeeafc1d1159b14504.tar.xz
Added DisableMaxBuildConstraints setting for disabling viewer max prim size limit and created an advanced menu item (also updated hippoLimits)
Diffstat (limited to 'linden')
-rw-r--r--linden/indra/newview/app_settings/settings.xml11
-rw-r--r--linden/indra/newview/hippoLimits.cpp39
-rw-r--r--linden/indra/newview/hippoLimits.h38
-rw-r--r--linden/indra/newview/llfloatertools.cpp36
-rw-r--r--linden/indra/newview/llfloatertools.h3
-rw-r--r--linden/indra/newview/llviewermenu.cpp32
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml7
7 files changed, 127 insertions, 39 deletions
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index fa6e275..1f4e16b 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -92,6 +92,17 @@
92 <key>Value</key> 92 <key>Value</key>
93 <integer>0</integer> 93 <integer>0</integer>
94 </map> 94 </map>
95 <key>DisableMaxBuildConstraints</key>
96 <map>
97 <key>Comment</key>
98 <string>Disable maximum prim size limit enforcement in the viewer (i.e. makes the sim enforce size instead). Doesn't actually toggle megas</string>
99 <key>Persist</key>
100 <integer>1</integer>
101 <key>Type</key>
102 <string>Boolean</string>
103 <key>Value</key>
104 <integer>0</integer>
105 </map>
95 <key>DisableMinZoomDist</key> 106 <key>DisableMinZoomDist</key>
96 <map> 107 <map>
97 <key>Comment</key> 108 <key>Comment</key>
diff --git a/linden/indra/newview/hippoLimits.cpp b/linden/indra/newview/hippoLimits.cpp
index 35afcf9..0777ca3 100644
--- a/linden/indra/newview/hippoLimits.cpp
+++ b/linden/indra/newview/hippoLimits.cpp
@@ -5,6 +5,7 @@
5#include "hippoLimits.h" 5#include "hippoLimits.h"
6 6
7#include "hippoGridManager.h" 7#include "hippoGridManager.h"
8#include "llviewercontrol.h"
8 9
9#include <llerror.h> 10#include <llerror.h>
10 11
@@ -12,7 +13,15 @@
12HippoLimits *gHippoLimits = 0; 13HippoLimits *gHippoLimits = 0;
13 14
14 15
15HippoLimits::HippoLimits() 16HippoLimits::HippoLimits()
17:
18 mMaxAgentGroups(100),
19 mMaxHeight(10000.0f),
20 mMinHoleSize(0.05f),
21 mMaxHollow(0.95f),
22 mMinPrimScale(0.001f),
23 mMaxPrimScale(256.0f),
24 mMaxLinkedPrims(-1)
16{ 25{
17 setLimits(); 26 setLimits();
18} 27}
@@ -20,9 +29,12 @@ HippoLimits::HippoLimits()
20 29
21void HippoLimits::setLimits() 30void HippoLimits::setLimits()
22{ 31{
23 if (gHippoGridManager->getConnectedGrid()->getPlatform() == HippoGridInfo::PLATFORM_SECONDLIFE) { 32 if (gHippoGridManager->getConnectedGrid()->getPlatform() == HippoGridInfo::PLATFORM_SECONDLIFE)
33 {
24 setSecondLifeLimits(); 34 setSecondLifeLimits();
25 } else { 35 }
36 else
37 {
26 setOpenSimLimits(); 38 setOpenSimLimits();
27 } 39 }
28} 40}
@@ -37,11 +49,13 @@ void HippoLimits::setOpenSimLimits()
37 mMaxLinkedPrims = -1; 49 mMaxLinkedPrims = -1;
38 50
39 if (gHippoGridManager->getConnectedGrid()->isRenderCompat()) { 51 if (gHippoGridManager->getConnectedGrid()->isRenderCompat()) {
40 llinfos << "Using rendering compatible OpenSim limits." << llendl; 52 llinfos << "Using rendering compatible OpenSim limits" << llendl;
41 mMinHoleSize = 0.05f; 53 mMinHoleSize = 0.05f;
42 mMaxHollow = 0.95f; 54 mMaxHollow = 0.95f;
43 } else { 55 }
44 llinfos << "Using Hippo OpenSim limits." << llendl; 56 else
57 {
58 llinfos << "Using Hippo OpenSim limits" << llendl;
45 mMinHoleSize = 0.01f; 59 mMinHoleSize = 0.01f;
46 mMaxHollow = 0.99f; 60 mMaxHollow = 0.99f;
47 } 61 }
@@ -49,7 +63,7 @@ void HippoLimits::setOpenSimLimits()
49 63
50void HippoLimits::setSecondLifeLimits() 64void HippoLimits::setSecondLifeLimits()
51{ 65{
52 llinfos << "Using Second Life limits." << llendl; 66 llinfos << "Using Second Life limits" << llendl;
53 mMaxAgentGroups = 25; 67 mMaxAgentGroups = 25;
54 mMaxPrimScale = 10.0f; 68 mMaxPrimScale = 10.0f;
55 mMinPrimScale = 0.01f; 69 mMinPrimScale = 0.01f;
@@ -59,3 +73,14 @@ void HippoLimits::setSecondLifeLimits()
59 mMaxLinkedPrims = 255; 73 mMaxLinkedPrims = 255;
60} 74}
61 75
76F32 HippoLimits::getMaxPrimScale() const
77{
78 if (gSavedSettings.getBOOL("DisableMaxBuildConstraints"))
79 {
80 return FLT_MAX;
81 }
82 else
83 {
84 return mMaxPrimScale;
85 }
86}
diff --git a/linden/indra/newview/hippoLimits.h b/linden/indra/newview/hippoLimits.h
index 450a112..f76e7e9 100644
--- a/linden/indra/newview/hippoLimits.h
+++ b/linden/indra/newview/hippoLimits.h
@@ -7,32 +7,34 @@ class HippoLimits
7public: 7public:
8 HippoLimits(); 8 HippoLimits();
9 9
10 int getMaxAgentGroups() const { return mMaxAgentGroups; } 10 const S32& getMaxAgentGroups() const { return mMaxAgentGroups; }
11 float getMaxHeight() const { return mMaxHeight; } 11 const F32& getMaxHeight() const { return mMaxHeight; }
12 float getMinHoleSize() const { return mMinHoleSize; } 12 const F32& getMinHoleSize() const { return mMinHoleSize; }
13 float getMaxHollow() const { return mMaxHollow; } 13 const F32& getMaxHollow() const { return mMaxHollow; }
14 float getMaxPrimScale() const { return mMaxPrimScale; } 14 const F32& getMinPrimScale() const { return mMinPrimScale; }
15 float getMinPrimScale() const { return mMinPrimScale; } 15 const S32& getMaxLinkedPrims() const { return mMaxLinkedPrims; }
16 S32 getMaxLinkedPrims() const { return mMaxLinkedPrims; }
17 16
18 void setLimits(); 17 // Returns the max prim size we can use on a grid
18 F32 getMaxPrimScale() const;
19
20 void setLimits();
19 21
20private: 22private:
21 int mMaxAgentGroups; 23 S32 mMaxAgentGroups;
22 24
23 float mMaxHeight; 25 F32 mMaxHeight;
24 float mMinHoleSize; 26 F32 mMinHoleSize;
25 float mMaxHollow; 27 F32 mMaxHollow;
26 float mMaxPrimScale; 28 F32 mMaxPrimScale;
27 float mMinPrimScale; 29 F32 mMinPrimScale;
28 S32 mMaxLinkedPrims; 30 S32 mMaxLinkedPrims;
29 31
30 void setOpenSimLimits(); 32 void setOpenSimLimits();
31 void setSecondLifeLimits(); 33 void setSecondLifeLimits();
32}; 34};
33 35
34 36
35extern HippoLimits *gHippoLimits; 37extern HippoLimits* gHippoLimits;
36 38
37 39
38#endif 40#endif
diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp
index efd81a6..4f31c3c 100644
--- a/linden/indra/newview/llfloatertools.cpp
+++ b/linden/indra/newview/llfloatertools.cpp
@@ -179,7 +179,27 @@ void* LLFloaterTools::createPanelLandInfo(void* data)
179 return floater->mPanelLandInfo; 179 return floater->mPanelLandInfo;
180} 180}
181 181
182void LLFloaterTools::toolsPrecision() 182void LLFloaterTools::updateToolsSizeLimits()
183{
184 if (gSavedSettings.getBOOL("DisableMaxBuildConstraints"))
185 {
186 getChild<LLSpinCtrl>("Scale X")->setMaxValue(F32_MAX);
187 getChild<LLSpinCtrl>("Scale Y")->setMaxValue(F32_MAX);
188 getChild<LLSpinCtrl>("Scale Z")->setMaxValue(F32_MAX);
189 }
190 else
191 {
192 getChild<LLSpinCtrl>("Scale X")->setMaxValue(gHippoLimits->getMaxPrimScale());
193 getChild<LLSpinCtrl>("Scale Y")->setMaxValue(gHippoLimits->getMaxPrimScale());
194 getChild<LLSpinCtrl>("Scale Z")->setMaxValue(gHippoLimits->getMaxPrimScale());
195
196 getChild<LLSpinCtrl>("Scale X")->setMinValue(gHippoLimits->getMinPrimScale());
197 getChild<LLSpinCtrl>("Scale Y")->setMinValue(gHippoLimits->getMinPrimScale());
198 getChild<LLSpinCtrl>("Scale Z")->setMinValue(gHippoLimits->getMinPrimScale());
199 }
200}
201
202void LLFloaterTools::updateToolsPrecision()
183{ 203{
184 U32 decimals = gSavedSettings.getU32("DecimalsForTools"); 204 U32 decimals = gSavedSettings.getU32("DecimalsForTools");
185 if (decimals != mPrecision) 205 if (decimals != mPrecision)
@@ -268,15 +288,11 @@ BOOL LLFloaterTools::postBuild()
268 mBtnUnlink = getChild<LLButton>("unlink_btn"); 288 mBtnUnlink = getChild<LLButton>("unlink_btn");
269 childSetAction("unlink_btn",onClickUnlink, this); 289 childSetAction("unlink_btn",onClickUnlink, this);
270 290
271 getChild<LLSpinCtrl>("Scale X")->setMaxValue(gHippoLimits->getMaxPrimScale()); 291 // Set the default size limits for spinners -- MC
272 getChild<LLSpinCtrl>("Scale Y")->setMaxValue(gHippoLimits->getMaxPrimScale()); 292 updateToolsSizeLimits();
273 getChild<LLSpinCtrl>("Scale Z")->setMaxValue(gHippoLimits->getMaxPrimScale());
274
275 getChild<LLSpinCtrl>("Scale X")->setMinValue(gHippoLimits->getMinPrimScale());
276 getChild<LLSpinCtrl>("Scale Y")->setMinValue(gHippoLimits->getMinPrimScale());
277 getChild<LLSpinCtrl>("Scale Z")->setMinValue(gHippoLimits->getMinPrimScale());
278 293
279 toolsPrecision(); 294 // Set the default decimal precision for spinners -- MC
295 updateToolsPrecision();
280 296
281 // 297 //
282 // Create Buttons 298 // Create Buttons
@@ -517,7 +533,7 @@ void LLFloaterTools::refresh()
517 LLResMgr::getInstance()->getIntegerString(prim_count_string, LLSelectMgr::getInstance()->getSelection()->getObjectCount()); 533 LLResMgr::getInstance()->getIntegerString(prim_count_string, LLSelectMgr::getInstance()->getSelection()->getObjectCount());
518 childSetTextArg("prim_count", "[COUNT]", prim_count_string); 534 childSetTextArg("prim_count", "[COUNT]", prim_count_string);
519 535
520 toolsPrecision(); 536 updateToolsPrecision();
521 537
522 // Refresh child tabs 538 // Refresh child tabs
523 mPanelPermissions->refresh(); 539 mPanelPermissions->refresh();
diff --git a/linden/indra/newview/llfloatertools.h b/linden/indra/newview/llfloatertools.h
index ba09bc8..ad5be6c 100644
--- a/linden/indra/newview/llfloatertools.h
+++ b/linden/indra/newview/llfloatertools.h
@@ -79,7 +79,8 @@ public:
79 // button highlights, etc. 79 // button highlights, etc.
80 void updatePopup(LLCoordGL center, MASK mask); 80 void updatePopup(LLCoordGL center, MASK mask);
81 81
82 void toolsPrecision(); 82 void updateToolsSizeLimits();
83 void updateToolsPrecision();
83 84
84 // When the floater is going away, reset any options that need to be 85 // When the floater is going away, reset any options that need to be
85 // cleared. 86 // cleared.
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 8ae37f3..ee2f2bc 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -10711,12 +10711,10 @@ class LLAvatarReportAbuse : public view_listener_t
10711}; 10711};
10712 10712
10713 10713
10714
10715//////////////////////////// 10714////////////////////////////
10716// ALLOW MULTIPLE VIEWERS // 10715// ALLOW MULTIPLE VIEWERS //
10717//////////////////////////// 10716////////////////////////////
10718 10717
10719
10720class LLAdvancedToggleMultipleViewers : public view_listener_t 10718class LLAdvancedToggleMultipleViewers : public view_listener_t
10721{ 10719{
10722 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 10720 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -10730,7 +10728,6 @@ class LLAdvancedToggleMultipleViewers : public view_listener_t
10730 } 10728 }
10731}; 10729};
10732 10730
10733
10734class LLAdvancedCheckMultipleViewers : public view_listener_t 10731class LLAdvancedCheckMultipleViewers : public view_listener_t
10735{ 10732{
10736 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 10733 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
@@ -10743,6 +10740,33 @@ class LLAdvancedCheckMultipleViewers : public view_listener_t
10743}; 10740};
10744 10741
10745 10742
10743///////////////////////////////////
10744// DISABLE MAX BUILD CONSTRAINTS //
10745///////////////////////////////////
10746
10747class LLAdvancedToggleMaxBuildConstraints : public view_listener_t
10748{
10749 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
10750 {
10751 BOOL cur_val = gSavedSettings.getBOOL("DisableMaxBuildConstraints");
10752 gSavedSettings.setBOOL("DisableMaxBuildConstraints", !cur_val );
10753 gFloaterTools->updateToolsSizeLimits();
10754 return true;
10755 }
10756};
10757
10758class LLAdvancedCheckMaxBuildConstraints : public view_listener_t
10759{
10760 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
10761 {
10762 bool new_value = gSavedSettings.getBOOL("DisableMaxBuildConstraints");
10763 std::string control_name = userdata["control"].asString();
10764 gMenuHolder->findControl(control_name)->setValue(new_value);
10765 return true;
10766 }
10767};
10768
10769
10746 10770
10747/////////////// 10771///////////////
10748// RLVa Main // 10772// RLVa Main //
@@ -11195,6 +11219,8 @@ void initialize_menus()
11195 addMenu(new LLAdvancedLeaveAdminStatus(), "Advanced.LeaveAdminStatus"); 11219 addMenu(new LLAdvancedLeaveAdminStatus(), "Advanced.LeaveAdminStatus");
11196 addMenu(new LLAdvancedToggleMultipleViewers(), "Advanced.ToggleMultipleViewers"); 11220 addMenu(new LLAdvancedToggleMultipleViewers(), "Advanced.ToggleMultipleViewers");
11197 addMenu(new LLAdvancedCheckMultipleViewers(), "Advanced.CheckMultipleViewers"); 11221 addMenu(new LLAdvancedCheckMultipleViewers(), "Advanced.CheckMultipleViewers");
11222 addMenu(new LLAdvancedToggleMaxBuildConstraints(), "Advanced.ToggleMaxBuildConstraints");
11223 addMenu(new LLAdvancedCheckMaxBuildConstraints(), "Advanced.CheckMaxBuildConstraints");
11198 11224
11199 // RLVa 11225 // RLVa
11200 addMenu(new RLVaMainToggle(), "RLVa.Main.Toggle"); 11226 addMenu(new RLVaMainToggle(), "RLVa.Main.Toggle");
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
index 347aa98..0293250 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
@@ -2090,6 +2090,13 @@
2090 userdata="LimitSelectDistance" /> 2090 userdata="LimitSelectDistance" />
2091 <on_check control="LimitSelectDistance" /> 2091 <on_check control="LimitSelectDistance" />
2092 </menu_item_check> 2092 </menu_item_check>
2093 <menu_item_check name="Disable Max Build Constraints"
2094 label="Disable Max Build Constraints">
2095 <on_click function="Advanced.ToggleMaxBuildConstraints"
2096 userdata="" />
2097 <on_check function="Advanced.CheckMaxBuildConstraints"
2098 userdata="" />
2099 </menu_item_check>
2093 <menu_item_check name="Mouse Smoothing" 2100 <menu_item_check name="Mouse Smoothing"
2094 label="Mouse Smoothing"> 2101 label="Mouse Smoothing">
2095 <on_click function="ToggleControl" 2102 <on_click function="ToggleControl"