summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterinspect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloaterinspect.cpp')
-rw-r--r--indra/newview/llfloaterinspect.cpp441
1 files changed, 221 insertions, 220 deletions
diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp
index 0b9d836a1a..8bb73e3a9b 100644
--- a/indra/newview/llfloaterinspect.cpp
+++ b/indra/newview/llfloaterinspect.cpp
@@ -1,220 +1,221 @@
-#include "llviewerprecompiledheaders.h"
-#include "llfloateravatarinfo.h"
-#include "llfloaterinspect.h"
-#include "llfloatertools.h"
-#include "llcachename.h"
-#include "llscrolllistctrl.h"
-#include "llselectmgr.h"
-#include "lltoolcomp.h"
-#include "lltoolmgr.h"
-#include "llviewercontrol.h"
-#include "llviewerobject.h"
-#include "llvieweruictrlfactory.h"
-
-LLFloaterInspect* LLFloaterInspect::sInstance = NULL;
-
-LLFloaterInspect::LLFloaterInspect(void) :
- LLFloater("Inspect Object"),
- mDirty(FALSE)
-{
- sInstance = this;
- gUICtrlFactory->buildFloater(this, "floater_inspect.xml");
-}
-
-LLFloaterInspect::~LLFloaterInspect(void)
-{
- if(!gFloaterTools->getVisible())
- {
- if(gToolMgr->getBaseTool() == gToolInspect)
- {
- select_tool(gToolNull);
- }
- // Switch back to basic toolset
- gToolMgr->setCurrentToolset(gBasicToolset);
- }
- else
- {
- gFloaterTools->setFocus(TRUE);
- }
- sInstance = NULL;
-}
-
-BOOL LLFloaterInspect::isVisible()
-{
- return (!!sInstance);
-}
-
-void LLFloaterInspect::show(void* ignored)
-{
- if(sInstance)
- {
- sInstance->open();
- }
- else
- {
- LLFloaterInspect* self = new LLFloaterInspect;
- self->open();
- }
-
- sInstance->mObjectSelection = gSelectMgr->getSelection();
- select_tool(gToolInspect);
- sInstance->refresh();
-}
-
-void LLFloaterInspect::onClickCreatorProfile(void* ctrl)
-{
- if(sInstance->mObjectList->getAllSelected().size() == 0) return;
- LLSelectNode* obj = sInstance->mObjectSelection->getFirstNode();
- LLUUID obj_id, creator_id;
- obj_id = sInstance->mObjectList->getFirstSelected()->getUUID();
- while(obj)
- {
- if(obj_id == obj->getObject()->getID())
- {
- creator_id = obj->mPermissions->getCreator();
- break;
- }
- obj = sInstance->mObjectSelection->getNextNode();
- }
- if(obj)
- {
- LLFloaterAvatarInfo::showFromDirectory(creator_id);
- }
-}
-
-void LLFloaterInspect::onClickOwnerProfile(void* ctrl)
-{
- if(sInstance->mObjectList->getAllSelected().size() == 0) return;
- LLSelectNode* obj = sInstance->mObjectSelection->getFirstNode();
- LLUUID obj_id, owner_id;
- obj_id = sInstance->mObjectList->getFirstSelected()->getUUID();
- while(obj)
- {
- if(obj_id == obj->getObject()->getID())
- {
- owner_id = obj->mPermissions->getOwner();
- break;
- }
- obj = sInstance->mObjectSelection->getNextNode();
- }
- if(obj)
- {
- LLFloaterAvatarInfo::showFromDirectory(owner_id);
- }
-}
-
-BOOL LLFloaterInspect::postBuild()
-{
- mObjectList = LLUICtrlFactory::getScrollListByName(this, "object_list");
- childSetAction("button owner",onClickOwnerProfile, this);
- childSetAction("button creator",onClickCreatorProfile, this);
- childSetCommitCallback("object_list", onSelectObject);
- return TRUE;
-}
-
-void LLFloaterInspect::onSelectObject(LLUICtrl* ctrl, void* user_data)
-{
- if(LLFloaterInspect::getSelectedUUID() != LLUUID::null)
- {
- sInstance->childSetEnabled("button owner", true);
- sInstance->childSetEnabled("button creator", true);
- }
-}
-
-LLUUID LLFloaterInspect::getSelectedUUID()
-{
- if(sInstance)
- {
- if(sInstance->mObjectList->getAllSelected().size() > 0) return sInstance->mObjectList->getFirstSelected()->getUUID();
- }
- return LLUUID::null;
-}
-
-void LLFloaterInspect::refresh()
-{
- LLUUID creator_id;
- LLString creator_name;
- S32 pos = mObjectList->getScrollPos();
- childSetEnabled("button owner", false);
- childSetEnabled("button creator", false);
- LLUUID selected_uuid;
- S32 selected_index = mObjectList->getFirstSelectedIndex();
- if(selected_index > -1) selected_uuid = mObjectList->getFirstSelected()->getUUID();
- mObjectList->operateOnAll(LLScrollListCtrl::OP_DELETE);
- //List all transient objects, then all linked objects
- LLSelectNode* obj = mObjectSelection->getFirstNode();
- LLSD row;
- while(obj)
- {
- char owner_first_name[MAX_STRING], owner_last_name[MAX_STRING];
- char creator_first_name[MAX_STRING], creator_last_name[MAX_STRING];
- char time[MAX_STRING];
- std::ostringstream owner_name, creator_name, date;
- time_t timestamp = (time_t) (obj->mCreationDate/1000000);
- LLString::copy(time, ctime(&timestamp), MAX_STRING);
- time[24] = '\0';
- date << obj->mCreationDate;
- gCacheName->getName(obj->mPermissions->getOwner(), owner_first_name, owner_last_name);
- owner_name << owner_first_name << " " << owner_last_name;
- gCacheName->getName(obj->mPermissions->getCreator(), creator_first_name, creator_last_name);
- creator_name << creator_first_name << " " << creator_last_name;
- row["id"] = obj->getObject()->getID();
- row["columns"][0]["column"] = "object_name";
- row["columns"][0]["type"] = "text";
- // make sure we're either at the top of the link chain
- // or top of the editable chain, for attachments
- if(!(obj->getObject()->isRoot() || obj->getObject()->isRootEdit()))
- {
- row["columns"][0]["value"] = LLString(" ") + obj->mName;
- }
- else
- {
- row["columns"][0]["value"] = obj->mName;
- }
- row["columns"][1]["column"] = "owner_name";
- row["columns"][1]["type"] = "text";
- row["columns"][1]["value"] = owner_name.str().c_str();
- row["columns"][2]["column"] = "creator_name";
- row["columns"][2]["type"] = "text";
- row["columns"][2]["value"] = creator_name.str().c_str();
- row["columns"][3]["column"] = "creation_date";
- row["columns"][3]["type"] = "text";
- row["columns"][3]["value"] = time;
- mObjectList->addElement(row, ADD_TOP);
- obj = mObjectSelection->getNextNode();
- }
- if(selected_index > -1 && mObjectList->getItemIndex(selected_uuid) == selected_index)
- {
- mObjectList->selectNthItem(selected_index);
- }
- else
- {
- mObjectList->selectNthItem(0);
- }
- onSelectObject(this, NULL);
- mObjectList->setScrollPos(pos);
-}
-
-void LLFloaterInspect::onFocusReceived()
-{
- select_tool(gToolInspect);
-}
-
-void LLFloaterInspect::dirty()
-{
- if(sInstance)
- {
- sInstance->setDirty();
- }
-}
-
-void LLFloaterInspect::draw()
-{
- if (mDirty)
- {
- refresh();
- mDirty = FALSE;
- }
-
- LLFloater::draw();
-} \ No newline at end of file
+#include "llviewerprecompiledheaders.h"
+#include "llfloateravatarinfo.h"
+#include "llfloaterinspect.h"
+#include "llfloatertools.h"
+#include "llcachename.h"
+#include "llscrolllistctrl.h"
+#include "llselectmgr.h"
+#include "lltoolcomp.h"
+#include "lltoolmgr.h"
+#include "llviewercontrol.h"
+#include "llviewerobject.h"
+#include "llvieweruictrlfactory.h"
+
+LLFloaterInspect* LLFloaterInspect::sInstance = NULL;
+
+LLFloaterInspect::LLFloaterInspect(void) :
+ LLFloater("Inspect Object"),
+ mDirty(FALSE)
+{
+ sInstance = this;
+ gUICtrlFactory->buildFloater(this, "floater_inspect.xml");
+}
+
+LLFloaterInspect::~LLFloaterInspect(void)
+{
+ if(!gFloaterTools->getVisible())
+ {
+ if(gToolMgr->getBaseTool() == gToolInspect)
+ {
+ select_tool(gToolNull);
+ }
+ // Switch back to basic toolset
+ gToolMgr->setCurrentToolset(gBasicToolset);
+ }
+ else
+ {
+ gFloaterTools->setFocus(TRUE);
+ }
+ sInstance = NULL;
+}
+
+BOOL LLFloaterInspect::isVisible()
+{
+ return (!!sInstance);
+}
+
+void LLFloaterInspect::show(void* ignored)
+{
+ if(sInstance)
+ {
+ sInstance->open();
+ }
+ else
+ {
+ LLFloaterInspect* self = new LLFloaterInspect;
+ self->open();
+ }
+
+ sInstance->mObjectSelection = gSelectMgr->getSelection();
+ select_tool(gToolInspect);
+ sInstance->refresh();
+}
+
+void LLFloaterInspect::onClickCreatorProfile(void* ctrl)
+{
+ if(sInstance->mObjectList->getAllSelected().size() == 0) return;
+ LLSelectNode* obj = sInstance->mObjectSelection->getFirstNode();
+ LLUUID obj_id, creator_id;
+ obj_id = sInstance->mObjectList->getFirstSelected()->getUUID();
+ while(obj)
+ {
+ if(obj_id == obj->getObject()->getID())
+ {
+ creator_id = obj->mPermissions->getCreator();
+ break;
+ }
+ obj = sInstance->mObjectSelection->getNextNode();
+ }
+ if(obj)
+ {
+ LLFloaterAvatarInfo::showFromDirectory(creator_id);
+ }
+}
+
+void LLFloaterInspect::onClickOwnerProfile(void* ctrl)
+{
+ if(sInstance->mObjectList->getAllSelected().size() == 0) return;
+ LLSelectNode* obj = sInstance->mObjectSelection->getFirstNode();
+ LLUUID obj_id, owner_id;
+ obj_id = sInstance->mObjectList->getFirstSelected()->getUUID();
+ while(obj)
+ {
+ if(obj_id == obj->getObject()->getID())
+ {
+ owner_id = obj->mPermissions->getOwner();
+ break;
+ }
+ obj = sInstance->mObjectSelection->getNextNode();
+ }
+ if(obj)
+ {
+ LLFloaterAvatarInfo::showFromDirectory(owner_id);
+ }
+}
+
+BOOL LLFloaterInspect::postBuild()
+{
+ mObjectList = LLUICtrlFactory::getScrollListByName(this, "object_list");
+ childSetAction("button owner",onClickOwnerProfile, this);
+ childSetAction("button creator",onClickCreatorProfile, this);
+ childSetCommitCallback("object_list", onSelectObject);
+ return TRUE;
+}
+
+void LLFloaterInspect::onSelectObject(LLUICtrl* ctrl, void* user_data)
+{
+ if(LLFloaterInspect::getSelectedUUID() != LLUUID::null)
+ {
+ sInstance->childSetEnabled("button owner", true);
+ sInstance->childSetEnabled("button creator", true);
+ }
+}
+
+LLUUID LLFloaterInspect::getSelectedUUID()
+{
+ if(sInstance)
+ {
+ if(sInstance->mObjectList->getAllSelected().size() > 0) return sInstance->mObjectList->getFirstSelected()->getUUID();
+ }
+ return LLUUID::null;
+}
+
+void LLFloaterInspect::refresh()
+{
+ LLUUID creator_id;
+ LLString creator_name;
+ S32 pos = mObjectList->getScrollPos();
+ childSetEnabled("button owner", false);
+ childSetEnabled("button creator", false);
+ LLUUID selected_uuid;
+ S32 selected_index = mObjectList->getFirstSelectedIndex();
+ if(selected_index > -1) selected_uuid = mObjectList->getFirstSelected()->getUUID();
+ mObjectList->operateOnAll(LLScrollListCtrl::OP_DELETE);
+ //List all transient objects, then all linked objects
+ LLSelectNode* obj = mObjectSelection->getFirstNode();
+ LLSD row;
+ while(obj)
+ {
+ char owner_first_name[MAX_STRING], owner_last_name[MAX_STRING];
+ char creator_first_name[MAX_STRING], creator_last_name[MAX_STRING];
+ char time[MAX_STRING];
+ std::ostringstream owner_name, creator_name, date;
+ time_t timestamp = (time_t) (obj->mCreationDate/1000000);
+ LLString::copy(time, ctime(&timestamp), MAX_STRING);
+ time[24] = '\0';
+ date << obj->mCreationDate;
+ gCacheName->getName(obj->mPermissions->getOwner(), owner_first_name, owner_last_name);
+ owner_name << owner_first_name << " " << owner_last_name;
+ gCacheName->getName(obj->mPermissions->getCreator(), creator_first_name, creator_last_name);
+ creator_name << creator_first_name << " " << creator_last_name;
+ row["id"] = obj->getObject()->getID();
+ row["columns"][0]["column"] = "object_name";
+ row["columns"][0]["type"] = "text";
+ // make sure we're either at the top of the link chain
+ // or top of the editable chain, for attachments
+ if(!(obj->getObject()->isRoot() || obj->getObject()->isRootEdit()))
+ {
+ row["columns"][0]["value"] = LLString(" ") + obj->mName;
+ }
+ else
+ {
+ row["columns"][0]["value"] = obj->mName;
+ }
+ row["columns"][1]["column"] = "owner_name";
+ row["columns"][1]["type"] = "text";
+ row["columns"][1]["value"] = owner_name.str().c_str();
+ row["columns"][2]["column"] = "creator_name";
+ row["columns"][2]["type"] = "text";
+ row["columns"][2]["value"] = creator_name.str().c_str();
+ row["columns"][3]["column"] = "creation_date";
+ row["columns"][3]["type"] = "text";
+ row["columns"][3]["value"] = time;
+ mObjectList->addElement(row, ADD_TOP);
+ obj = mObjectSelection->getNextNode();
+ }
+ if(selected_index > -1 && mObjectList->getItemIndex(selected_uuid) == selected_index)
+ {
+ mObjectList->selectNthItem(selected_index);
+ }
+ else
+ {
+ mObjectList->selectNthItem(0);
+ }
+ onSelectObject(this, NULL);
+ mObjectList->setScrollPos(pos);
+}
+
+void LLFloaterInspect::onFocusReceived()
+{
+ select_tool(gToolInspect);
+}
+
+void LLFloaterInspect::dirty()
+{
+ if(sInstance)
+ {
+ sInstance->setDirty();
+ }
+}
+
+void LLFloaterInspect::draw()
+{
+ if (mDirty)
+ {
+ refresh();
+ mDirty = FALSE;
+ }
+
+ LLFloater::draw();
+}
+