diff options
Diffstat (limited to 'indra/newview/llfloatertopobjects.cpp')
| -rw-r--r-- | indra/newview/llfloatertopobjects.cpp | 676 | 
1 files changed, 338 insertions, 338 deletions
diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp index 5192e62fe5..64b22c4bb1 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()  | 
