summaryrefslogtreecommitdiff
path: root/indra/newview/llinspectobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinspectobject.cpp')
-rw-r--r--indra/newview/llinspectobject.cpp948
1 files changed, 474 insertions, 474 deletions
diff --git a/indra/newview/llinspectobject.cpp b/indra/newview/llinspectobject.cpp
index 491c90c571..eccc359a3a 100644
--- a/indra/newview/llinspectobject.cpp
+++ b/indra/newview/llinspectobject.cpp
@@ -1,24 +1,24 @@
-/**
+/**
* @file llinspectobject.cpp
*
* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -34,20 +34,20 @@
#include "llmediaentry.h"
#include "llselectmgr.h"
#include "llslurl.h"
-#include "llviewermenu.h" // handle_object_touch(), handle_buy()
+#include "llviewermenu.h" // handle_object_touch(), handle_buy()
#include "llviewermedia.h"
#include "llviewermediafocus.h"
-#include "llviewerobjectlist.h" // to select the requested object
+#include "llviewerobjectlist.h" // to select the requested object
#include "llvoavatarself.h"
// Linden libraries
-#include "llbutton.h" // setLabel(), not virtual!
+#include "llbutton.h" // setLabel(), not virtual!
#include "llclickaction.h"
#include "llfloaterreg.h"
#include "llmenubutton.h"
-#include "llresmgr.h" // getMonetaryString
+#include "llresmgr.h" // getMonetaryString
#include "llsafehandle.h"
-#include "lltextbox.h" // for description truncation
+#include "lltextbox.h" // for description truncation
#include "lltoggleablemenu.h"
#include "lltrans.h"
#include "lluictrl.h"
@@ -62,81 +62,81 @@ class LLViewerObject;
// in the ambient inspector widget for objects in the 3D world.
class LLInspectObject : public LLInspect
{
- friend class LLFloaterReg;
-
+ friend class LLFloaterReg;
+
public:
- // object_id - Root object ID for which to show information
- // Inspector will be positioned relative to current mouse position
- LLInspectObject(const LLSD& object_id);
- virtual ~LLInspectObject();
-
- /*virtual*/ BOOL postBuild(void);
-
- // Because floater is single instance, need to re-parse data on each spawn
- // (for example, inspector about same avatar but in different position)
- /*virtual*/ void onOpen(const LLSD& avatar_id);
-
- // Release the selection and do other cleanup
- /*virtual*/ void onClose(bool app_quitting);
-
- // override the inspector mouse leave so timer is only paused if
- // gear menu is not open
- /* virtual */ void onMouseLeave(S32 x, S32 y, MASK mask);
-
+ // object_id - Root object ID for which to show information
+ // Inspector will be positioned relative to current mouse position
+ LLInspectObject(const LLSD& object_id);
+ virtual ~LLInspectObject();
+
+ /*virtual*/ BOOL postBuild(void);
+
+ // Because floater is single instance, need to re-parse data on each spawn
+ // (for example, inspector about same avatar but in different position)
+ /*virtual*/ void onOpen(const LLSD& avatar_id);
+
+ // Release the selection and do other cleanup
+ /*virtual*/ void onClose(bool app_quitting);
+
+ // override the inspector mouse leave so timer is only paused if
+ // gear menu is not open
+ /* virtual */ void onMouseLeave(S32 x, S32 y, MASK mask);
+
private:
- // Refresh displayed data with information from selection manager
- void update();
-
- void hideButtons();
- void updateButtons(LLSelectNode* nodep);
- void updateSitLabel(LLSelectNode* nodep);
- void updateTouchLabel(LLSelectNode* nodep);
-
- void updateName(LLSelectNode* nodep);
- void updateDescription(LLSelectNode* nodep);
- void updatePrice(LLSelectNode* nodep);
- void updateCreator(LLSelectNode* nodep);
-
- void updateMediaCurrentURL();
- void updateSecureBrowsing();
-
- void onClickBuy();
- void onClickPay();
- void onClickTakeFreeCopy();
- void onClickTouch();
- void onClickSit();
- void onClickOpen();
- void onClickMoreInfo();
- void onClickZoomIn();
-
+ // Refresh displayed data with information from selection manager
+ void update();
+
+ void hideButtons();
+ void updateButtons(LLSelectNode* nodep);
+ void updateSitLabel(LLSelectNode* nodep);
+ void updateTouchLabel(LLSelectNode* nodep);
+
+ void updateName(LLSelectNode* nodep);
+ void updateDescription(LLSelectNode* nodep);
+ void updatePrice(LLSelectNode* nodep);
+ void updateCreator(LLSelectNode* nodep);
+
+ void updateMediaCurrentURL();
+ void updateSecureBrowsing();
+
+ void onClickBuy();
+ void onClickPay();
+ void onClickTakeFreeCopy();
+ void onClickTouch();
+ void onClickSit();
+ void onClickOpen();
+ void onClickMoreInfo();
+ void onClickZoomIn();
+
private:
- LLUUID mObjectID;
- LLUUID mPreviousObjectID;
- S32 mObjectFace;
- viewer_media_t mMediaImpl;
- LLMediaEntry* mMediaEntry;
- LLSafeHandle<LLObjectSelection> mObjectSelection;
+ LLUUID mObjectID;
+ LLUUID mPreviousObjectID;
+ S32 mObjectFace;
+ viewer_media_t mMediaImpl;
+ LLMediaEntry* mMediaEntry;
+ LLSafeHandle<LLObjectSelection> mObjectSelection;
boost::signals2::connection mSelectionUpdateSlot;
};
LLInspectObject::LLInspectObject(const LLSD& sd)
-: LLInspect( LLSD() ), // single_instance, doesn't really need key
- mObjectID(NULL), // set in onOpen()
- mObjectFace(0),
- mObjectSelection(NULL),
- mMediaImpl(NULL),
- mMediaEntry(NULL)
+: LLInspect( LLSD() ), // single_instance, doesn't really need key
+ mObjectID(NULL), // set in onOpen()
+ mObjectFace(0),
+ mObjectSelection(NULL),
+ mMediaImpl(NULL),
+ mMediaEntry(NULL)
{
- // can't make the properties request until the widgets are constructed
- // as it might return immediately, so do it in postBuild.
- mCommitCallbackRegistrar.add("InspectObject.Buy", boost::bind(&LLInspectObject::onClickBuy, this));
- mCommitCallbackRegistrar.add("InspectObject.Pay", boost::bind(&LLInspectObject::onClickPay, this));
- mCommitCallbackRegistrar.add("InspectObject.TakeFreeCopy", boost::bind(&LLInspectObject::onClickTakeFreeCopy, this));
- mCommitCallbackRegistrar.add("InspectObject.Touch", boost::bind(&LLInspectObject::onClickTouch, this));
- mCommitCallbackRegistrar.add("InspectObject.Sit", boost::bind(&LLInspectObject::onClickSit, this));
- mCommitCallbackRegistrar.add("InspectObject.Open", boost::bind(&LLInspectObject::onClickOpen, this));
- mCommitCallbackRegistrar.add("InspectObject.MoreInfo", boost::bind(&LLInspectObject::onClickMoreInfo, this));
- mCommitCallbackRegistrar.add("InspectObject.ZoomIn", boost::bind(&LLInspectObject::onClickZoomIn, this));
+ // can't make the properties request until the widgets are constructed
+ // as it might return immediately, so do it in postBuild.
+ mCommitCallbackRegistrar.add("InspectObject.Buy", boost::bind(&LLInspectObject::onClickBuy, this));
+ mCommitCallbackRegistrar.add("InspectObject.Pay", boost::bind(&LLInspectObject::onClickPay, this));
+ mCommitCallbackRegistrar.add("InspectObject.TakeFreeCopy", boost::bind(&LLInspectObject::onClickTakeFreeCopy, this));
+ mCommitCallbackRegistrar.add("InspectObject.Touch", boost::bind(&LLInspectObject::onClickTouch, this));
+ mCommitCallbackRegistrar.add("InspectObject.Sit", boost::bind(&LLInspectObject::onClickSit, this));
+ mCommitCallbackRegistrar.add("InspectObject.Open", boost::bind(&LLInspectObject::onClickOpen, this));
+ mCommitCallbackRegistrar.add("InspectObject.MoreInfo", boost::bind(&LLInspectObject::onClickMoreInfo, this));
+ mCommitCallbackRegistrar.add("InspectObject.ZoomIn", boost::bind(&LLInspectObject::onClickZoomIn, this));
}
@@ -151,34 +151,34 @@ LLInspectObject::~LLInspectObject()
/*virtual*/
BOOL LLInspectObject::postBuild(void)
{
- // The XML file has sample data in it. Clear that out so we don't
- // flicker when data arrives off network.
- getChild<LLUICtrl>("object_name")->setValue("");
- getChild<LLUICtrl>("object_creator")->setValue("");
- getChild<LLUICtrl>("object_description")->setValue("");
- getChild<LLUICtrl>("object_media_url")->setValue("");
- // Set buttons invisible until we know what this object can do
- hideButtons();
-
- // Hide floater when name links clicked
- LLTextBox* textbox = getChild<LLTextBox>("object_creator");
- textbox->setURLClickedCallback(boost::bind(&LLInspectObject::closeFloater, this, false) );
-
- // Hook up functionality
- getChild<LLUICtrl>("buy_btn")->setCommitCallback(
- boost::bind(&LLInspectObject::onClickBuy, this));
- getChild<LLUICtrl>("pay_btn")->setCommitCallback(
- boost::bind(&LLInspectObject::onClickPay, this));
- getChild<LLUICtrl>("take_free_copy_btn")->setCommitCallback(
- boost::bind(&LLInspectObject::onClickTakeFreeCopy, this));
- getChild<LLUICtrl>("touch_btn")->setCommitCallback(
- boost::bind(&LLInspectObject::onClickTouch, this));
- getChild<LLUICtrl>("sit_btn")->setCommitCallback(
- boost::bind(&LLInspectObject::onClickSit, this));
- getChild<LLUICtrl>("open_btn")->setCommitCallback(
- boost::bind(&LLInspectObject::onClickOpen, this));
- getChild<LLUICtrl>("more_info_btn")->setCommitCallback(
- boost::bind(&LLInspectObject::onClickMoreInfo, this));
+ // The XML file has sample data in it. Clear that out so we don't
+ // flicker when data arrives off network.
+ getChild<LLUICtrl>("object_name")->setValue("");
+ getChild<LLUICtrl>("object_creator")->setValue("");
+ getChild<LLUICtrl>("object_description")->setValue("");
+ getChild<LLUICtrl>("object_media_url")->setValue("");
+ // Set buttons invisible until we know what this object can do
+ hideButtons();
+
+ // Hide floater when name links clicked
+ LLTextBox* textbox = getChild<LLTextBox>("object_creator");
+ textbox->setURLClickedCallback(boost::bind(&LLInspectObject::closeFloater, this, false) );
+
+ // Hook up functionality
+ getChild<LLUICtrl>("buy_btn")->setCommitCallback(
+ boost::bind(&LLInspectObject::onClickBuy, this));
+ getChild<LLUICtrl>("pay_btn")->setCommitCallback(
+ boost::bind(&LLInspectObject::onClickPay, this));
+ getChild<LLUICtrl>("take_free_copy_btn")->setCommitCallback(
+ boost::bind(&LLInspectObject::onClickTakeFreeCopy, this));
+ getChild<LLUICtrl>("touch_btn")->setCommitCallback(
+ boost::bind(&LLInspectObject::onClickTouch, this));
+ getChild<LLUICtrl>("sit_btn")->setCommitCallback(
+ boost::bind(&LLInspectObject::onClickSit, this));
+ getChild<LLUICtrl>("open_btn")->setCommitCallback(
+ boost::bind(&LLInspectObject::onClickOpen, this));
+ getChild<LLUICtrl>("more_info_btn")->setCommitCallback(
+ boost::bind(&LLInspectObject::onClickMoreInfo, this));
if (!mSelectionUpdateSlot.connected())
{
@@ -187,7 +187,7 @@ BOOL LLInspectObject::postBuild(void)
boost::bind(&LLInspectObject::update, this));
}
- return TRUE;
+ return TRUE;
}
// Multiple calls to showInstance("inspect_avatar", foo) will provide different
@@ -195,124 +195,124 @@ BOOL LLInspectObject::postBuild(void)
//virtual
void LLInspectObject::onOpen(const LLSD& data)
{
- // Start animation
- LLInspect::onOpen(data);
-
- // Extract appropriate avatar id
- mObjectID = data["object_id"];
-
- if(data.has("object_face"))
- {
- mObjectFace = data["object_face"];
- }
-
- LLInspect::repositionInspector(data);
-
- // Promote hovered object to a complete selection, which will also force
- // a request for selected object data off the network
- LLViewerObject* obj = gObjectList.findObject( mObjectID );
- if (obj)
- {
- // Media focus and this code fight over the select manager.
- // Make sure any media is unfocused before changing the selection here.
- LLViewerMediaFocus::getInstance()->clearFocus();
-
- LLSelectMgr::instance().deselectAll();
- mObjectSelection = LLSelectMgr::instance().selectObjectAndFamily(obj,FALSE,TRUE);
-
- // Mark this as a transient selection
- struct SetTransient : public LLSelectedNodeFunctor
- {
- bool apply(LLSelectNode* node)
- {
- node->setTransient(TRUE);
- return true;
- }
- } functor;
- mObjectSelection->applyToNodes(&functor);
-
- // Does this face have media?
- const LLTextureEntry* tep = obj->getTE(mObjectFace);
- if (!tep)
- return;
-
- mMediaEntry = tep->hasMedia() ? tep->getMediaData() : NULL;
- if(!mMediaEntry)
- return;
-
- mMediaImpl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mMediaEntry->getMediaID());
- }
+ // Start animation
+ LLInspect::onOpen(data);
+
+ // Extract appropriate avatar id
+ mObjectID = data["object_id"];
+
+ if(data.has("object_face"))
+ {
+ mObjectFace = data["object_face"];
+ }
+
+ LLInspect::repositionInspector(data);
+
+ // Promote hovered object to a complete selection, which will also force
+ // a request for selected object data off the network
+ LLViewerObject* obj = gObjectList.findObject( mObjectID );
+ if (obj)
+ {
+ // Media focus and this code fight over the select manager.
+ // Make sure any media is unfocused before changing the selection here.
+ LLViewerMediaFocus::getInstance()->clearFocus();
+
+ LLSelectMgr::instance().deselectAll();
+ mObjectSelection = LLSelectMgr::instance().selectObjectAndFamily(obj,FALSE,TRUE);
+
+ // Mark this as a transient selection
+ struct SetTransient : public LLSelectedNodeFunctor
+ {
+ bool apply(LLSelectNode* node)
+ {
+ node->setTransient(TRUE);
+ return true;
+ }
+ } functor;
+ mObjectSelection->applyToNodes(&functor);
+
+ // Does this face have media?
+ const LLTextureEntry* tep = obj->getTE(mObjectFace);
+ if (!tep)
+ return;
+
+ mMediaEntry = tep->hasMedia() ? tep->getMediaData() : NULL;
+ if(!mMediaEntry)
+ return;
+
+ mMediaImpl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mMediaEntry->getMediaID());
+ }
}
// virtual
void LLInspectObject::onClose(bool app_quitting)
{
- // Release selection to deselect
- mObjectSelection = NULL;
- mPreviousObjectID = mObjectID;
+ // Release selection to deselect
+ mObjectSelection = NULL;
+ mPreviousObjectID = mObjectID;
- getChild<LLMenuButton>("gear_btn")->hideMenu();
+ getChild<LLMenuButton>("gear_btn")->hideMenu();
}
void LLInspectObject::update()
{
- // Performance optimization, because we listen to updates from select mgr
- // but we're never destroyed.
- if (!getVisible()) return;
-
- LLObjectSelection* selection = LLSelectMgr::getInstance()->getSelection();
- if (!selection) return;
-
- LLSelectNode* nodep = selection->getFirstRootNode();
- if (!nodep) return;
-
- // If we don't have fresh object info yet and it's the object we inspected last time,
- // keep showing the previously retrieved data until we get the update.
- if (!nodep->mValid && nodep->getObject()->getID() == mPreviousObjectID)
- {
- return;
- }
-
- updateButtons(nodep);
- updateName(nodep);
- updateDescription(nodep);
- updateCreator(nodep);
- updatePrice(nodep);
-
- LLViewerObject* obj = nodep->getObject();
- if(!obj)
- return;
-
- if ( mObjectFace < 0
- || mObjectFace >= obj->getNumTEs() )
- {
- return;
- }
-
- // Does this face have media?
- const LLTextureEntry* tep = obj->getTE(mObjectFace);
- if (!tep)
- return;
-
- mMediaEntry = tep->hasMedia() ? tep->getMediaData() : NULL;
- if(!mMediaEntry)
- return;
-
- mMediaImpl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mMediaEntry->getMediaID());
-
- updateMediaCurrentURL();
- updateSecureBrowsing();
+ // Performance optimization, because we listen to updates from select mgr
+ // but we're never destroyed.
+ if (!getVisible()) return;
+
+ LLObjectSelection* selection = LLSelectMgr::getInstance()->getSelection();
+ if (!selection) return;
+
+ LLSelectNode* nodep = selection->getFirstRootNode();
+ if (!nodep) return;
+
+ // If we don't have fresh object info yet and it's the object we inspected last time,
+ // keep showing the previously retrieved data until we get the update.
+ if (!nodep->mValid && nodep->getObject()->getID() == mPreviousObjectID)
+ {
+ return;
+ }
+
+ updateButtons(nodep);
+ updateName(nodep);
+ updateDescription(nodep);
+ updateCreator(nodep);
+ updatePrice(nodep);
+
+ LLViewerObject* obj = nodep->getObject();
+ if(!obj)
+ return;
+
+ if ( mObjectFace < 0
+ || mObjectFace >= obj->getNumTEs() )
+ {
+ return;
+ }
+
+ // Does this face have media?
+ const LLTextureEntry* tep = obj->getTE(mObjectFace);
+ if (!tep)
+ return;
+
+ mMediaEntry = tep->hasMedia() ? tep->getMediaData() : NULL;
+ if(!mMediaEntry)
+ return;
+
+ mMediaImpl = LLViewerMedia::getInstance()->getMediaImplFromTextureID(mMediaEntry->getMediaID());
+
+ updateMediaCurrentURL();
+ updateSecureBrowsing();
}
void LLInspectObject::hideButtons()
{
- getChild<LLUICtrl>("buy_btn")->setVisible(false);
- getChild<LLUICtrl>("pay_btn")->setVisible(false);
- getChild<LLUICtrl>("take_free_copy_btn")->setVisible(false);
- getChild<LLUICtrl>("touch_btn")->setVisible(false);
- getChild<LLUICtrl>("sit_btn")->setVisible(false);
- getChild<LLUICtrl>("open_btn")->setVisible(false);
+ getChild<LLUICtrl>("buy_btn")->setVisible(false);
+ getChild<LLUICtrl>("pay_btn")->setVisible(false);
+ getChild<LLUICtrl>("take_free_copy_btn")->setVisible(false);
+ getChild<LLUICtrl>("touch_btn")->setVisible(false);
+ getChild<LLUICtrl>("sit_btn")->setVisible(false);
+ getChild<LLUICtrl>("open_btn")->setVisible(false);
}
// *TODO: Extract this method from lltoolpie.cpp and put somewhere shared
@@ -322,314 +322,314 @@ extern U8 final_click_action(LLViewerObject*);
// that operation as the left-most button in the inspector.
void LLInspectObject::updateButtons(LLSelectNode* nodep)
{
- // We'll start with everyone hidden and show the ones we need
- hideButtons();
-
- LLViewerObject* object = nodep->getObject();
- LLViewerObject *parent = (LLViewerObject*)object->getParent();
- bool for_copy = anyone_copy_selection(nodep);
- bool for_sale = enable_buy_object();
- S32 price = nodep->mSaleInfo.getSalePrice();
- U8 click_action = final_click_action(object);
-
- if (for_copy
- || (for_sale && price == 0))
- {
- // Free copies have priority over other operations
- getChild<LLUICtrl>("take_free_copy_btn")->setVisible(true);
- }
- else if (for_sale)
- {
- getChild<LLUICtrl>("buy_btn")->setVisible(true);
- }
- else if ( enable_pay_object() )
- {
- getChild<LLUICtrl>("pay_btn")->setVisible(true);
- }
- else if (click_action == CLICK_ACTION_SIT)
- {
- // Click-action sit must come before "open" because many objects on
- // which you can sit have scripts, and hence can be opened
- getChild<LLUICtrl>("sit_btn")->setVisible(true);
- updateSitLabel(nodep);
- }
- else if (object->flagHandleTouch()
- || (parent && parent->flagHandleTouch()))
- {
- getChild<LLUICtrl>("touch_btn")->setVisible(true);
- updateTouchLabel(nodep);
- }
- else if ( enable_object_open() )
- {
- // Open is last because anything with a script in it can be opened
- getChild<LLUICtrl>("open_btn")->setVisible(true);
- }
- else
- {
- // By default, we can sit on anything
- getChild<LLUICtrl>("sit_btn")->setVisible(true);
- updateSitLabel(nodep);
- }
-
- // No flash
- focusFirstItem(FALSE, FALSE);
+ // We'll start with everyone hidden and show the ones we need
+ hideButtons();
+
+ LLViewerObject* object = nodep->getObject();
+ LLViewerObject *parent = (LLViewerObject*)object->getParent();
+ bool for_copy = anyone_copy_selection(nodep);
+ bool for_sale = enable_buy_object();
+ S32 price = nodep->mSaleInfo.getSalePrice();
+ U8 click_action = final_click_action(object);
+
+ if (for_copy
+ || (for_sale && price == 0))
+ {
+ // Free copies have priority over other operations
+ getChild<LLUICtrl>("take_free_copy_btn")->setVisible(true);
+ }
+ else if (for_sale)
+ {
+ getChild<LLUICtrl>("buy_btn")->setVisible(true);
+ }
+ else if ( enable_pay_object() )
+ {
+ getChild<LLUICtrl>("pay_btn")->setVisible(true);
+ }
+ else if (click_action == CLICK_ACTION_SIT)
+ {
+ // Click-action sit must come before "open" because many objects on
+ // which you can sit have scripts, and hence can be opened
+ getChild<LLUICtrl>("sit_btn")->setVisible(true);
+ updateSitLabel(nodep);
+ }
+ else if (object->flagHandleTouch()
+ || (parent && parent->flagHandleTouch()))
+ {
+ getChild<LLUICtrl>("touch_btn")->setVisible(true);
+ updateTouchLabel(nodep);
+ }
+ else if ( enable_object_open() )
+ {
+ // Open is last because anything with a script in it can be opened
+ getChild<LLUICtrl>("open_btn")->setVisible(true);
+ }
+ else
+ {
+ // By default, we can sit on anything
+ getChild<LLUICtrl>("sit_btn")->setVisible(true);
+ updateSitLabel(nodep);
+ }
+
+ // No flash
+ focusFirstItem(FALSE, FALSE);
}
void LLInspectObject::updateSitLabel(LLSelectNode* nodep)
{
- LLButton* sit_btn = getChild<LLButton>("sit_btn");
- if (!nodep->mSitName.empty())
- {
- sit_btn->setLabel( nodep->mSitName );
- }
- else
- {
- sit_btn->setLabel( getString("Sit") );
- }
+ LLButton* sit_btn = getChild<LLButton>("sit_btn");
+ if (!nodep->mSitName.empty())
+ {
+ sit_btn->setLabel( nodep->mSitName );
+ }
+ else
+ {
+ sit_btn->setLabel( getString("Sit") );
+ }
}
void LLInspectObject::updateTouchLabel(LLSelectNode* nodep)
{
- LLButton* sit_btn = getChild<LLButton>("touch_btn");
- if (!nodep->mTouchName.empty())
- {
- sit_btn->setLabel( nodep->mTouchName );
- }
- else
- {
- sit_btn->setLabel( getString("Touch") );
- }
+ LLButton* sit_btn = getChild<LLButton>("touch_btn");
+ if (!nodep->mTouchName.empty())
+ {
+ sit_btn->setLabel( nodep->mTouchName );
+ }
+ else
+ {
+ sit_btn->setLabel( getString("Touch") );
+ }
}
void LLInspectObject::updateName(LLSelectNode* nodep)
{
- std::string name;
- if (!nodep->mName.empty())
- {
- name = nodep->mName;
- }
- else
- {
- name = LLTrans::getString("TooltipNoName");
- }
- getChild<LLUICtrl>("object_name")->setValue(name);
+ std::string name;
+ if (!nodep->mName.empty())
+ {
+ name = nodep->mName;
+ }
+ else
+ {
+ name = LLTrans::getString("TooltipNoName");
+ }
+ getChild<LLUICtrl>("object_name")->setValue(name);
}
void LLInspectObject::updateDescription(LLSelectNode* nodep)
{
- const char* const DEFAULT_DESC = "(No Description)";
- std::string desc;
- if (!nodep->mDescription.empty()
- && nodep->mDescription != DEFAULT_DESC)
- {
- desc = nodep->mDescription;
- }
-
- LLTextBox* textbox = getChild<LLTextBox>("object_description");
- textbox->setValue(desc);
+ const char* const DEFAULT_DESC = "(No Description)";
+ std::string desc;
+ if (!nodep->mDescription.empty()
+ && nodep->mDescription != DEFAULT_DESC)
+ {
+ desc = nodep->mDescription;
+ }
+
+ LLTextBox* textbox = getChild<LLTextBox>("object_description");
+ textbox->setValue(desc);
}
void LLInspectObject::updateMediaCurrentURL()
-{
- if(!mMediaEntry)
- return;
- LLTextBox* textbox = getChild<LLTextBox>("object_media_url");
- std::string media_url = "";
- textbox->setValue(media_url);
- textbox->setToolTip(media_url);
- LLStringUtil::format_map_t args;
-
- if(mMediaImpl.notNull() && mMediaImpl->hasMedia())
- {
-
- LLPluginClassMedia* media_plugin = NULL;
- media_plugin = mMediaImpl->getMediaPlugin();
- if(media_plugin)
- {
- if(media_plugin->pluginSupportsMediaTime())
- {
- args["[CurrentURL]"] = mMediaImpl->getMediaURL();
- }
- else
- {
- args["[CurrentURL]"] = media_plugin->getLocation();
- }
- media_url = LLTrans::getString("CurrentURL", args);
-
- }
- }
- else if(mMediaEntry->getCurrentURL() != "")
- {
- args["[CurrentURL]"] = mMediaEntry->getCurrentURL();
- media_url = LLTrans::getString("CurrentURL", args);
- }
-
- textbox->setText(media_url);
- textbox->setToolTip(media_url);
+{
+ if(!mMediaEntry)
+ return;
+ LLTextBox* textbox = getChild<LLTextBox>("object_media_url");
+ std::string media_url = "";
+ textbox->setValue(media_url);
+ textbox->setToolTip(media_url);
+ LLStringUtil::format_map_t args;
+
+ if(mMediaImpl.notNull() && mMediaImpl->hasMedia())
+ {
+
+ LLPluginClassMedia* media_plugin = NULL;
+ media_plugin = mMediaImpl->getMediaPlugin();
+ if(media_plugin)
+ {
+ if(media_plugin->pluginSupportsMediaTime())
+ {
+ args["[CurrentURL]"] = mMediaImpl->getMediaURL();
+ }
+ else
+ {
+ args["[CurrentURL]"] = media_plugin->getLocation();
+ }
+ media_url = LLTrans::getString("CurrentURL", args);
+
+ }
+ }
+ else if(mMediaEntry->getCurrentURL() != "")
+ {
+ args["[CurrentURL]"] = mMediaEntry->getCurrentURL();
+ media_url = LLTrans::getString("CurrentURL", args);
+ }
+
+ textbox->setText(media_url);
+ textbox->setToolTip(media_url);
}
void LLInspectObject::updateCreator(LLSelectNode* nodep)
{
- // final information for display
- LLStringUtil::format_map_t args;
- std::string text;
-
- // Leave text blank until data loaded
- if (nodep->mValid)
- {
- // Utilize automatic translation of SLURL into name to display
- // a clickable link
- // Objects cannot be created by a group, so use agent URL format
- LLUUID creator_id = nodep->mPermissions->getCreator();
- std::string creator_url =
- LLSLURL("agent", creator_id, "about").getSLURLString();
- args["[CREATOR]"] = creator_url;
-
- // created by one user but owned by another
- std::string owner_url;
- LLUUID owner_id;
- bool group_owned = nodep->mPermissions->isGroupOwned();
- if (group_owned)
- {
- owner_id = nodep->mPermissions->getGroup();
- owner_url = LLSLURL("group", owner_id, "about").getSLURLString();
- }
- else
- {
- owner_id = nodep->mPermissions->getOwner();
- owner_url = LLSLURL("agent", owner_id, "about").getSLURLString();
- }
- args["[OWNER]"] = owner_url;
-
- if (creator_id == owner_id)
- {
- // common case, created and owned by one user
- text = getString("Creator", args);
- }
- else
- {
- text = getString("CreatorAndOwner", args);
- }
- }
- getChild<LLUICtrl>("object_creator")->setValue(text);
+ // final information for display
+ LLStringUtil::format_map_t args;
+ std::string text;
+
+ // Leave text blank until data loaded
+ if (nodep->mValid)
+ {
+ // Utilize automatic translation of SLURL into name to display
+ // a clickable link
+ // Objects cannot be created by a group, so use agent URL format
+ LLUUID creator_id = nodep->mPermissions->getCreator();
+ std::string creator_url =
+ LLSLURL("agent", creator_id, "about").getSLURLString();
+ args["[CREATOR]"] = creator_url;
+
+ // created by one user but owned by another
+ std::string owner_url;
+ LLUUID owner_id;
+ bool group_owned = nodep->mPermissions->isGroupOwned();
+ if (group_owned)
+ {
+ owner_id = nodep->mPermissions->getGroup();
+ owner_url = LLSLURL("group", owner_id, "about").getSLURLString();
+ }
+ else
+ {
+ owner_id = nodep->mPermissions->getOwner();
+ owner_url = LLSLURL("agent", owner_id, "about").getSLURLString();
+ }
+ args["[OWNER]"] = owner_url;
+
+ if (creator_id == owner_id)
+ {
+ // common case, created and owned by one user
+ text = getString("Creator", args);
+ }
+ else
+ {
+ text = getString("CreatorAndOwner", args);
+ }
+ }
+ getChild<LLUICtrl>("object_creator")->setValue(text);
}
void LLInspectObject::updatePrice(LLSelectNode* nodep)
{
- // *TODO: Only look these up once and use for both updateButtons and here
- bool for_copy = anyone_copy_selection(nodep);
- bool for_sale = enable_buy_object();
- S32 price = nodep->mSaleInfo.getSalePrice();
-
- bool show_price_icon = false;
- std::string line;
- if (for_copy
- || (for_sale && price == 0))
- {
- line = getString("PriceFree");
- show_price_icon = true;
- }
- else if (for_sale)
- {
- LLStringUtil::format_map_t args;
- args["[AMOUNT]"] = LLResMgr::getInstance()->getMonetaryString(price);
- line = getString("Price", args);
- show_price_icon = true;
- }
- getChild<LLUICtrl>("price_text")->setValue(line);
- getChild<LLUICtrl>("price_icon")->setVisible(show_price_icon);
+ // *TODO: Only look these up once and use for both updateButtons and here
+ bool for_copy = anyone_copy_selection(nodep);
+ bool for_sale = enable_buy_object();
+ S32 price = nodep->mSaleInfo.getSalePrice();
+
+ bool show_price_icon = false;
+ std::string line;
+ if (for_copy
+ || (for_sale && price == 0))
+ {
+ line = getString("PriceFree");
+ show_price_icon = true;
+ }
+ else if (for_sale)
+ {
+ LLStringUtil::format_map_t args;
+ args["[AMOUNT]"] = LLResMgr::getInstance()->getMonetaryString(price);
+ line = getString("Price", args);
+ show_price_icon = true;
+ }
+ getChild<LLUICtrl>("price_text")->setValue(line);
+ getChild<LLUICtrl>("price_icon")->setVisible(show_price_icon);
}
void LLInspectObject::updateSecureBrowsing()
{
- bool is_secure_browsing = false;
-
- if(mMediaImpl.notNull()
- && mMediaImpl->hasMedia())
- {
- LLPluginClassMedia* media_plugin = NULL;
- std::string current_url = "";
- media_plugin = mMediaImpl->getMediaPlugin();
- if(media_plugin)
- {
- if(media_plugin->pluginSupportsMediaTime())
- {
- current_url = mMediaImpl->getMediaURL();
- }
- else
- {
- current_url = media_plugin->getLocation();
- }
- }
-
- std::string prefix = std::string("https://");
- std::string test_prefix = current_url.substr(0, prefix.length());
- LLStringUtil::toLower(test_prefix);
- if(test_prefix == prefix)
- {
- is_secure_browsing = true;
- }
- }
- getChild<LLUICtrl>("secure_browsing")->setVisible(is_secure_browsing);
+ bool is_secure_browsing = false;
+
+ if(mMediaImpl.notNull()
+ && mMediaImpl->hasMedia())
+ {
+ LLPluginClassMedia* media_plugin = NULL;
+ std::string current_url = "";
+ media_plugin = mMediaImpl->getMediaPlugin();
+ if(media_plugin)
+ {
+ if(media_plugin->pluginSupportsMediaTime())
+ {
+ current_url = mMediaImpl->getMediaURL();
+ }
+ else
+ {
+ current_url = media_plugin->getLocation();
+ }
+ }
+
+ std::string prefix = std::string("https://");
+ std::string test_prefix = current_url.substr(0, prefix.length());
+ LLStringUtil::toLower(test_prefix);
+ if(test_prefix == prefix)
+ {
+ is_secure_browsing = true;
+ }
+ }
+ getChild<LLUICtrl>("secure_browsing")->setVisible(is_secure_browsing);
}
-// For the object inspector, only unpause the fade timer
+// For the object inspector, only unpause the fade timer
// if the gear menu is not open
void LLInspectObject::onMouseLeave(S32 x, S32 y, MASK mask)
{
- LLToggleableMenu* gear_menu = getChild<LLMenuButton>("gear_btn")->getMenu();
- if ( gear_menu && gear_menu->getVisible() )
- {
- return;
- }
-
- if(childHasVisiblePopupMenu())
- {
- return;
- }
-
- mOpenTimer.unpause();
+ LLToggleableMenu* gear_menu = getChild<LLMenuButton>("gear_btn")->getMenu();
+ if ( gear_menu && gear_menu->getVisible() )
+ {
+ return;
+ }
+
+ if(childHasVisiblePopupMenu())
+ {
+ return;
+ }
+
+ mOpenTimer.unpause();
}
void LLInspectObject::onClickBuy()
{
- handle_buy();
- closeFloater();
+ handle_buy();
+ closeFloater();
}
void LLInspectObject::onClickPay()
{
- handle_give_money_dialog();
- closeFloater();
+ handle_give_money_dialog();
+ closeFloater();
}
void LLInspectObject::onClickTakeFreeCopy()
{
- LLObjectSelection* selection = LLSelectMgr::getInstance()->getSelection();
- if (!selection) return;
-
- LLSelectNode* nodep = selection->getFirstRootNode();
- if (!nodep) return;
-
- // Figure out if this is a "free buy" or a "take copy"
- bool for_copy = anyone_copy_selection(nodep);
- // Prefer to just take a free copy
- if (for_copy)
- {
- handle_take_copy();
- }
- else
- {
- // Buy for free (confusing, but that's how it is)
- handle_buy();
- }
- closeFloater();
+ LLObjectSelection* selection = LLSelectMgr::getInstance()->getSelection();
+ if (!selection) return;
+
+ LLSelectNode* nodep = selection->getFirstRootNode();
+ if (!nodep) return;
+
+ // Figure out if this is a "free buy" or a "take copy"
+ bool for_copy = anyone_copy_selection(nodep);
+ // Prefer to just take a free copy
+ if (for_copy)
+ {
+ handle_take_copy();
+ }
+ else
+ {
+ // Buy for free (confusing, but that's how it is)
+ handle_buy();
+ }
+ closeFloater();
}
void LLInspectObject::onClickTouch()
{
- handle_object_touch();
- closeFloater();
+ handle_object_touch();
+ closeFloater();
}
void LLInspectObject::onClickSit()
@@ -659,25 +659,25 @@ void LLInspectObject::onClickSit()
{
handle_object_sit(mObjectID);
}
- closeFloater();
+ closeFloater();
}
void LLInspectObject::onClickOpen()
{
- LLFloaterReg::showInstance("openobject");
- closeFloater();
+ LLFloaterReg::showInstance("openobject");
+ closeFloater();
}
void LLInspectObject::onClickMoreInfo()
{
LLFloaterReg::showInstance("task_properties");
- closeFloater();
+ closeFloater();
}
-void LLInspectObject::onClickZoomIn()
+void LLInspectObject::onClickZoomIn()
{
- handle_look_at_selection("zoom");
- closeFloater();
+ handle_look_at_selection("zoom");
+ closeFloater();
}
//////////////////////////////////////////////////////////////////////////////
@@ -685,7 +685,7 @@ void LLInspectObject::onClickZoomIn()
//////////////////////////////////////////////////////////////////////////////
void LLInspectObjectUtil::registerFloater()
{
- LLFloaterReg::add("inspect_object", "inspect_object.xml",
- &LLFloaterReg::build<LLInspectObject>);
+ LLFloaterReg::add("inspect_object", "inspect_object.xml",
+ &LLFloaterReg::build<LLInspectObject>);
}