diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llspatialpartition.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/lltoolcomp.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/lltoolselect.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.h | 5 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 9 | 
8 files changed, 47 insertions, 7 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index acca415b60..0cd63d9d5f 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -11520,6 +11520,17 @@        <key>Value</key>        <integer>1</integer>      </map> +  <key>SelectReflectionProbes</key> +    <map> +      <key>Comment</key> +      <string>Select reflection probes</string> +      <key>Persist</key> +      <integer>0</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>0</integer> +    </map>      <key>SelectOwnedOnly</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp index 32c891dbb6..79711794db 100644 --- a/indra/newview/llspatialpartition.cpp +++ b/indra/newview/llspatialpartition.cpp @@ -3624,7 +3624,9 @@ public:  					}  				} -				if (!skip_check && vobj->lineSegmentIntersect(mStart, mEnd, -1, mPickTransparent, mPickRigged, mPickUnselectable, mFaceHit, &intersection, mTexCoord, mNormal, mTangent)) +				if (!skip_check && vobj->lineSegmentIntersect(mStart, mEnd, -1,  +                    (mPickReflectionProbe && vobj->isReflectionProbe()) ? TRUE : mPickTransparent, // always pick transparent when picking selection probe +                    mPickRigged, mPickUnselectable, mFaceHit, &intersection, mTexCoord, mNormal, mTangent))  				{  					mEnd = intersection;  // shorten ray so we only find CLOSER hits  					if (mIntersection) diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp index b8357b3454..aaf2bacc7b 100644 --- a/indra/newview/lltoolcomp.cpp +++ b/indra/newview/lltoolcomp.cpp @@ -268,7 +268,8 @@ BOOL LLToolCompTranslate::handleHover(S32 x, S32 y, MASK mask)  BOOL LLToolCompTranslate::handleMouseDown(S32 x, S32 y, MASK mask)  {  	mMouseDown = TRUE; -	gViewerWindow->pickAsync(x, y, mask, pickCallback, /*BOOL pick_transparent*/ FALSE, LLFloaterReg::instanceVisible("build")); +    gViewerWindow->pickAsync(x, y, mask, pickCallback, /*BOOL pick_transparent*/ FALSE, LLFloaterReg::instanceVisible("build"), FALSE, +        gSavedSettings.getBOOL("SelectReflectionProbes"));;  	return TRUE;  } diff --git a/indra/newview/lltoolselect.cpp b/indra/newview/lltoolselect.cpp index c6f3905ddc..f7455c6cb8 100644 --- a/indra/newview/lltoolselect.cpp +++ b/indra/newview/lltoolselect.cpp @@ -66,7 +66,9 @@ BOOL LLToolSelect::handleMouseDown(S32 x, S32 y, MASK mask)  	// do immediate pick query      BOOL pick_rigged = false; //gSavedSettings.getBOOL("AnimatedObjectsAllowLeftClick");      BOOL pick_transparent = gSavedSettings.getBOOL("SelectInvisibleObjects"); -	mPick = gViewerWindow->pickImmediate(x, y, pick_transparent, pick_rigged); +    BOOL pick_reflection_probe = gSavedSettings.getBOOL("SelectReflectionProbes"); + +	mPick = gViewerWindow->pickImmediate(x, y, pick_transparent, pick_rigged, FALSE, TRUE, pick_reflection_probe);  	// Pass mousedown to agent  	LLTool::handleMouseDown(x, y, mask); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index ae04d536f1..f84c6fbc3e 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -8128,6 +8128,18 @@ class LLToolsSelectInvisibleObjects : public view_listener_t      }  }; +class LLToolsSelectReflectionProbes: public view_listener_t +{ +    bool handleEvent(const LLSD& userdata) +    { +        BOOL cur_val = gSavedSettings.getBOOL("SelectReflectionProbes"); + +        gSavedSettings.setBOOL("SelectReflectionProbes", !cur_val); + +        return true; +    } +}; +  class LLToolsSelectBySurrounding : public view_listener_t  {  	bool handleEvent(const LLSD& userdata) @@ -9365,6 +9377,7 @@ void initialize_menus()  	view_listener_t::addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects");  	view_listener_t::addMenu(new LLToolsSelectOnlyMovableObjects(), "Tools.SelectOnlyMovableObjects");      view_listener_t::addMenu(new LLToolsSelectInvisibleObjects(), "Tools.SelectInvisibleObjects"); +    view_listener_t::addMenu(new LLToolsSelectReflectionProbes(), "Tools.SelectReflectionProbes");  	view_listener_t::addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding");  	view_listener_t::addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection");  	view_listener_t::addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius"); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 71fe893091..ba2b6e1c7c 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4219,7 +4219,8 @@ void LLViewerWindow::pickAsync( S32 x,  								void (*callback)(const LLPickInfo& info),  								BOOL pick_transparent,  								BOOL pick_rigged, -								BOOL pick_unselectable) +								BOOL pick_unselectable, +                                BOOL pick_reflection_probes)  {  	// "Show Debug Alpha" means no object actually transparent      BOOL in_build_mode = LLFloaterReg::instanceVisible("build"); @@ -4229,7 +4230,7 @@ void LLViewerWindow::pickAsync( S32 x,          pick_transparent = TRUE;      } -	LLPickInfo pick_info(LLCoordGL(x, y_from_bot), mask, pick_transparent, pick_rigged, FALSE, TRUE, pick_unselectable, TRUE, callback); +	LLPickInfo pick_info(LLCoordGL(x, y_from_bot), mask, pick_transparent, pick_rigged, FALSE, pick_reflection_probes, pick_unselectable, TRUE, callback);  	schedulePick(pick_info);  } diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index 943cdf2fc4..6e8a5b2f4e 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -408,8 +408,9 @@ public:  								void (*callback)(const LLPickInfo& pick_info),  								BOOL pick_transparent = FALSE,  								BOOL pick_rigged = FALSE, -								BOOL pick_unselectable = FALSE); -	LLPickInfo		pickImmediate(S32 x, S32 y, BOOL pick_transparent, BOOL pick_rigged = FALSE, BOOL pick_particle = FALSE, BOOL pick_unselectable = TRUE, BOOL pick_reflection_probe = TRUE); +								BOOL pick_unselectable = FALSE, +                                BOOL pick_reflection_probes = FALSE); +	LLPickInfo		pickImmediate(S32 x, S32 y, BOOL pick_transparent, BOOL pick_rigged = FALSE, BOOL pick_particle = FALSE, BOOL pick_unselectable = TRUE, BOOL pick_reflection_probe = FALSE);  	LLHUDIcon* cursorIntersectIcon(S32 mouse_x, S32 mouse_y, F32 depth,  										   LLVector4a* intersection); diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 7a29d68a4c..bb19ae2b98 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1446,6 +1446,15 @@ function="World.EnvPreset"                       function="Tools.SelectInvisibleObjects"                       parameter="invisible" />              </menu_item_check> +            <menu_item_check +                 label="Select Reflection Probes" +                 name="Select Reflection Probes"> +                    <menu_item_check.on_check +                     control="SelectReflectionProbes" /> +                    <menu_item_check.on_click +                     function="Tools.SelectReflectionProbes" +                     parameter="reflection_probes" /> +            </menu_item_check>                  <menu_item_check                   label="Select By Surrounding"                   name="Select By Surrounding"> | 
