diff options
author | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-22 19:04:52 +0200 |
---|---|---|
committer | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-05-22 19:04:52 +0200 |
commit | 1b67dd855c41f5a0cda7ec2a68d98071986ca703 (patch) | |
tree | ab243607f74f78200787bba5b9b88f07ef1b966f /indra/newview/llinspectremoteobject.cpp | |
parent | 6d6eabca44d08d5b97bfe3e941d2b9687c2246ea (diff) | |
parent | e1623bb276f83a43ce7a197e388720c05bdefe61 (diff) |
Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-A
# Conflicts:
# autobuild.xml
# indra/cmake/CMakeLists.txt
# indra/cmake/GoogleMock.cmake
# indra/llaudio/llaudioengine_fmodstudio.cpp
# indra/llaudio/llaudioengine_fmodstudio.h
# indra/llaudio/lllistener_fmodstudio.cpp
# indra/llaudio/lllistener_fmodstudio.h
# indra/llaudio/llstreamingaudio_fmodstudio.cpp
# indra/llaudio/llstreamingaudio_fmodstudio.h
# indra/llcharacter/llmultigesture.cpp
# indra/llcharacter/llmultigesture.h
# indra/llimage/llimage.cpp
# indra/llimage/llimagepng.cpp
# indra/llimage/llimageworker.cpp
# indra/llimage/tests/llimageworker_test.cpp
# indra/llmessage/tests/llmockhttpclient.h
# indra/llprimitive/llgltfmaterial.h
# indra/llrender/llfontfreetype.cpp
# indra/llui/llcombobox.cpp
# indra/llui/llfolderview.cpp
# indra/llui/llfolderviewmodel.h
# indra/llui/lllineeditor.cpp
# indra/llui/lllineeditor.h
# indra/llui/lltextbase.cpp
# indra/llui/lltextbase.h
# indra/llui/lltexteditor.cpp
# indra/llui/lltextvalidate.cpp
# indra/llui/lltextvalidate.h
# indra/llui/lluictrl.h
# indra/llui/llview.cpp
# indra/llwindow/llwindowmacosx.cpp
# indra/newview/app_settings/settings.xml
# indra/newview/llappearancemgr.cpp
# indra/newview/llappearancemgr.h
# indra/newview/llavatarpropertiesprocessor.cpp
# indra/newview/llavatarpropertiesprocessor.h
# indra/newview/llbreadcrumbview.cpp
# indra/newview/llbreadcrumbview.h
# indra/newview/llbreastmotion.cpp
# indra/newview/llbreastmotion.h
# indra/newview/llconversationmodel.h
# indra/newview/lldensityctrl.cpp
# indra/newview/lldensityctrl.h
# indra/newview/llface.inl
# indra/newview/llfloatereditsky.cpp
# indra/newview/llfloatereditwater.cpp
# indra/newview/llfloateremojipicker.h
# indra/newview/llfloaterimsessiontab.cpp
# indra/newview/llfloaterprofiletexture.cpp
# indra/newview/llfloaterprofiletexture.h
# indra/newview/llgesturemgr.cpp
# indra/newview/llgesturemgr.h
# indra/newview/llimpanel.cpp
# indra/newview/llimpanel.h
# indra/newview/llinventorybridge.cpp
# indra/newview/llinventorybridge.h
# indra/newview/llinventoryclipboard.cpp
# indra/newview/llinventoryclipboard.h
# indra/newview/llinventoryfunctions.cpp
# indra/newview/llinventoryfunctions.h
# indra/newview/llinventorygallery.cpp
# indra/newview/lllistbrowser.cpp
# indra/newview/lllistbrowser.h
# indra/newview/llpanelobjectinventory.cpp
# indra/newview/llpanelprofile.cpp
# indra/newview/llpanelprofile.h
# indra/newview/llpreviewgesture.cpp
# indra/newview/llsavedsettingsglue.cpp
# indra/newview/llsavedsettingsglue.h
# indra/newview/lltooldraganddrop.cpp
# indra/newview/llurllineeditorctrl.cpp
# indra/newview/llvectorperfoptions.cpp
# indra/newview/llvectorperfoptions.h
# indra/newview/llviewerparceloverlay.cpp
# indra/newview/llviewertexlayer.cpp
# indra/newview/llviewertexturelist.cpp
# indra/newview/macmain.h
# indra/test/test.cpp
Diffstat (limited to 'indra/newview/llinspectremoteobject.cpp')
-rw-r--r-- | indra/newview/llinspectremoteobject.cpp | 368 |
1 files changed, 184 insertions, 184 deletions
diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp index 5b63eb045d..1685d3e825 100644 --- a/indra/newview/llinspectremoteobject.cpp +++ b/indra/newview/llinspectremoteobject.cpp @@ -1,184 +1,184 @@ -/** - * @file llinspectremoteobject.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$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llfloaterreg.h" -#include "llinspectremoteobject.h" -#include "llinspect.h" -#include "llmutelist.h" -#include "llpanelblockedlist.h" -#include "llslurl.h" -#include "lltrans.h" -#include "llui.h" -#include "lluictrl.h" -#include "llurlaction.h" - -////////////////////////////////////////////////////////////////////////////// -// LLInspectRemoteObject -////////////////////////////////////////////////////////////////////////////// - -// Remote Object Inspector, a small information window used to -// display information about potentially-remote objects. Used -// to display details about objects sending messages to the user. -class LLInspectRemoteObject : public LLInspect -{ - friend class LLFloaterReg; - -public: - LLInspectRemoteObject(const LLSD& object_id); - virtual ~LLInspectRemoteObject() {}; - - /*virtual*/ bool postBuild(void); - /*virtual*/ void onOpen(const LLSD& avatar_id); - - void onClickMap(); - void onClickBlock(); - void onClickClose(); - -private: - void update(); - -private: - LLUUID mObjectID; - LLUUID mOwnerID; - std::string mSLurl; - std::string mName; - bool mGroupOwned; -}; - -LLInspectRemoteObject::LLInspectRemoteObject(const LLSD& sd) : - LLInspect(LLSD()), - mObjectID(NULL), - mOwnerID(NULL), - mSLurl(""), - mName(""), - mGroupOwned(false) -{ -} - -/*virtual*/ -bool LLInspectRemoteObject::postBuild(void) -{ - // hook up the inspector's buttons - getChild<LLUICtrl>("map_btn")->setCommitCallback( - boost::bind(&LLInspectRemoteObject::onClickMap, this)); - getChild<LLUICtrl>("block_btn")->setCommitCallback( - boost::bind(&LLInspectRemoteObject::onClickBlock, this)); - getChild<LLUICtrl>("close_btn")->setCommitCallback( - boost::bind(&LLInspectRemoteObject::onClickClose, this)); - - return true; -} - -/*virtual*/ -void LLInspectRemoteObject::onOpen(const LLSD& data) -{ - // Start animation - LLInspect::onOpen(data); - - // Extract appropriate object information from input LLSD - // (Eventually, it might be nice to query server for details - // rather than require caller to pass in the information.) - mObjectID = data["object_id"].asUUID(); - mName = data["name"].asString(); - mOwnerID = data["owner_id"].asUUID(); - mGroupOwned = data["group_owned"].asBoolean(); - mSLurl = data["slurl"].asString(); - - // update the inspector with the current object state - update(); - - LLInspect::repositionInspector(data); -} - -void LLInspectRemoteObject::onClickMap() -{ - std::string url = "secondlife://" + mSLurl; - LLUrlAction::showLocationOnMap(url); - closeFloater(); -} - -void LLInspectRemoteObject::onClickBlock() -{ - LLMute mute(mObjectID, mName, LLMute::OBJECT); - LLMuteList::getInstance()->add(mute); - LLPanelBlockedList::showPanelAndSelect(mute.mID); - closeFloater(); -} - -void LLInspectRemoteObject::onClickClose() -{ - closeFloater(); -} - -void LLInspectRemoteObject::update() -{ - // show the object name as the inspector's title - // (don't hyperlink URLs in object names) - getChild<LLUICtrl>("object_name")->setValue("<nolink>" + mName + "</nolink>"); - - // show the object's owner - click it to show profile - std::string owner; - if (! mOwnerID.isNull()) - { - if (mGroupOwned) - { - owner = LLSLURL("group", mOwnerID, "about").getSLURLString(); - } - else - { - owner = LLSLURL("agent", mOwnerID, "about").getSLURLString(); - } - } - else - { - owner = LLTrans::getString("Unknown"); - } - getChild<LLUICtrl>("object_owner")->setValue(owner); - - // display the object's SLurl - click it to teleport - std::string url; - if (! mSLurl.empty()) - { - url = "secondlife:///app/teleport/" + mSLurl; - } - getChild<LLUICtrl>("object_slurl")->setValue(url); - - // disable the Map button if we don't have a SLurl - getChild<LLUICtrl>("map_btn")->setEnabled(! mSLurl.empty()); - - // disable the Block button if we don't have the object ID (will this ever happen?) - getChild<LLUICtrl>("block_btn")->setEnabled(!mObjectID.isNull() && !LLMuteList::getInstance()->isMuted(mObjectID)); -} - -////////////////////////////////////////////////////////////////////////////// -// LLInspectRemoteObjectUtil -////////////////////////////////////////////////////////////////////////////// -void LLInspectRemoteObjectUtil::registerFloater() -{ - LLFloaterReg::add("inspect_remote_object", "inspect_remote_object.xml", - &LLFloaterReg::build<LLInspectRemoteObject>); -} +/**
+ * @file llinspectremoteobject.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$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterreg.h"
+#include "llinspectremoteobject.h"
+#include "llinspect.h"
+#include "llmutelist.h"
+#include "llpanelblockedlist.h"
+#include "llslurl.h"
+#include "lltrans.h"
+#include "llui.h"
+#include "lluictrl.h"
+#include "llurlaction.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// LLInspectRemoteObject
+//////////////////////////////////////////////////////////////////////////////
+
+// Remote Object Inspector, a small information window used to
+// display information about potentially-remote objects. Used
+// to display details about objects sending messages to the user.
+class LLInspectRemoteObject : public LLInspect
+{
+ friend class LLFloaterReg;
+
+public:
+ LLInspectRemoteObject(const LLSD& object_id);
+ virtual ~LLInspectRemoteObject() {};
+
+ /*virtual*/ bool postBuild(void);
+ /*virtual*/ void onOpen(const LLSD& avatar_id);
+
+ void onClickMap();
+ void onClickBlock();
+ void onClickClose();
+
+private:
+ void update();
+
+private:
+ LLUUID mObjectID;
+ LLUUID mOwnerID;
+ std::string mSLurl;
+ std::string mName;
+ bool mGroupOwned;
+};
+
+LLInspectRemoteObject::LLInspectRemoteObject(const LLSD& sd) :
+ LLInspect(LLSD()),
+ mObjectID(NULL),
+ mOwnerID(NULL),
+ mSLurl(""),
+ mName(""),
+ mGroupOwned(false)
+{
+}
+
+/*virtual*/
+bool LLInspectRemoteObject::postBuild(void)
+{
+ // hook up the inspector's buttons
+ getChild<LLUICtrl>("map_btn")->setCommitCallback(
+ boost::bind(&LLInspectRemoteObject::onClickMap, this));
+ getChild<LLUICtrl>("block_btn")->setCommitCallback(
+ boost::bind(&LLInspectRemoteObject::onClickBlock, this));
+ getChild<LLUICtrl>("close_btn")->setCommitCallback(
+ boost::bind(&LLInspectRemoteObject::onClickClose, this));
+
+ return true;
+}
+
+/*virtual*/
+void LLInspectRemoteObject::onOpen(const LLSD& data)
+{
+ // Start animation
+ LLInspect::onOpen(data);
+
+ // Extract appropriate object information from input LLSD
+ // (Eventually, it might be nice to query server for details
+ // rather than require caller to pass in the information.)
+ mObjectID = data["object_id"].asUUID();
+ mName = data["name"].asString();
+ mOwnerID = data["owner_id"].asUUID();
+ mGroupOwned = data["group_owned"].asBoolean();
+ mSLurl = data["slurl"].asString();
+
+ // update the inspector with the current object state
+ update();
+
+ LLInspect::repositionInspector(data);
+}
+
+void LLInspectRemoteObject::onClickMap()
+{
+ std::string url = "secondlife://" + mSLurl;
+ LLUrlAction::showLocationOnMap(url);
+ closeFloater();
+}
+
+void LLInspectRemoteObject::onClickBlock()
+{
+ LLMute mute(mObjectID, mName, LLMute::OBJECT);
+ LLMuteList::getInstance()->add(mute);
+ LLPanelBlockedList::showPanelAndSelect(mute.mID);
+ closeFloater();
+}
+
+void LLInspectRemoteObject::onClickClose()
+{
+ closeFloater();
+}
+
+void LLInspectRemoteObject::update()
+{
+ // show the object name as the inspector's title
+ // (don't hyperlink URLs in object names)
+ getChild<LLUICtrl>("object_name")->setValue("<nolink>" + mName + "</nolink>");
+
+ // show the object's owner - click it to show profile
+ std::string owner;
+ if (! mOwnerID.isNull())
+ {
+ if (mGroupOwned)
+ {
+ owner = LLSLURL("group", mOwnerID, "about").getSLURLString();
+ }
+ else
+ {
+ owner = LLSLURL("agent", mOwnerID, "about").getSLURLString();
+ }
+ }
+ else
+ {
+ owner = LLTrans::getString("Unknown");
+ }
+ getChild<LLUICtrl>("object_owner")->setValue(owner);
+
+ // display the object's SLurl - click it to teleport
+ std::string url;
+ if (! mSLurl.empty())
+ {
+ url = "secondlife:///app/teleport/" + mSLurl;
+ }
+ getChild<LLUICtrl>("object_slurl")->setValue(url);
+
+ // disable the Map button if we don't have a SLurl
+ getChild<LLUICtrl>("map_btn")->setEnabled(! mSLurl.empty());
+
+ // disable the Block button if we don't have the object ID (will this ever happen?)
+ getChild<LLUICtrl>("block_btn")->setEnabled(!mObjectID.isNull() && !LLMuteList::getInstance()->isMuted(mObjectID));
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// LLInspectRemoteObjectUtil
+//////////////////////////////////////////////////////////////////////////////
+void LLInspectRemoteObjectUtil::registerFloater()
+{
+ LLFloaterReg::add("inspect_remote_object", "inspect_remote_object.xml",
+ &LLFloaterReg::build<LLInspectRemoteObject>);
+}
|