diff options
author | McCabe Maxsted | 2011-04-11 21:59:58 -0700 |
---|---|---|
committer | McCabe Maxsted | 2011-04-11 21:59:58 -0700 |
commit | 1ea2fe7f803496fcb4d03d1cda3e14021a6bda59 (patch) | |
tree | 06f5f8f61c3d1751a9e14de1faed09dcd1d5ca1c /linden/indra | |
parent | Fixed avatar ages showing up as -1 days old for people on different timezones (diff) | |
download | meta-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.cpp | 89 | ||||
-rw-r--r-- | linden/indra/newview/llfloaterinspect.h | 9 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/xui/en-us/floater_inspect.xml | 7 |
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 | ||
327 | void 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 | |||
284 | void LLFloaterInspect::onFocusReceived() | 351 | void 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; |
41 | class LLObjectSelection; | 42 | class LLObjectSelection; |
42 | class LLScrollListCtrl; | 43 | class LLScrollListCtrl; |
43 | class LLUICtrl; | 44 | class LLUICtrl; |
44 | 45 | ||
45 | class LLFloaterInspect : public LLFloater | 46 | class LLFloaterInspect : public LLFloater, public LLVOInventoryListener |
46 | { | 47 | { |
47 | public: | 48 | public: |
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 | ||
67 | private: | 72 | private: |
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" |