aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra
diff options
context:
space:
mode:
authorMcCabe Maxsted2011-04-11 21:59:58 -0700
committerMcCabe Maxsted2011-04-11 21:59:58 -0700
commit1ea2fe7f803496fcb4d03d1cda3e14021a6bda59 (patch)
tree06f5f8f61c3d1751a9e14de1faed09dcd1d5ca1c /linden/indra
parentFixed avatar ages showing up as -1 days old for people on different timezones (diff)
downloadmeta-impy-1ea2fe7f803496fcb4d03d1cda3e14021a6bda59.zip
meta-impy-1ea2fe7f803496fcb4d03d1cda3e14021a6bda59.tar.gz
meta-impy-1ea2fe7f803496fcb4d03d1cda3e14021a6bda59.tar.bz2
meta-impy-1ea2fe7f803496fcb4d03d1cda3e14021a6bda59.tar.xz
Ported changes to the inspect window from Ascent by Hazim: added last owner, faces, verticies, script and inventory count
Diffstat (limited to 'linden/indra')
-rw-r--r--linden/indra/newview/llfloaterinspect.cpp89
-rw-r--r--linden/indra/newview/llfloaterinspect.h9
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_inspect.xml7
3 files changed, 93 insertions, 12 deletions
diff --git a/linden/indra/newview/llfloaterinspect.cpp b/linden/indra/newview/llfloaterinspect.cpp
index 51c7835..6701fdb 100644
--- a/linden/indra/newview/llfloaterinspect.cpp
+++ b/linden/indra/newview/llfloaterinspect.cpp
@@ -226,7 +226,7 @@ void LLFloaterInspect::refresh()
226 LLSelectNode* obj = *iter; 226 LLSelectNode* obj = *iter;
227 LLSD row; 227 LLSD row;
228 char time[MAX_STRING]; 228 char time[MAX_STRING];
229 std::string owner_name, creator_name; 229 std::string owner_name, creator_name, last_owner_name;
230 230
231 if (obj->mCreationDate == 0) 231 if (obj->mCreationDate == 0)
232 { // Don't have valid information from the server, so skip this one 232 { // Don't have valid information from the server, so skip this one
@@ -245,6 +245,7 @@ void LLFloaterInspect::refresh()
245 } 245 }
246// [/RLVa:KB] 246// [/RLVa:KB]
247 gCacheName->getFullName(obj->mPermissions->getCreator(), creator_name); 247 gCacheName->getFullName(obj->mPermissions->getCreator(), creator_name);
248 gCacheName->getFullName(obj->mPermissions->getLastOwner(), last_owner_name);
248 row["id"] = obj->getObject()->getID(); 249 row["id"] = obj->getObject()->getID();
249 row["columns"][0]["column"] = "object_name"; 250 row["columns"][0]["column"] = "object_name";
250 row["columns"][0]["type"] = "text"; 251 row["columns"][0]["type"] = "text";
@@ -258,15 +259,57 @@ void LLFloaterInspect::refresh()
258 { 259 {
259 row["columns"][0]["value"] = obj->mName; 260 row["columns"][0]["value"] = obj->mName;
260 } 261 }
261 row["columns"][1]["column"] = "owner_name"; 262 int i = 1;
262 row["columns"][1]["type"] = "text"; 263 row["columns"][i]["column"] = "owner_name";
263 row["columns"][1]["value"] = owner_name; 264 row["columns"][i]["type"] = "text";
264 row["columns"][2]["column"] = "creator_name"; 265 row["columns"][i]["value"] = owner_name;
265 row["columns"][2]["type"] = "text"; 266 ++i;
266 row["columns"][2]["value"] = creator_name; 267 row["columns"][i]["column"] = "last_owner_name";
267 row["columns"][3]["column"] = "creation_date"; 268 row["columns"][i]["type"] = "text";
268 row["columns"][3]["type"] = "text"; 269 row["columns"][i]["value"] = last_owner_name;
269 row["columns"][3]["value"] = time; 270 ++i;
271 row["columns"][i]["column"] = "creator_name";
272 row["columns"][i]["type"] = "text";
273 row["columns"][i]["value"] = creator_name;
274 ++i;
275 row["columns"][i]["column"] = "face_num";
276 row["columns"][i]["type"] = "text";
277 row["columns"][i]["value"] = llformat("%d", obj->getObject()->getNumFaces());
278 ++i;
279 row["columns"][i]["column"] = "vertex_num";
280 row["columns"][i]["type"] = "text";
281 row["columns"][i]["value"] = llformat("%d", obj->getObject()->getNumVertices());
282 ++i;
283 // inventory silliness
284 S32 scripts,total_inv;
285 std::map<LLUUID, std::pair<S32,S32> >::iterator itr = mInventoryNums.find(obj->getObject()->getID());
286 if (itr != mInventoryNums.end())
287 {
288 scripts = itr->second.first;
289 total_inv = itr->second.second;
290 }
291 else
292 {
293 scripts = 0;
294 total_inv = 0;
295 if (std::find(mQueue.begin(), mQueue.end(), obj->getObject()->getID()) == mQueue.end())
296 {
297 mQueue.push_back(obj->getObject()->getID());
298 registerVOInventoryListener(obj->getObject(), NULL);
299 requestVOInventory();
300 }
301 }
302 row["columns"][i]["column"] = "script_num";
303 row["columns"][i]["type"] = "text";
304 row["columns"][i]["value"] = llformat("%d", scripts);
305 ++i;
306 row["columns"][i]["column"] = "inv_num";
307 row["columns"][i]["type"] = "text";
308 row["columns"][i]["value"] = llformat("%d", total_inv);
309 ++i;
310 row["columns"][i]["column"] = "creation_date";
311 row["columns"][i]["type"] = "text";
312 row["columns"][i]["value"] = time;
270 mObjectList->addElement(row, ADD_TOP); 313 mObjectList->addElement(row, ADD_TOP);
271 } 314 }
272 if(selected_index > -1 && mObjectList->getItemIndex(selected_uuid) == selected_index) 315 if(selected_index > -1 && mObjectList->getItemIndex(selected_uuid) == selected_index)
@@ -281,6 +324,30 @@ void LLFloaterInspect::refresh()
281 mObjectList->setScrollPos(pos); 324 mObjectList->setScrollPos(pos);
282} 325}
283 326
327void LLFloaterInspect::inventoryChanged(LLViewerObject* viewer_object,
328 InventoryObjectList* inv,
329 S32,
330 void* q_id)
331{
332 S32 scripts = 0;
333 std::vector<LLUUID>::iterator iter = std::find(mQueue.begin(), mQueue.end(), viewer_object->getID());
334 if (viewer_object && inv && iter != mQueue.end() )
335 {
336 InventoryObjectList::const_iterator it = inv->begin();
337 InventoryObjectList::const_iterator end = inv->end();
338 for ( ; it != end; ++it)
339 {
340 if ((*it)->getType() == LLAssetType::AT_LSL_TEXT)
341 {
342 scripts++;
343 }
344 }
345 mInventoryNums[viewer_object->getID()] = std::make_pair(scripts, inv->size());
346 mQueue.erase(iter);
347 mDirty = TRUE;
348 }
349}
350
284void LLFloaterInspect::onFocusReceived() 351void LLFloaterInspect::onFocusReceived()
285{ 352{
286 LLToolMgr::getInstance()->setTransientTool(LLToolCompInspect::getInstance()); 353 LLToolMgr::getInstance()->setTransientTool(LLToolCompInspect::getInstance());
@@ -291,6 +358,8 @@ void LLFloaterInspect::dirty()
291{ 358{
292 if(sInstance) 359 if(sInstance)
293 { 360 {
361 sInstance->mInventoryNums.clear();
362 sInstance->mQueue.clear();
294 sInstance->setDirty(); 363 sInstance->setDirty();
295 } 364 }
296} 365}
diff --git a/linden/indra/newview/llfloaterinspect.h b/linden/indra/newview/llfloaterinspect.h
index 57bba68..5d05f48 100644
--- a/linden/indra/newview/llfloaterinspect.h
+++ b/linden/indra/newview/llfloaterinspect.h
@@ -36,13 +36,14 @@
36#define LL_LLFLOATERINSPECT_H 36#define LL_LLFLOATERINSPECT_H
37 37
38#include "llfloater.h" 38#include "llfloater.h"
39#include "llvoinventorylistener.h"
39 40
40//class LLTool; 41//class LLTool;
41class LLObjectSelection; 42class LLObjectSelection;
42class LLScrollListCtrl; 43class LLScrollListCtrl;
43class LLUICtrl; 44class LLUICtrl;
44 45
45class LLFloaterInspect : public LLFloater 46class LLFloaterInspect : public LLFloater, public LLVOInventoryListener
46{ 47{
47public: 48public:
48 virtual ~LLFloaterInspect(void); 49 virtual ~LLFloaterInspect(void);
@@ -63,12 +64,18 @@ protected:
63 LLFloaterInspect(); 64 LLFloaterInspect();
64 void setDirty() { mDirty = TRUE; } 65 void setDirty() { mDirty = TRUE; }
65 bool mDirty; 66 bool mDirty;
67 /*virtual*/ void inventoryChanged(LLViewerObject* obj,
68 InventoryObjectList* inv,
69 S32 serial_num,
70 void* queue);
66 71
67private: 72private:
68 // static data 73 // static data
69 static LLFloaterInspect* sInstance; 74 static LLFloaterInspect* sInstance;
70 75
71 LLSafeHandle<LLObjectSelection> mObjectSelection; 76 LLSafeHandle<LLObjectSelection> mObjectSelection;
77 std::map<LLUUID, std::pair<S32, S32> > mInventoryNums; //<scripts, total>
78 std::vector<LLUUID> mQueue;
72}; 79};
73 80
74#endif //LL_LLFLOATERINSPECT_H 81#endif //LL_LLFLOATERINSPECT_H
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_inspect.xml b/linden/indra/newview/skins/default/xui/en-us/floater_inspect.xml
index fbb1133..b28174b 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_inspect.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_inspect.xml
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true" 2<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
3 min_height="300" min_width="400" name="inspect" 3 min_height="300" min_width="550" name="inspect"
4 rect_control="FloaterInspectRect" title="Inspect Objects"> 4 rect_control="FloaterInspectRect" title="Inspect Objects">
5 <scroll_list bottom="30" can_resize="false" column_padding="0" draw_heading="true" 5 <scroll_list bottom="30" can_resize="false" column_padding="0" draw_heading="true"
6 follows="top|right|left|bottom" left="10" multi_select="false" 6 follows="top|right|left|bottom" left="10" multi_select="false"
@@ -9,7 +9,12 @@
9 top="-20"> 9 top="-20">
10 <column dynamicwidth="true" label="Object Name" name="object_name" /> 10 <column dynamicwidth="true" label="Object Name" name="object_name" />
11 <column dynamicwidth="true" label="Owner Name" name="owner_name" /> 11 <column dynamicwidth="true" label="Owner Name" name="owner_name" />
12 <column dynamicwidth="true" label="Last Owner Name" name="last_owner_name" />
12 <column dynamicwidth="true" label="Creator Name" name="creator_name" /> 13 <column dynamicwidth="true" label="Creator Name" name="creator_name" />
14 <column label="Faces" name="face_num" width="70" />
15 <column label="Vertices" name="vertex_num" width="70" />
16 <column label="Scripts" name="script_num" width="70" />
17 <column label="Inv Total" name="inv_num" width="70" />
13 <column label="Creation Date" name="creation_date" width="150" /> 18 <column label="Creation Date" name="creation_date" width="150" />
14 </scroll_list> 19 </scroll_list>
15 <button bottom="5" follows="left|bottom" font="SansSerif" halign="center" height="20" 20 <button bottom="5" follows="left|bottom" font="SansSerif" halign="center" height="20"