summaryrefslogtreecommitdiff
path: root/indra/newview/llfloatertopobjects.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloatertopobjects.cpp')
-rw-r--r--indra/newview/llfloatertopobjects.cpp676
1 files changed, 338 insertions, 338 deletions
diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp
index 9f277021c8..c630daa836 100644
--- a/indra/newview/llfloatertopobjects.cpp
+++ b/indra/newview/llfloatertopobjects.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file llfloatertopobjects.cpp
* @brief Shows top colliders, top scripts, etc.
*
* $LicenseInfo:firstyear=2005&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$
*/
@@ -61,29 +61,29 @@
// static
void LLFloaterTopObjects::show()
{
- if (sInstance)
- {
- sInstance->setVisibleAndFrontmost();
- return;
- }
-
- sInstance = new LLFloaterTopObjects();
- sInstance->center();
+ if (sInstance)
+ {
+ sInstance->setVisibleAndFrontmost();
+ return;
+ }
+
+ sInstance = new LLFloaterTopObjects();
+ sInstance->center();
}
*/
LLFloaterTopObjects::LLFloaterTopObjects(const LLSD& key)
-: LLFloater(key),
- mInitialized(FALSE),
- mtotalScore(0.f)
+: LLFloater(key),
+ mInitialized(FALSE),
+ mtotalScore(0.f)
{
- mCommitCallbackRegistrar.add("TopObjects.ShowBeacon", boost::bind(&LLFloaterTopObjects::onClickShowBeacon, this));
- mCommitCallbackRegistrar.add("TopObjects.ReturnSelected", boost::bind(&LLFloaterTopObjects::onReturnSelected, this));
- mCommitCallbackRegistrar.add("TopObjects.ReturnAll", boost::bind(&LLFloaterTopObjects::onReturnAll, this));
- mCommitCallbackRegistrar.add("TopObjects.Refresh", boost::bind(&LLFloaterTopObjects::onRefresh, this));
- mCommitCallbackRegistrar.add("TopObjects.GetByObjectName", boost::bind(&LLFloaterTopObjects::onGetByObjectName, this));
- mCommitCallbackRegistrar.add("TopObjects.GetByOwnerName", boost::bind(&LLFloaterTopObjects::onGetByOwnerName, this));
- mCommitCallbackRegistrar.add("TopObjects.GetByParcelName", boost::bind(&LLFloaterTopObjects::onGetByParcelName, this));
- mCommitCallbackRegistrar.add("TopObjects.CommitObjectsList",boost::bind(&LLFloaterTopObjects::onCommitObjectsList, this));
+ mCommitCallbackRegistrar.add("TopObjects.ShowBeacon", boost::bind(&LLFloaterTopObjects::onClickShowBeacon, this));
+ mCommitCallbackRegistrar.add("TopObjects.ReturnSelected", boost::bind(&LLFloaterTopObjects::onReturnSelected, this));
+ mCommitCallbackRegistrar.add("TopObjects.ReturnAll", boost::bind(&LLFloaterTopObjects::onReturnAll, this));
+ mCommitCallbackRegistrar.add("TopObjects.Refresh", boost::bind(&LLFloaterTopObjects::onRefresh, this));
+ mCommitCallbackRegistrar.add("TopObjects.GetByObjectName", boost::bind(&LLFloaterTopObjects::onGetByObjectName, this));
+ mCommitCallbackRegistrar.add("TopObjects.GetByOwnerName", boost::bind(&LLFloaterTopObjects::onGetByOwnerName, this));
+ mCommitCallbackRegistrar.add("TopObjects.GetByParcelName", boost::bind(&LLFloaterTopObjects::onGetByParcelName, this));
+ mCommitCallbackRegistrar.add("TopObjects.CommitObjectsList",boost::bind(&LLFloaterTopObjects::onCommitObjectsList, this));
mCommitCallbackRegistrar.add("TopObjects.TeleportToSelected", boost::bind(&LLFloaterTopObjects::teleportToSelectedObject, this));
}
@@ -101,330 +101,330 @@ BOOL LLFloaterTopObjects::postBuild()
mObjectsScrollList->setCommitOnSelectionChange(TRUE);
mObjectsScrollList->setCommitCallback(boost::bind(&LLFloaterTopObjects::onSelectionChanged, this));
- setDefaultBtn("show_beacon_btn");
+ setDefaultBtn("show_beacon_btn");
- mCurrentMode = STAT_REPORT_TOP_SCRIPTS;
- mFlags = 0;
- mFilter.clear();
+ mCurrentMode = STAT_REPORT_TOP_SCRIPTS;
+ mFlags = 0;
+ mFilter.clear();
- return TRUE;
+ return TRUE;
}
// static
void LLFloaterTopObjects::setMode(U32 mode)
{
- LLFloaterTopObjects* instance = LLFloaterReg::getTypedInstance<LLFloaterTopObjects>("top_objects");
- if(!instance) return;
- instance->mCurrentMode = mode;
+ LLFloaterTopObjects* instance = LLFloaterReg::getTypedInstance<LLFloaterTopObjects>("top_objects");
+ if(!instance) return;
+ instance->mCurrentMode = mode;
}
-// static
+// static
void LLFloaterTopObjects::handle_land_reply(LLMessageSystem* msg, void** data)
{
LLFloaterTopObjects* instance = LLFloaterReg::getTypedInstance<LLFloaterTopObjects>("top_objects");
if(instance && instance->isInVisibleChain())
{
- instance->handleReply(msg, data);
- //HACK: for some reason sometimes top scripts originally comes back
- //with no results even though they're there
- if (!instance->mObjectListIDs.size() && !instance->mInitialized)
- {
- instance->onRefresh();
- instance->mInitialized = TRUE;
- }
- }
- else
- {
- LLFloaterRegionInfo* region_info_floater = LLFloaterReg::getTypedInstance<LLFloaterRegionInfo>("region_info");
- if(region_info_floater)
- {
- region_info_floater->enableTopButtons();
- }
- }
+ instance->handleReply(msg, data);
+ //HACK: for some reason sometimes top scripts originally comes back
+ //with no results even though they're there
+ if (!instance->mObjectListIDs.size() && !instance->mInitialized)
+ {
+ instance->onRefresh();
+ instance->mInitialized = TRUE;
+ }
+ }
+ else
+ {
+ LLFloaterRegionInfo* region_info_floater = LLFloaterReg::getTypedInstance<LLFloaterRegionInfo>("region_info");
+ if(region_info_floater)
+ {
+ region_info_floater->enableTopButtons();
+ }
+ }
}
void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
{
U32 request_flags;
- U32 total_count;
- U64 total_memory = 0;
-
- msg->getU32Fast(_PREHASH_RequestData, _PREHASH_RequestFlags, request_flags);
- msg->getU32Fast(_PREHASH_RequestData, _PREHASH_TotalObjectCount, total_count);
- msg->getU32Fast(_PREHASH_RequestData, _PREHASH_ReportType, mCurrentMode);
-
- LLScrollListCtrl *list = getChild<LLScrollListCtrl>("objects_list");
-
- S32 block_count = msg->getNumberOfBlocks("ReportData");
- for (S32 block = 0; block < block_count; ++block)
- {
- U32 task_local_id;
- U32 time_stamp = 0;
- LLUUID task_id;
- F32 location_x, location_y, location_z;
- F32 score;
- std::string name_buf;
- std::string owner_buf;
- std::string parcel_buf("unknown");
- F32 mono_score = 0.f;
- bool have_extended_data = false;
- S32 public_urls = 0;
- F32 script_memory = 0.f;
-
- msg->getU32Fast(_PREHASH_ReportData, _PREHASH_TaskLocalID, task_local_id, block);
- msg->getUUIDFast(_PREHASH_ReportData, _PREHASH_TaskID, task_id, block);
- msg->getF32Fast(_PREHASH_ReportData, _PREHASH_LocationX, location_x, block);
- msg->getF32Fast(_PREHASH_ReportData, _PREHASH_LocationY, location_y, block);
- msg->getF32Fast(_PREHASH_ReportData, _PREHASH_LocationZ, location_z, block);
- msg->getF32Fast(_PREHASH_ReportData, _PREHASH_Score, score, block);
- msg->getStringFast(_PREHASH_ReportData, _PREHASH_TaskName, name_buf, block);
- msg->getStringFast(_PREHASH_ReportData, _PREHASH_OwnerName, owner_buf, block);
-
- if(msg->has("DataExtended"))
- {
- have_extended_data = true;
- msg->getU32("DataExtended", "TimeStamp", time_stamp, block);
- msg->getF32("DataExtended", "MonoScore", mono_score, block);
- msg->getS32("DataExtended", "PublicURLs", public_urls, block);
-
- std::string parcel_name;
- F32 script_size = 0.f;
- msg->getString("DataExtended", "ParcelName", parcel_name, block);
- msg->getF32("DataExtended", "Size", script_size, block);
- if (parcel_name.size() > 0 || script_size > 0)
- {
- parcel_buf = parcel_name;
- script_memory = script_size;
- total_memory += script_size;
- }
- }
-
- LLSD element;
-
- element["id"] = task_id;
-
- LLSD columns;
- S32 column_num = 0;
- columns[column_num]["column"] = "score";
- columns[column_num]["value"] = llformat("%0.3f", score);
- columns[column_num++]["font"] = "SANSSERIF";
-
- columns[column_num]["column"] = "name";
- columns[column_num]["value"] = name_buf;
- columns[column_num++]["font"] = "SANSSERIF";
-
- // Owner names can have trailing spaces sent from server
- LLStringUtil::trim(owner_buf);
-
- // *TODO: Send owner_id from server and look up display name
- owner_buf = LLCacheName::buildUsername(owner_buf);
-
- columns[column_num]["column"] = "owner";
- columns[column_num]["value"] = owner_buf;
- columns[column_num++]["font"] = "SANSSERIF";
-
- columns[column_num]["column"] = "location";
- columns[column_num]["value"] = llformat("<%0.f, %0.f, %0.f>", location_x, location_y, location_z);
- columns[column_num++]["font"] = "SANSSERIF";
-
- columns[column_num]["column"] = "parcel";
- columns[column_num]["value"] = parcel_buf;
- columns[column_num++]["font"] = "SANSSERIF";
-
- columns[column_num]["column"] = "time";
- columns[column_num]["type"] = "date";
- columns[column_num]["value"] = LLDate((time_t)time_stamp);
- columns[column_num++]["font"] = "SANSSERIF";
-
- if (mCurrentMode == STAT_REPORT_TOP_SCRIPTS
- && have_extended_data)
- {
- columns[column_num]["column"] = "memory";
- columns[column_num]["value"] = llformat("%0.0f", (script_memory / 1024.f));
- columns[column_num++]["font"] = "SANSSERIF";
-
- columns[column_num]["column"] = "URLs";
- columns[column_num]["value"] = llformat("%d", public_urls);
- columns[column_num++]["font"] = "SANSSERIF";
- }
- element["columns"] = columns;
- list->addElement(element);
-
- mObjectListData.append(element);
- mObjectListIDs.push_back(task_id);
-
- mtotalScore += score;
- }
-
- if (total_count == 0 && list->getItemCount() == 0)
- {
- list->setCommentText(getString("none_descriptor"));
- }
- else
- {
- list->selectFirstItem();
- }
-
- if (mCurrentMode == STAT_REPORT_TOP_SCRIPTS)
- {
- setTitle(getString("top_scripts_title"));
- list->setColumnLabel("score", getString("scripts_score_label"));
-
- LLUIString format = getString("top_scripts_text");
- total_memory /= 1024;
- format.setArg("[MEMORY]", llformat("%ld", total_memory));
- format.setArg("[COUNT]", llformat("%d", total_count));
- format.setArg("[TIME]", llformat("%0.3f", mtotalScore));
- getChild<LLUICtrl>("title_text")->setValue(LLSD(format));
- list->setColumnLabel("URLs", getString("URLs"));
- list->setColumnLabel("memory", getString("memory"));
- }
- else
- {
- setTitle(getString("top_colliders_title"));
- list->setColumnLabel("score", getString("colliders_score_label"));
- list->setColumnLabel("URLs", "");
- list->setColumnLabel("memory", "");
- LLUIString format = getString("top_colliders_text");
- format.setArg("[COUNT]", llformat("%d", total_count));
- getChild<LLUICtrl>("title_text")->setValue(LLSD(format));
- }
-
- LLFloaterRegionInfo* region_info_floater = LLFloaterReg::getTypedInstance<LLFloaterRegionInfo>("region_info");
- if(region_info_floater)
- {
- region_info_floater->enableTopButtons();
- }
- getChildView("refresh_btn")->setEnabled(true);
+ U32 total_count;
+ U64 total_memory = 0;
+
+ msg->getU32Fast(_PREHASH_RequestData, _PREHASH_RequestFlags, request_flags);
+ msg->getU32Fast(_PREHASH_RequestData, _PREHASH_TotalObjectCount, total_count);
+ msg->getU32Fast(_PREHASH_RequestData, _PREHASH_ReportType, mCurrentMode);
+
+ LLScrollListCtrl *list = getChild<LLScrollListCtrl>("objects_list");
+
+ S32 block_count = msg->getNumberOfBlocks("ReportData");
+ for (S32 block = 0; block < block_count; ++block)
+ {
+ U32 task_local_id;
+ U32 time_stamp = 0;
+ LLUUID task_id;
+ F32 location_x, location_y, location_z;
+ F32 score;
+ std::string name_buf;
+ std::string owner_buf;
+ std::string parcel_buf("unknown");
+ F32 mono_score = 0.f;
+ bool have_extended_data = false;
+ S32 public_urls = 0;
+ F32 script_memory = 0.f;
+
+ msg->getU32Fast(_PREHASH_ReportData, _PREHASH_TaskLocalID, task_local_id, block);
+ msg->getUUIDFast(_PREHASH_ReportData, _PREHASH_TaskID, task_id, block);
+ msg->getF32Fast(_PREHASH_ReportData, _PREHASH_LocationX, location_x, block);
+ msg->getF32Fast(_PREHASH_ReportData, _PREHASH_LocationY, location_y, block);
+ msg->getF32Fast(_PREHASH_ReportData, _PREHASH_LocationZ, location_z, block);
+ msg->getF32Fast(_PREHASH_ReportData, _PREHASH_Score, score, block);
+ msg->getStringFast(_PREHASH_ReportData, _PREHASH_TaskName, name_buf, block);
+ msg->getStringFast(_PREHASH_ReportData, _PREHASH_OwnerName, owner_buf, block);
+
+ if(msg->has("DataExtended"))
+ {
+ have_extended_data = true;
+ msg->getU32("DataExtended", "TimeStamp", time_stamp, block);
+ msg->getF32("DataExtended", "MonoScore", mono_score, block);
+ msg->getS32("DataExtended", "PublicURLs", public_urls, block);
+
+ std::string parcel_name;
+ F32 script_size = 0.f;
+ msg->getString("DataExtended", "ParcelName", parcel_name, block);
+ msg->getF32("DataExtended", "Size", script_size, block);
+ if (parcel_name.size() > 0 || script_size > 0)
+ {
+ parcel_buf = parcel_name;
+ script_memory = script_size;
+ total_memory += script_size;
+ }
+ }
+
+ LLSD element;
+
+ element["id"] = task_id;
+
+ LLSD columns;
+ S32 column_num = 0;
+ columns[column_num]["column"] = "score";
+ columns[column_num]["value"] = llformat("%0.3f", score);
+ columns[column_num++]["font"] = "SANSSERIF";
+
+ columns[column_num]["column"] = "name";
+ columns[column_num]["value"] = name_buf;
+ columns[column_num++]["font"] = "SANSSERIF";
+
+ // Owner names can have trailing spaces sent from server
+ LLStringUtil::trim(owner_buf);
+
+ // *TODO: Send owner_id from server and look up display name
+ owner_buf = LLCacheName::buildUsername(owner_buf);
+
+ columns[column_num]["column"] = "owner";
+ columns[column_num]["value"] = owner_buf;
+ columns[column_num++]["font"] = "SANSSERIF";
+
+ columns[column_num]["column"] = "location";
+ columns[column_num]["value"] = llformat("<%0.f, %0.f, %0.f>", location_x, location_y, location_z);
+ columns[column_num++]["font"] = "SANSSERIF";
+
+ columns[column_num]["column"] = "parcel";
+ columns[column_num]["value"] = parcel_buf;
+ columns[column_num++]["font"] = "SANSSERIF";
+
+ columns[column_num]["column"] = "time";
+ columns[column_num]["type"] = "date";
+ columns[column_num]["value"] = LLDate((time_t)time_stamp);
+ columns[column_num++]["font"] = "SANSSERIF";
+
+ if (mCurrentMode == STAT_REPORT_TOP_SCRIPTS
+ && have_extended_data)
+ {
+ columns[column_num]["column"] = "memory";
+ columns[column_num]["value"] = llformat("%0.0f", (script_memory / 1024.f));
+ columns[column_num++]["font"] = "SANSSERIF";
+
+ columns[column_num]["column"] = "URLs";
+ columns[column_num]["value"] = llformat("%d", public_urls);
+ columns[column_num++]["font"] = "SANSSERIF";
+ }
+ element["columns"] = columns;
+ list->addElement(element);
+
+ mObjectListData.append(element);
+ mObjectListIDs.push_back(task_id);
+
+ mtotalScore += score;
+ }
+
+ if (total_count == 0 && list->getItemCount() == 0)
+ {
+ list->setCommentText(getString("none_descriptor"));
+ }
+ else
+ {
+ list->selectFirstItem();
+ }
+
+ if (mCurrentMode == STAT_REPORT_TOP_SCRIPTS)
+ {
+ setTitle(getString("top_scripts_title"));
+ list->setColumnLabel("score", getString("scripts_score_label"));
+
+ LLUIString format = getString("top_scripts_text");
+ total_memory /= 1024;
+ format.setArg("[MEMORY]", llformat("%ld", total_memory));
+ format.setArg("[COUNT]", llformat("%d", total_count));
+ format.setArg("[TIME]", llformat("%0.3f", mtotalScore));
+ getChild<LLUICtrl>("title_text")->setValue(LLSD(format));
+ list->setColumnLabel("URLs", getString("URLs"));
+ list->setColumnLabel("memory", getString("memory"));
+ }
+ else
+ {
+ setTitle(getString("top_colliders_title"));
+ list->setColumnLabel("score", getString("colliders_score_label"));
+ list->setColumnLabel("URLs", "");
+ list->setColumnLabel("memory", "");
+ LLUIString format = getString("top_colliders_text");
+ format.setArg("[COUNT]", llformat("%d", total_count));
+ getChild<LLUICtrl>("title_text")->setValue(LLSD(format));
+ }
+
+ LLFloaterRegionInfo* region_info_floater = LLFloaterReg::getTypedInstance<LLFloaterRegionInfo>("region_info");
+ if(region_info_floater)
+ {
+ region_info_floater->enableTopButtons();
+ }
+ getChildView("refresh_btn")->setEnabled(true);
}
void LLFloaterTopObjects::onCommitObjectsList()
{
- updateSelectionInfo();
+ updateSelectionInfo();
}
void LLFloaterTopObjects::updateSelectionInfo()
{
- LLScrollListCtrl* list = getChild<LLScrollListCtrl>("objects_list");
+ LLScrollListCtrl* list = getChild<LLScrollListCtrl>("objects_list");
- if (!list) return;
+ if (!list) return;
- LLUUID object_id = list->getCurrentID();
- if (object_id.isNull()) return;
+ LLUUID object_id = list->getCurrentID();
+ if (object_id.isNull()) return;
- std::string object_id_string = object_id.asString();
+ std::string object_id_string = object_id.asString();
- getChild<LLUICtrl>("id_editor")->setValue(LLSD(object_id_string));
- LLScrollListItem* sli = list->getFirstSelected();
- llassert(sli);
- if (sli)
- {
- getChild<LLUICtrl>("object_name_editor")->setValue(sli->getColumn(1)->getValue().asString());
- getChild<LLUICtrl>("owner_name_editor")->setValue(sli->getColumn(2)->getValue().asString());
- getChild<LLUICtrl>("parcel_name_editor")->setValue(sli->getColumn(4)->getValue().asString());
- }
+ getChild<LLUICtrl>("id_editor")->setValue(LLSD(object_id_string));
+ LLScrollListItem* sli = list->getFirstSelected();
+ llassert(sli);
+ if (sli)
+ {
+ getChild<LLUICtrl>("object_name_editor")->setValue(sli->getColumn(1)->getValue().asString());
+ getChild<LLUICtrl>("owner_name_editor")->setValue(sli->getColumn(2)->getValue().asString());
+ getChild<LLUICtrl>("parcel_name_editor")->setValue(sli->getColumn(4)->getValue().asString());
+ }
}
// static
void LLFloaterTopObjects::onDoubleClickObjectsList(void* data)
{
- LLFloaterTopObjects* self = (LLFloaterTopObjects*)data;
- self->showBeacon();
+ LLFloaterTopObjects* self = (LLFloaterTopObjects*)data;
+ self->showBeacon();
}
// static
void LLFloaterTopObjects::onClickShowBeacon()
{
- showBeacon();
+ showBeacon();
}
void LLFloaterTopObjects::returnObjects(bool all)
{
- LLMessageSystem *msg = gMessageSystem;
-
- LLViewerRegion* region = gAgent.getRegion();
- if (!region) return;
-
- LLCtrlListInterface *list = getChild<LLUICtrl>("objects_list")->getListInterface();
- if (!list || list->getItemCount() == 0) return;
-
- uuid_vec_t::iterator id_itor;
-
- bool start_message = true;
-
- for (id_itor = mObjectListIDs.begin(); id_itor != mObjectListIDs.end(); ++id_itor)
- {
- LLUUID task_id = *id_itor;
- if (!all && !list->isSelected(task_id))
- {
- // Selected only
- continue;
- }
- if (start_message)
- {
- msg->newMessageFast(_PREHASH_ParcelReturnObjects);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID,gAgent.getSessionID());
- msg->nextBlockFast(_PREHASH_ParcelData);
- msg->addS32Fast(_PREHASH_LocalID, -1); // Whole region
- msg->addS32Fast(_PREHASH_ReturnType, RT_NONE);
- start_message = false;
- }
-
- msg->nextBlockFast(_PREHASH_TaskIDs);
- msg->addUUIDFast(_PREHASH_TaskID, task_id);
-
- if (msg->isSendFullFast(_PREHASH_TaskIDs))
- {
- msg->sendReliable(region->getHost());
- start_message = true;
- }
- }
-
- if (!start_message)
- {
- msg->sendReliable(region->getHost());
- }
+ LLMessageSystem *msg = gMessageSystem;
+
+ LLViewerRegion* region = gAgent.getRegion();
+ if (!region) return;
+
+ LLCtrlListInterface *list = getChild<LLUICtrl>("objects_list")->getListInterface();
+ if (!list || list->getItemCount() == 0) return;
+
+ uuid_vec_t::iterator id_itor;
+
+ bool start_message = true;
+
+ for (id_itor = mObjectListIDs.begin(); id_itor != mObjectListIDs.end(); ++id_itor)
+ {
+ LLUUID task_id = *id_itor;
+ if (!all && !list->isSelected(task_id))
+ {
+ // Selected only
+ continue;
+ }
+ if (start_message)
+ {
+ msg->newMessageFast(_PREHASH_ParcelReturnObjects);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUIDFast(_PREHASH_SessionID,gAgent.getSessionID());
+ msg->nextBlockFast(_PREHASH_ParcelData);
+ msg->addS32Fast(_PREHASH_LocalID, -1); // Whole region
+ msg->addS32Fast(_PREHASH_ReturnType, RT_NONE);
+ start_message = false;
+ }
+
+ msg->nextBlockFast(_PREHASH_TaskIDs);
+ msg->addUUIDFast(_PREHASH_TaskID, task_id);
+
+ if (msg->isSendFullFast(_PREHASH_TaskIDs))
+ {
+ msg->sendReliable(region->getHost());
+ start_message = true;
+ }
+ }
+
+ if (!start_message)
+ {
+ msg->sendReliable(region->getHost());
+ }
}
//static
bool LLFloaterTopObjects::callbackReturnAll(const LLSD& notification, const LLSD& response)
{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- LLFloaterTopObjects* instance = LLFloaterReg::getTypedInstance<LLFloaterTopObjects>("top_objects");
- if(!instance) return false;
- if (option == 0)
- {
- instance->returnObjects(true);
- }
- return false;
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ LLFloaterTopObjects* instance = LLFloaterReg::getTypedInstance<LLFloaterTopObjects>("top_objects");
+ if(!instance) return false;
+ if (option == 0)
+ {
+ instance->returnObjects(true);
+ }
+ return false;
}
void LLFloaterTopObjects::onReturnAll()
-{
- LLNotificationsUtil::add("ReturnAllTopObjects", LLSD(), LLSD(), &callbackReturnAll);
+{
+ LLNotificationsUtil::add("ReturnAllTopObjects", LLSD(), LLSD(), &callbackReturnAll);
}
void LLFloaterTopObjects::onReturnSelected()
{
- returnObjects(false);
+ returnObjects(false);
}
void LLFloaterTopObjects::clearList()
{
- LLCtrlListInterface *list = childGetListInterface("objects_list");
-
- if (list)
- {
- list->operateOnAll(LLCtrlListInterface::OP_DELETE);
- }
+ LLCtrlListInterface *list = childGetListInterface("objects_list");
+
+ if (list)
+ {
+ list->operateOnAll(LLCtrlListInterface::OP_DELETE);
+ }
- mObjectListData.clear();
- mObjectListIDs.clear();
- mtotalScore = 0.f;
+ mObjectListData.clear();
+ mObjectListIDs.clear();
+ mtotalScore = 0.f;
onSelectionChanged();
}
@@ -432,86 +432,86 @@ void LLFloaterTopObjects::clearList()
void LLFloaterTopObjects::onRefresh()
{
- U32 mode = STAT_REPORT_TOP_SCRIPTS;
- U32 flags = 0;
- std::string filter = "";
-
- mode = mCurrentMode;
- flags = mFlags;
- filter = mFilter;
- clearList();
-
- LLMessageSystem *msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_LandStatRequest);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
- msg->nextBlockFast(_PREHASH_RequestData);
- msg->addU32Fast(_PREHASH_ReportType, mode);
- msg->addU32Fast(_PREHASH_RequestFlags, flags);
- msg->addStringFast(_PREHASH_Filter, filter);
- msg->addS32Fast(_PREHASH_ParcelLocalID, 0);
-
- LLFloaterRegionInfo* region_info_floater = LLFloaterReg::getTypedInstance<LLFloaterRegionInfo>("region_info");
- if(region_info_floater)
- {
- region_info_floater->disableTopButtons();
- }
- disableRefreshBtn();
-
- msg->sendReliable(gAgent.getRegionHost());
-
- mFilter.clear();
- mFlags = 0;
+ U32 mode = STAT_REPORT_TOP_SCRIPTS;
+ U32 flags = 0;
+ std::string filter = "";
+
+ mode = mCurrentMode;
+ flags = mFlags;
+ filter = mFilter;
+ clearList();
+
+ LLMessageSystem *msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_LandStatRequest);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
+ msg->nextBlockFast(_PREHASH_RequestData);
+ msg->addU32Fast(_PREHASH_ReportType, mode);
+ msg->addU32Fast(_PREHASH_RequestFlags, flags);
+ msg->addStringFast(_PREHASH_Filter, filter);
+ msg->addS32Fast(_PREHASH_ParcelLocalID, 0);
+
+ LLFloaterRegionInfo* region_info_floater = LLFloaterReg::getTypedInstance<LLFloaterRegionInfo>("region_info");
+ if(region_info_floater)
+ {
+ region_info_floater->disableTopButtons();
+ }
+ disableRefreshBtn();
+
+ msg->sendReliable(gAgent.getRegionHost());
+
+ mFilter.clear();
+ mFlags = 0;
}
void LLFloaterTopObjects::disableRefreshBtn()
{
- getChildView("refresh_btn")->setEnabled(false);
+ getChildView("refresh_btn")->setEnabled(false);
}
void LLFloaterTopObjects::onGetByObjectName()
{
- mFlags = STAT_FILTER_BY_OBJECT;
- mFilter = getChild<LLUICtrl>("object_name_editor")->getValue().asString();
- onRefresh();
+ mFlags = STAT_FILTER_BY_OBJECT;
+ mFilter = getChild<LLUICtrl>("object_name_editor")->getValue().asString();
+ onRefresh();
}
void LLFloaterTopObjects::onGetByOwnerName()
{
- mFlags = STAT_FILTER_BY_OWNER;
- mFilter = getChild<LLUICtrl>("owner_name_editor")->getValue().asString();
- onRefresh();
+ mFlags = STAT_FILTER_BY_OWNER;
+ mFilter = getChild<LLUICtrl>("owner_name_editor")->getValue().asString();
+ onRefresh();
}
void LLFloaterTopObjects::onGetByParcelName()
{
- mFlags = STAT_FILTER_BY_PARCEL_NAME;
- mFilter = getChild<LLUICtrl>("parcel_name_editor")->getValue().asString();
- onRefresh();
+ mFlags = STAT_FILTER_BY_PARCEL_NAME;
+ mFilter = getChild<LLUICtrl>("parcel_name_editor")->getValue().asString();
+ onRefresh();
}
void LLFloaterTopObjects::showBeacon()
{
- LLScrollListCtrl* list = getChild<LLScrollListCtrl>("objects_list");
- if (!list) return;
+ LLScrollListCtrl* list = getChild<LLScrollListCtrl>("objects_list");
+ if (!list) return;
- LLScrollListItem* first_selected = list->getFirstSelected();
- if (!first_selected) return;
+ LLScrollListItem* first_selected = list->getFirstSelected();
+ if (!first_selected) return;
- std::string name = first_selected->getColumn(1)->getValue().asString();
- std::string pos_string = first_selected->getColumn(3)->getValue().asString();
+ std::string name = first_selected->getColumn(1)->getValue().asString();
+ std::string pos_string = first_selected->getColumn(3)->getValue().asString();
- F32 x, y, z;
- S32 matched = sscanf(pos_string.c_str(), "<%g,%g,%g>", &x, &y, &z);
- if (matched != 3) return;
+ F32 x, y, z;
+ S32 matched = sscanf(pos_string.c_str(), "<%g,%g,%g>", &x, &y, &z);
+ if (matched != 3) return;
- LLVector3 pos_agent(x, y, z);
- LLVector3d pos_global = gAgent.getPosGlobalFromAgent(pos_agent);
- std::string tooltip("");
- LLTracker::trackLocation(pos_global, name, tooltip, LLTracker::LOCATION_ITEM);
+ LLVector3 pos_agent(x, y, z);
+ LLVector3d pos_global = gAgent.getPosGlobalFromAgent(pos_agent);
+ std::string tooltip("");
+ LLTracker::trackLocation(pos_global, name, tooltip, LLTracker::LOCATION_ITEM);
}
void LLFloaterTopObjects::teleportToSelectedObject()