diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-02-05 22:04:40 +0200 | 
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-02-05 22:04:40 +0200 | 
| commit | e3e1672ac40dd4f1f4e458ed09cd7279f0a45fc3 (patch) | |
| tree | 8e64e6074c11005fbb1dac606c176e4470de03e4 /indra/newview | |
| parent | aa52c852d600aa6b2ea17cdd86f53972c95cca4a (diff) | |
| parent | 6762f60d78277cf27afd8353aa531afb26bd560c (diff) | |
Merge branch 'DRTVWR-599-maint-Z' into release/maint-yz
# Conflicts:
#	indra/newview/llchiclet.h
Diffstat (limited to 'indra/newview')
69 files changed, 249 insertions, 165 deletions
| diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index fc83c16e5d..d59a467e51 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1575,34 +1575,15 @@ endif (WINDOWS)  # Add the xui files. This is handy for searching for xui elements  # from within the IDE. -set(viewer_XUI_FILES -    skins/default/colors.xml -    skins/default/default_languages.xml -    skins/default/textures/textures.xml -    ) -file(GLOB DEFAULT_XUI_FILE_GLOB_LIST -     ${CMAKE_CURRENT_SOURCE_DIR}/skins/*/xui/en/*.xml) -list(APPEND viewer_XUI_FILES ${DEFAULT_XUI_FILE_GLOB_LIST}) - -file(GLOB DEFAULT_WIDGET_FILE_GLOB_LIST -     ${CMAKE_CURRENT_SOURCE_DIR}/skins/*/xui/en/widgets/*.xml) -list(APPEND viewer_XUI_FILES ${DEFAULT_WIDGET_FILE_GLOB_LIST}) - -# Cannot append empty lists in CMake, wait until we have files here. -#file(GLOB SILVER_WIDGET_FILE_GLOB_LIST -#     ${CMAKE_CURRENT_SOURCE_DIR}/skins/silver/xui/en-us/widgets/*.xml) -#list(APPEND viewer_XUI_FILES ${SILVER_WIDGET_FILE_GLOB_LIST}) - -list(SORT viewer_XUI_FILES) - -source_group("XUI Files" FILES ${viewer_XUI_FILES}) - -set_source_files_properties(${viewer_XUI_FILES} +file(GLOB_RECURSE viewer_XUI_FILES LIST_DIRECTORIES FALSE +    ${CMAKE_CURRENT_SOURCE_DIR}/skins/*.xml) +source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/skins PREFIX "XUI Files" FILES ${viewer_XUI_FILES}) +set_source_files_properties(${viewer_XUI_FILES}                               PROPERTIES HEADER_FILE_ONLY TRUE) -  list(APPEND viewer_SOURCE_FILES ${viewer_XUI_FILES}) -file(GLOB_RECURSE viewer_SHADER_FILES LIST_DIRECTORIES TRUE +# Add the shader sources +file(GLOB_RECURSE viewer_SHADER_FILES LIST_DIRECTORIES FALSE      ${CMAKE_CURRENT_SOURCE_DIR}/app_settings/shaders/*.glsl)  source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/app_settings/shaders PREFIX "Shaders" FILES ${viewer_SHADER_FILES})  set_source_files_properties(${viewer_SHADER_FILES}  @@ -1612,6 +1593,7 @@ list(APPEND viewer_SOURCE_FILES ${viewer_SHADER_FILES})  set(viewer_APPSETTINGS_FILES      app_settings/anim.ini +    app_settings/autoreplace.xml      app_settings/cmd_line.xml      app_settings/commands.xml      app_settings/grass.xml diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index b7f452904a..d1e1815a79 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -95,7 +95,6 @@  #include "llworld.h"  #include "llworldmap.h"  #include "stringize.h" -#include "boost/foreach.hpp"  #include "llcorehttputil.h"  #include "lluiusage.h" @@ -2329,7 +2328,7 @@ void LLAgent::endAnimationUpdateUI()  			LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");  			LLFloaterIMContainer::floater_list_t conversations;  			im_box->getDetachedConversationFloaters(conversations); -			BOOST_FOREACH(LLFloater* conversation, conversations) +			for (LLFloater* conversation : conversations)  			{  				LL_INFOS() << "skip_list.insert(session_floater): " << conversation->getTitle() << LL_ENDL;  				skip_list.insert(conversation); diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index fd3a9b1d7b..43b4457bf5 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -61,7 +61,7 @@ class LLTeleportRequest; -typedef boost::shared_ptr<LLTeleportRequest> LLTeleportRequestPtr; +typedef std::shared_ptr<LLTeleportRequest> LLTeleportRequestPtr;  //--------------------------------------------------------------------  // Types @@ -131,7 +131,7 @@ public:  private:  	bool			mInitialized;  	bool			mFirstLogin; -	boost::shared_ptr<LLAgentListener> mListener; +	std::shared_ptr<LLAgentListener> mListener;  	//--------------------------------------------------------------------  	// Session diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp index 8977b145d1..0d0d6e7e46 100644 --- a/indra/newview/llagentcamera.cpp +++ b/indra/newview/llagentcamera.cpp @@ -1779,7 +1779,7 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)  		head_offset.clearVec();  		F32 fixup; -		if (gAgentAvatarp->hasPelvisFixup(fixup)) +        if (gAgentAvatarp->hasPelvisFixup(fixup) && !gAgentAvatarp->isSitting())  		{  			head_offset[VZ] -= fixup;  		} diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 4c3a9229d2..c84657cf7a 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -27,7 +27,6 @@  #include "llviewerprecompiledheaders.h"  #include <boost/lexical_cast.hpp> -#include <boost/foreach.hpp>  #include "llaccordionctrltab.h"  #include "llagent.h"  #include "llagentcamera.h" @@ -1647,7 +1646,7 @@ void LLAppearanceMgr::removeOutfitPhoto(const LLUUID& outfit_id)          sub_cat_array,          outfit_item_array,          LLInventoryModel::EXCLUDE_TRASH); -    BOOST_FOREACH(LLViewerInventoryItem* outfit_item, outfit_item_array) +    for (LLViewerInventoryItem* outfit_item : outfit_item_array)      {          LLViewerInventoryItem* linked_item = outfit_item->getLinkedItem();          if (linked_item != NULL) @@ -3438,7 +3437,7 @@ void update_base_outfit_after_ordering()  								sub_cat_array,  								outfit_item_array,  								LLInventoryModel::EXCLUDE_TRASH); -	BOOST_FOREACH(LLViewerInventoryItem* outfit_item, outfit_item_array) +	for (LLViewerInventoryItem* outfit_item : outfit_item_array)  	{  		LLViewerInventoryItem* linked_item = outfit_item->getLinkedItem();  		if (linked_item != NULL) @@ -3742,7 +3741,7 @@ LLSD LLAppearanceMgr::dumpCOF() const  			LLUUID linked_asset_id(linked_item->getAssetUUID());  			md5.update((unsigned char*)linked_asset_id.mData, 16);  			U32 flags = linked_item->getFlags(); -			md5.update(boost::lexical_cast<std::string>(flags)); +			md5.update(std::to_string(flags));  		}  		else if (LLAssetType::AT_LINK_FOLDER != inv_item->getActualType())  		{ diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index ec411a680f..96986ae046 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -143,7 +143,6 @@  // Third party library includes  #include <boost/bind.hpp> -#include <boost/foreach.hpp>  #include <boost/algorithm/string.hpp>  #include <boost/regex.hpp>  #include <boost/throw_exception.hpp> @@ -1207,7 +1206,7 @@ bool LLAppViewer::init()              LLSD item(LeapCommand);              LeapCommand.append(item);          } -        BOOST_FOREACH(const std::string& leap, llsd::inArray(LeapCommand)) +        for (const auto& leap : llsd::inArray(LeapCommand))          {              LL_INFOS("InitInfo") << "processing --leap \"" << leap << '"' << LL_ENDL;              // We don't have any better description of this plugin than the @@ -2357,7 +2356,7 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,  		LL_ERRS() << "Invalid settings location list" << LL_ENDL;  	} -	BOOST_FOREACH(const SettingsGroup& group, mSettingsLocationList->groups) +	for (const SettingsGroup& group : mSettingsLocationList->groups)  	{  		// skip settings groups that aren't the one we requested  		if (group.name() != location_key) continue; @@ -2369,7 +2368,7 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,  			return false;  		} -		BOOST_FOREACH(const SettingsFile& file, group.files) +		for (const SettingsFile& file : group.files)  		{  			LL_INFOS("Settings") << "Attempting to load settings for the group " << file.name()  			    << " - from location " << location_key << LL_ENDL; @@ -2433,11 +2432,11 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,  std::string LLAppViewer::getSettingsFilename(const std::string& location_key,  											 const std::string& file)  { -	BOOST_FOREACH(const SettingsGroup& group, mSettingsLocationList->groups) +	for (const SettingsGroup& group : mSettingsLocationList->groups)  	{  		if (group.name() == location_key)  		{ -			BOOST_FOREACH(const SettingsFile& settings_file, group.files) +			for (const SettingsFile& settings_file : group.files)  			{  				if (settings_file.name() == file)  				{ @@ -3017,7 +3016,7 @@ void LLAppViewer::initStrings()  	// Now that we've set "[sourceid]", have to go back through  	// default_trans_args and reinitialize all those other keys because some  	// of them, in turn, reference "[sourceid]". -	BOOST_FOREACH(std::string key, default_trans_args) +	for (const std::string& key : default_trans_args)  	{  		std::string brackets(key), nobrackets(key);  		// Invalid to inspect key[0] if key is empty(). But then, the entire @@ -4682,16 +4681,23 @@ void LLAppViewer::idle()  		// When appropriate, update agent location to the simulator.  		F32 agent_update_time = agent_update_timer.getElapsedTimeF32();  		F32 agent_force_update_time = mLastAgentForceUpdate + agent_update_time; -		BOOL force_update = gAgent.controlFlagsDirty() -							|| (mLastAgentControlFlags != gAgent.getControlFlags()) -							|| (agent_force_update_time > (1.0f / (F32) AGENT_FORCE_UPDATES_PER_SECOND)); -		if (force_update || (agent_update_time > (1.0f / (F32) AGENT_UPDATES_PER_SECOND))) +        bool timed_out = agent_update_time > (1.0f / (F32)AGENT_UPDATES_PER_SECOND); +        BOOL force_send = +            // if there is something to send +            (gAgent.controlFlagsDirty() && timed_out) +            // if something changed +            || (mLastAgentControlFlags != gAgent.getControlFlags()) +            // keep alive +            || (agent_force_update_time > (1.0f / (F32) AGENT_FORCE_UPDATES_PER_SECOND)); +        // timing out doesn't warranty that an update will be sent, +        // just that it will be checked. +		if (force_send || timed_out)  		{  			LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;  			// Send avatar and camera info  			mLastAgentControlFlags = gAgent.getControlFlags(); -			mLastAgentForceUpdate = force_update ? 0 : agent_force_update_time; -			send_agent_update(force_update); +			mLastAgentForceUpdate = force_send ? 0 : agent_force_update_time; +			send_agent_update(force_send);  			agent_update_timer.reset();  		}  	} diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp index eb2c156ca5..b11786a451 100644 --- a/indra/newview/llcompilequeue.cpp +++ b/indra/newview/llcompilequeue.cpp @@ -73,7 +73,7 @@ namespace      class ObjectInventoryFetcher: public LLVOInventoryListener      {      public: -        typedef boost::shared_ptr<ObjectInventoryFetcher> ptr_t; +        typedef std::shared_ptr<ObjectInventoryFetcher> ptr_t;          ObjectInventoryFetcher(LLEventPump &pump, LLViewerObject* object, void* user_data) :              mPump(pump), diff --git a/indra/newview/llconversationlog.cpp b/indra/newview/llconversationlog.cpp index a696c99a82..3c59ca046d 100644 --- a/indra/newview/llconversationlog.cpp +++ b/indra/newview/llconversationlog.cpp @@ -32,7 +32,6 @@  #include "llnotificationsutil.h"  #include "lltrans.h" -#include <boost/foreach.hpp>  #include "boost/lexical_cast.hpp"  const S32Days CONVERSATION_LIFETIME = (S32Days)30; // lifetime of LLConversation is 30 days by spec @@ -392,7 +391,7 @@ void LLConversationLog::deleteBackupLogs()  	std::vector<std::string> backup_logs;  	getListOfBackupLogs(backup_logs); -	BOOST_FOREACH(const std::string& fullpath, backup_logs) +	for (const std::string& fullpath : backup_logs)  	{  		LLFile::remove(fullpath);  	} @@ -434,7 +433,7 @@ bool LLConversationLog::moveLog(const std::string &originDirectory, const std::s  			while(LLFile::isfile(backupFileName))  			{  				++backupFileCount; -				backupFileName = targetDirectory + ".backup" + boost::lexical_cast<std::string>(backupFileCount); +				backupFileName = targetDirectory + ".backup" + std::to_string(backupFileCount);  			}  			//Rename the file to its backup name so it is not overwritten diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp index 9ec4fb085b..fa5248920d 100644 --- a/indra/newview/llconversationmodel.cpp +++ b/indra/newview/llconversationmodel.cpp @@ -37,8 +37,6 @@  #include "llimview.h" //For LLIMModel  #include "lltrans.h" -#include <boost/foreach.hpp> -  //  // Conversation items : common behaviors  // @@ -293,8 +291,7 @@ void LLConversationItemSession::updateName(LLConversationItemParticipant* partic  		// In the case of a P2P conversation, we need to grab the name of the other participant in the session instance itself  		// as we do not create participants for such a session. -		LLFolderViewModelItem * itemp; -		BOOST_FOREACH(itemp, mChildren) +		for (auto itemp : mChildren)  		{  			LLConversationItem* current_participant = dynamic_cast<LLConversationItem*>(itemp);  			// Add the avatar uuid to the list (except if it's the own agent uuid) diff --git a/indra/newview/llexternaleditor.cpp b/indra/newview/llexternaleditor.cpp index b66eb754a4..b0d88159c1 100644 --- a/indra/newview/llexternaleditor.cpp +++ b/indra/newview/llexternaleditor.cpp @@ -32,7 +32,6 @@  #include "llprocess.h"  #include "llsdutil.h"  #include "llstring.h" -#include <boost/foreach.hpp>  // static  const std::string LLExternalEditor::sFilenameMarker = "%s"; @@ -93,7 +92,7 @@ LLExternalEditor::EErrorCode LLExternalEditor::run(const std::string& file_path)  	params.executable = mProcessParams.executable;  	// Substitute the filename marker in the command with the actual passed file name. -	BOOST_FOREACH(const std::string& arg, mProcessParams.args) +	for (const std::string& arg : mProcessParams.args)  	{  		std::string fixed(arg);  		LLStringUtil::replaceString(fixed, sFilenameMarker, file_path); diff --git a/indra/newview/llfloatereditsky.cpp b/indra/newview/llfloatereditsky.cpp index 2d5e86869d..fa51143f3a 100644 --- a/indra/newview/llfloatereditsky.cpp +++ b/indra/newview/llfloatereditsky.cpp @@ -84,7 +84,7 @@ BOOL LLFloaterEditSky::postBuild()  	mSkyPresetCombo = getChild<LLComboBox>("sky_preset_combo");  	mMakeDefaultCheckBox = getChild<LLCheckBoxCtrl>("make_default_cb");  	mSaveButton = getChild<LLButton>("save"); -    mSkyAdapter = boost::make_shared<LLSkySettingsAdapter>(); +    mSkyAdapter = std::make_shared<LLSkySettingsAdapter>();      LLEnvironment::instance().setSkyListChange(boost::bind(&LLFloaterEditSky::onSkyPresetListChange, this)); diff --git a/indra/newview/llfloatereditwater.cpp b/indra/newview/llfloatereditwater.cpp index c44ae7faca..4a6268435b 100644 --- a/indra/newview/llfloatereditwater.cpp +++ b/indra/newview/llfloatereditwater.cpp @@ -71,7 +71,7 @@ BOOL LLFloaterEditWater::postBuild()  	mMakeDefaultCheckBox = getChild<LLCheckBoxCtrl>("make_default_cb");  	mSaveButton = getChild<LLButton>("save"); -    mWaterAdapter = boost::make_shared<LLWatterSettingsAdapter>(); +    mWaterAdapter = std::make_shared<LLWatterSettingsAdapter>();      LLEnvironment::instance().setWaterListChange(boost::bind(&LLFloaterEditWater::onWaterPresetListChange, this)); diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index f997dc9910..8f12abe7a5 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -57,7 +57,6 @@  #include "llsdserialize.h"  #include "llviewermenu.h" // is_agent_mappable  #include "llviewerobjectlist.h" -#include "boost/foreach.hpp"  const S32 EVENTS_PER_IDLE_LOOP_CURRENT_SESSION = 80; @@ -805,12 +804,11 @@ void LLFloaterIMContainer::setVisible(BOOL visible)  void LLFloaterIMContainer::getDetachedConversationFloaters(floater_list_t& floaters)  { -	typedef conversations_widgets_map::value_type conv_pair;  	LLFloaterIMNearbyChat *nearby_chat = LLFloaterReg::findTypedInstance<LLFloaterIMNearbyChat>("nearby_chat"); -	BOOST_FOREACH(conv_pair item, mConversationsWidgets) +	for (const auto& [key, fvi] : mConversationsWidgets)  	{ -		LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(item.second); +		LLConversationViewSession* widget = dynamic_cast<LLConversationViewSession*>(fvi);  		if (widget)  		{  			LLFloater* session_floater = widget->getSessionFloater(); diff --git a/indra/newview/llfloaterimnearbychathandler.cpp b/indra/newview/llfloaterimnearbychathandler.cpp index 4cd91c53d8..ef4b71b3af 100644 --- a/indra/newview/llfloaterimnearbychathandler.cpp +++ b/indra/newview/llfloaterimnearbychathandler.cpp @@ -453,7 +453,7 @@ void LLFloaterIMNearbyChatScreenChannel::arrangeToasts()  //-----------------------------------------------------------------------------------------------  //LLFloaterIMNearbyChatHandler  //----------------------------------------------------------------------------------------------- -boost::scoped_ptr<LLEventPump> LLFloaterIMNearbyChatHandler::sChatWatcher(new LLEventStream("LLChat")); +std::unique_ptr<LLEventPump> LLFloaterIMNearbyChatHandler::sChatWatcher(new LLEventStream("LLChat"));  LLFloaterIMNearbyChatHandler::LLFloaterIMNearbyChatHandler()  { diff --git a/indra/newview/llfloaterimnearbychathandler.h b/indra/newview/llfloaterimnearbychathandler.h index 5e6f8cde30..1849604470 100644 --- a/indra/newview/llfloaterimnearbychathandler.h +++ b/indra/newview/llfloaterimnearbychathandler.h @@ -46,7 +46,7 @@ public:  protected:  	virtual void initChannel(); -	static boost::scoped_ptr<LLEventPump> sChatWatcher; +	static std::unique_ptr<LLEventPump> sChatWatcher;  };  } diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index aa723eb3a8..6b8e2898a0 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -1016,7 +1016,6 @@ void LLFloaterPreference::onBtnCancel(const LLSD& userdata)  	if (userdata.asString() == "closeadvanced")  	{  		LLFloaterReg::hideInstance("prefs_graphics_advanced"); -		updateMaxComplexity();  	}  	else  	{ diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp index 67a205417e..b0183f072e 100644 --- a/indra/newview/llfloateruipreview.cpp +++ b/indra/newview/llfloateruipreview.cpp @@ -158,7 +158,7 @@ public:  	// typedef std::map<std::string,std::pair<std::list<std::string>,std::list<std::string> > > DiffMap; // this version copies the lists etc., and thus is bad memory-wise  	typedef std::list<std::string> StringList; -	typedef boost::shared_ptr<StringList> StringListPtr; +	typedef std::shared_ptr<StringList> StringListPtr;  	typedef std::map<std::string, std::pair<StringListPtr,StringListPtr> > DiffMap;  	DiffMap mDiffsMap;							// map, of filename to pair of list of changed element paths and list of errors diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 61a01d7418..ce4a032b27 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -3162,9 +3162,11 @@ void LLIMMgr::addMessage(              // Fetch group chat history, enabled by default.              if (gSavedPerAccountSettings.getBOOL("FetchGroupChatHistory"))              { -                std::string chat_url = gAgent.getRegion()->getCapability("ChatSessionRequest"); -                LLCoros::instance().launch("chatterBoxHistoryCoro", -                    boost::bind(&chatterBoxHistoryCoro, chat_url, session_id, from, msg, timestamp)); +                std::string chat_url = gAgent.getRegionCapability("ChatSessionRequest"); +                if (!chat_url.empty()) +                { +                    LLCoros::instance().launch("chatterBoxHistoryCoro", boost::bind(&chatterBoxHistoryCoro, chat_url, session_id, from, msg, timestamp)); +                }              }  			//Play sound for new conversations diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index f806614e29..9c741daef6 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -3030,7 +3030,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,  	return accept;  } -void warn_move_inventory(LLViewerObject* object, boost::shared_ptr<LLMoveInv> move_inv) +void warn_move_inventory(LLViewerObject* object, std::shared_ptr<LLMoveInv> move_inv)  {  	const char* dialog = NULL;  	if (object->flagScripted()) @@ -3043,7 +3043,7 @@ void warn_move_inventory(LLViewerObject* object, boost::shared_ptr<LLMoveInv> mo  	}      static LLNotificationPtr notification_ptr; -    static boost::shared_ptr<LLMoveInv> inv_ptr; +    static std::shared_ptr<LLMoveInv> inv_ptr;      // Notification blocks user from interacting with inventories so everything that comes after first message      // is part of this message - don'r show it again @@ -3156,7 +3156,7 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,  	if(drop && accept)  	{  		it = inventory_objects.begin(); -        boost::shared_ptr<LLMoveInv> move_inv(new LLMoveInv); +        std::shared_ptr<LLMoveInv> move_inv(new LLMoveInv);  		move_inv->mObjectID = object_id;  		move_inv->mCategoryID = category_id;  		move_inv->mCallback = callback; @@ -5015,7 +5015,7 @@ LLFontGL::StyleFlags LLMarketplaceFolderBridge::getLabelStyle() const  // helper stuff -bool move_task_inventory_callback(const LLSD& notification, const LLSD& response, boost::shared_ptr<LLMoveInv> move_inv) +bool move_task_inventory_callback(const LLSD& notification, const LLSD& response, std::shared_ptr<LLMoveInv> move_inv)  {  	LLFloaterOpenObject::LLCatAndWear* cat_and_wear = (LLFloaterOpenObject::LLCatAndWear* )move_inv->mUserData;  	LLViewerObject* object = gObjectList.findObject(move_inv->mObjectID); @@ -5489,7 +5489,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,  		if (accept && drop)  		{              LLUUID item_id = inv_item->getUUID(); -            boost::shared_ptr<LLMoveInv> move_inv (new LLMoveInv()); +            std::shared_ptr<LLMoveInv> move_inv (new LLMoveInv());  			move_inv->mObjectID = inv_item->getParentUUID();  			two_uuids_t item_pair(mUUID, item_id);  			move_inv->mMoveList.push_back(item_pair); diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h index 3cbbd68e51..6f06f3b36d 100644 --- a/indra/newview/llinventorybridge.h +++ b/indra/newview/llinventorybridge.h @@ -794,7 +794,7 @@ struct LLMoveInv      void* mUserData;  }; -void warn_move_inventory(LLViewerObject* object, boost::shared_ptr<LLMoveInv> move_inv); -bool move_task_inventory_callback(const LLSD& notification, const LLSD& response, boost::shared_ptr<LLMoveInv>); +void warn_move_inventory(LLViewerObject* object, std::shared_ptr<LLMoveInv> move_inv); +bool move_task_inventory_callback(const LLSD& notification, const LLSD& response, std::shared_ptr<LLMoveInv>);  #endif // LL_LLINVENTORYBRIDGE_H diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp index 6662f14b12..5df9b71fc3 100644 --- a/indra/newview/llinventoryfunctions.cpp +++ b/indra/newview/llinventoryfunctions.cpp @@ -91,8 +91,6 @@  #include "llvoavatarself.h"  #include "llwearablelist.h" -#include <boost/foreach.hpp> -  BOOL LLInventoryState::sWearNewClothing = FALSE;  LLUUID LLInventoryState::sWearNewClothingTransactionID;  std::list<LLUUID> LLInventoryAction::sMarketplaceFolders; @@ -2968,6 +2966,23 @@ bool get_selection_object_uuids(LLFolderView *root, uuid_vec_t& ids)  void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root, const std::string& action, BOOL user_confirm)  {  	std::set<LLFolderViewItem*> selected_items = root->getSelectionList(); +    if (selected_items.empty() +        && action != "wear" +        && action != "wear_add" +        && !isRemoveAction(action)) +    { +        // Was item removed while user was checking menu? +        // "wear" and removal exlusions are due to use of +        // getInventorySelectedUUIDs() below +        LL_WARNS("Inventory") << "Menu tried to operate on empty selection" << LL_ENDL; + +        if (("copy" == action) || ("cut" == action)) +        { +            LLClipboard::instance().reset(); +        } + +        return; +    }      // Prompt the user and check for authorization for some marketplace active listing edits  	if (user_confirm && (("delete" == action) || ("cut" == action) || ("rename" == action) || ("properties" == action) || ("task_properties" == action) || ("open" == action))) diff --git a/indra/newview/llinventorygallery.cpp b/indra/newview/llinventorygallery.cpp index d2056fb44d..230ee86fb7 100644 --- a/indra/newview/llinventorygallery.cpp +++ b/indra/newview/llinventorygallery.cpp @@ -3339,7 +3339,7 @@ BOOL dragItemIntoFolder(LLUUID folder_id, LLInventoryItem* inv_item, BOOL drop,          if (accept && drop)          { -            boost::shared_ptr<LLMoveInv> move_inv (new LLMoveInv()); +            std::shared_ptr<LLMoveInv> move_inv (new LLMoveInv());              move_inv->mObjectID = inv_item->getParentUUID();              std::pair<LLUUID, LLUUID> item_pair(folder_id, inv_item->getUUID());              move_inv->mMoveList.push_back(item_pair); diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp index 052ac50185..55a947a09d 100644 --- a/indra/newview/lllogchat.cpp +++ b/indra/newview/lllogchat.cpp @@ -42,7 +42,6 @@  #include <boost/algorithm/string/trim.hpp>  #include <boost/algorithm/string/replace.hpp>  #include <boost/regex.hpp> -#include <boost/foreach.hpp>  #if LL_MSVC  #pragma warning(push)   @@ -709,7 +708,7 @@ bool LLLogChat::moveTranscripts(const std::string originDirectory,  	std::string backupFileName;  	unsigned backupFileCount; -	BOOST_FOREACH(const std::string& fullpath, listOfFilesToMove) +	for (const std::string& fullpath : listOfFilesToMove)  	{  		backupFileCount = 0;  		newFullPath = targetDirectory + fullpath.substr(originDirectory.length(), std::string::npos); @@ -723,7 +722,7 @@ bool LLLogChat::moveTranscripts(const std::string originDirectory,  			while(LLFile::isfile(backupFileName))  			{  				++backupFileCount; -				backupFileName = newFullPath + ".backup" + boost::lexical_cast<std::string>(backupFileCount); +				backupFileName = newFullPath + ".backup" + std::to_string(backupFileCount);  			}  			//Rename the file to its backup name so it is not overwritten @@ -780,7 +779,7 @@ void LLLogChat::deleteTranscripts()  	getListOfTranscriptFiles(list_of_transcriptions);  	getListOfTranscriptBackupFiles(list_of_transcriptions); -	BOOST_FOREACH(const std::string& fullpath, list_of_transcriptions) +	for (const std::string& fullpath : list_of_transcriptions)  	{  		S32 retry_count = 0;  		while (retry_count < 5) diff --git a/indra/newview/lllogininstance.h b/indra/newview/lllogininstance.h index 2e9aab7c00..74d6890d1d 100644 --- a/indra/newview/lllogininstance.h +++ b/indra/newview/lllogininstance.h @@ -90,7 +90,7 @@ private:  	void attemptComplete() { mAttemptComplete = true; } // In the future an event? -	boost::scoped_ptr<LLLogin> mLoginModule; +	std::unique_ptr<LLLogin> mLoginModule;  	LLNotificationsInterface* mNotifications;  	std::string mLoginState; diff --git a/indra/newview/llmarketplacenotifications.cpp b/indra/newview/llmarketplacenotifications.cpp index 0886f9a990..02bd9e1f34 100644 --- a/indra/newview/llmarketplacenotifications.cpp +++ b/indra/newview/llmarketplacenotifications.cpp @@ -33,7 +33,6 @@  #include "llerror.h" -#include <boost/foreach.hpp>  #include <boost/signals2.hpp> @@ -54,7 +53,7 @@ namespace LLMarketplaceInventoryNotifications  			llassert(!no_copy_payloads.empty());  			llassert(no_copy_cb_action != NULL); -			BOOST_FOREACH(const LLSD& payload, no_copy_payloads) +			for (const LLSD& payload : no_copy_payloads)  			{  				(*no_copy_cb_action)(payload);  			} diff --git a/indra/newview/llmaterialmgr.cpp b/indra/newview/llmaterialmgr.cpp index 3b59b2f05e..577ab0048f 100644 --- a/indra/newview/llmaterialmgr.cpp +++ b/indra/newview/llmaterialmgr.cpp @@ -68,7 +68,7 @@ class LLMaterialHttpHandler : public LLHttpSDHandler  {  public:   	typedef boost::function<void(bool, const LLSD&)> CallbackFunction; -	typedef boost::shared_ptr<LLMaterialHttpHandler> ptr_t; +	typedef std::shared_ptr<LLMaterialHttpHandler> ptr_t;  	LLMaterialHttpHandler(const std::string& method, CallbackFunction cback); diff --git a/indra/newview/llmediadataclient.h b/indra/newview/llmediadataclient.h index 58f8bad3e4..8cd4793106 100644 --- a/indra/newview/llmediadataclient.h +++ b/indra/newview/llmediadataclient.h @@ -116,10 +116,10 @@ protected:  	// Request (pure virtual base class for requests in the queue)      class Request:  -        public boost::enable_shared_from_this<Request> +        public std::enable_shared_from_this<Request>      {      public: -        typedef boost::shared_ptr<Request> ptr_t; +        typedef std::shared_ptr<Request> ptr_t;          // Subclasses must implement this to build a payload for their request type.          virtual LLSD getPayload() const = 0; diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp index 01d6469010..1f909b98dc 100644 --- a/indra/newview/llmeshrepository.cpp +++ b/indra/newview/llmeshrepository.cpp @@ -411,7 +411,7 @@ namespace {  static S32 dump_num = 0;  std::string make_dump_name(std::string prefix, S32 num)  { -	return prefix + boost::lexical_cast<std::string>(num) + std::string(".xml"); +	return prefix + std::to_string(num) + std::string(".xml");  }  void dump_llsd_to_file(const LLSD& content, std::string filename);  LLSD llsd_from_file(std::string filename); @@ -572,10 +572,10 @@ S32 LLMeshRepoThread::sRequestWaterLevel = 0;  //   LLMeshUploadThread  class LLMeshHandlerBase : public LLCore::HttpHandler, -    public boost::enable_shared_from_this<LLMeshHandlerBase> +    public std::enable_shared_from_this<LLMeshHandlerBase>  {  public: -    typedef boost::shared_ptr<LLMeshHandlerBase> ptr_t; +    typedef std::shared_ptr<LLMeshHandlerBase> ptr_t;  	LOG_CLASS(LLMeshHandlerBase);  	LLMeshHandlerBase(U32 offset, U32 requested_bytes) diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index ccae1030f1..ad22e84c6e 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -220,6 +220,16 @@ LLModelPreview::~LLModelPreview()          mPreviewAvatar->markDead();          mPreviewAvatar = NULL;      } + +    mUploadData.clear(); +    mTextureSet.clear(); + +    for (U32 i = 0; i < LLModel::NUM_LODS; i++) +    { +        clearModel(i); +    } +    mBaseModel.clear(); +    mBaseScene.clear();  }  void LLModelPreview::updateDimentionsAndOffsets() diff --git a/indra/newview/llmodelpreview.h b/indra/newview/llmodelpreview.h index df7320768c..d4d5d087bd 100644 --- a/indra/newview/llmodelpreview.h +++ b/indra/newview/llmodelpreview.h @@ -310,7 +310,6 @@ protected:      vv_LLVolumeFace_t mBaseModelFacesCopy;      U32 mGroup; -    std::map<LLPointer<LLModel>, U32> mObject;      // Amount of triangles in original(base) model      U32 mMaxTriangleLimit; diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp index b06131cf38..3f6a86106a 100644 --- a/indra/newview/llnotificationmanager.cpp +++ b/indra/newview/llnotificationmanager.cpp @@ -34,9 +34,6 @@  #include "llfloaterimnearbychathandler.h"  #include "llnotifications.h" -#include <boost/bind.hpp> -#include <boost/foreach.hpp> -  using namespace LLNotificationsUI;  //-------------------------------------------------------------------------- @@ -53,15 +50,15 @@ LLNotificationManager::~LLNotificationManager()  //--------------------------------------------------------------------------  void LLNotificationManager::init()  { -	mChannels.push_back(new LLScriptHandler()); -	mChannels.push_back(new LLTipHandler()); -	mChannels.push_back(new LLGroupHandler()); -	mChannels.push_back(new LLAlertHandler("Alerts", "alert", false)); -	mChannels.push_back(new LLAlertHandler("AlertModal", "alertmodal", true)); -	mChannels.push_back(new LLOfferHandler()); -	mChannels.push_back(new LLHintHandler()); -	mChannels.push_back(new LLBrowserNotification()); -	mChannels.push_back(new LLIMHandler()); +	mChannels.emplace_back(new LLScriptHandler()); +	mChannels.emplace_back(new LLTipHandler()); +	mChannels.emplace_back(new LLGroupHandler()); +	mChannels.emplace_back(new LLAlertHandler("Alerts", "alert", false)); +	mChannels.emplace_back(new LLAlertHandler("AlertModal", "alertmodal", true)); +	mChannels.emplace_back(new LLOfferHandler()); +	mChannels.emplace_back(new LLHintHandler()); +	mChannels.emplace_back(new LLBrowserNotification()); +	mChannels.emplace_back(new LLIMHandler());  	mChatHandler = std::shared_ptr<LLFloaterIMNearbyChatHandler>(new LLFloaterIMNearbyChatHandler());  } diff --git a/indra/newview/lloutfitgallery.cpp b/indra/newview/lloutfitgallery.cpp index b26aabca4f..9bf0fde302 100644 --- a/indra/newview/lloutfitgallery.cpp +++ b/indra/newview/lloutfitgallery.cpp @@ -28,8 +28,6 @@  #include "llviewerprecompiledheaders.h" // must be first include  #include "lloutfitgallery.h" -#include <boost/foreach.hpp> -  // llcommon  #include "llcommonutils.h"  #include "llfilesystem.h" @@ -1243,7 +1241,7 @@ void LLOutfitGallery::refreshOutfit(const LLUUID& category_id)                  sub_cat_array,                  outfit_item_array,                  LLInventoryModel::EXCLUDE_TRASH); -            BOOST_FOREACH(LLViewerInventoryItem* outfit_item, outfit_item_array) +            for (LLViewerInventoryItem* outfit_item : outfit_item_array)              {                  LLViewerInventoryItem* linked_item = outfit_item->getLinkedItem();                  LLUUID asset_id, inv_id; diff --git a/indra/newview/llpanelexperiencelisteditor.cpp b/indra/newview/llpanelexperiencelisteditor.cpp index 0fdb9a57f3..854a32621a 100644 --- a/indra/newview/llpanelexperiencelisteditor.cpp +++ b/indra/newview/llpanelexperiencelisteditor.cpp @@ -40,7 +40,6 @@  #include "lltextbox.h"  #include "lltrans.h"  #include "llsdutil.h" -#include <boost/foreach.hpp>  static LLPanelInjector<LLPanelExperienceListEditor> t_panel_experience_list_editor("panel_experience_list_editor"); @@ -96,7 +95,7 @@ void LLPanelExperienceListEditor::addExperienceIds( const uuid_vec_t& experience  void LLPanelExperienceListEditor::setExperienceIds( const LLSD& experience_ids )  {  	mExperienceIds.clear(); -	BOOST_FOREACH(LLSD uuid, llsd::inArray(experience_ids)) +	for (LLSD uuid : llsd::inArray(experience_ids))  	{  		// Using insert(range) doesn't work here because the conversion from  		// LLSD to LLUUID is ambiguous: have to specify asUUID() for each entry. diff --git a/indra/newview/llpanelgroupbulkban.cpp b/indra/newview/llpanelgroupbulkban.cpp index cf1f0bc32f..2b6bf1bcd6 100644 --- a/indra/newview/llpanelgroupbulkban.cpp +++ b/indra/newview/llpanelgroupbulkban.cpp @@ -49,8 +49,6 @@  #include "lluictrlfactory.h"  #include "llviewerwindow.h" -#include <boost/foreach.hpp> -  LLPanelGroupBulkBan::LLPanelGroupBulkBan(const LLUUID& group_id) : LLPanelGroupBulk(group_id)  {  	// Pass on construction of this panel to the control factory. @@ -163,8 +161,8 @@ void LLPanelGroupBulkBan::submit()  	// remove already banned users and yourself from request.  	std::vector<LLAvatarName> banned_avatar_names;  	std::vector<LLAvatarName> out_of_limit_names; -	bool banning_self = FALSE; -	std::vector<LLUUID>::iterator conflict = std::find(banned_agent_list.begin(), banned_agent_list.end(), gAgent.getID()); +	bool banning_self{ false }; +	std::vector<LLUUID>::iterator conflict = std::find(banned_agent_list.begin(), banned_agent_list.end(), gAgentID);  	if (conflict != banned_agent_list.end())  	{  		banned_agent_list.erase(conflict); @@ -172,18 +170,17 @@ void LLPanelGroupBulkBan::submit()  	}  	if (group_datap)  	{ -		BOOST_FOREACH(const LLGroupMgrGroupData::ban_list_t::value_type& group_ban_pair, group_datap->mBanList) +		for (const auto& [group_ban_agent_id, group_ban_data] : group_datap->mBanList)  		{ -			const LLUUID& group_ban_agent_id = group_ban_pair.first;  			std::vector<LLUUID>::iterator conflict = std::find(banned_agent_list.begin(), banned_agent_list.end(), group_ban_agent_id);  			if (conflict != banned_agent_list.end())  			{  				LLAvatarName av_name;  				LLAvatarNameCache::get(group_ban_agent_id, &av_name); -				banned_avatar_names.push_back(av_name); +				banned_avatar_names.emplace_back(av_name);  				banned_agent_list.erase(conflict); -				if (banned_agent_list.size() == 0) +				if (banned_agent_list.empty())  				{  					break;  				} diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index c6254f72cf..5c4f8e9135 100644 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -112,7 +112,7 @@ private:  	static void updateServerCombo();  private: -	boost::scoped_ptr<LLPanelLoginListener> mListener; +	std::unique_ptr<LLPanelLoginListener> mListener;  	void updateLoginButtons();  	void populateUserList(LLPointer<LLCredential> credential); diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h index 50d7074d4b..f9e29c0a92 100644 --- a/indra/newview/llpaneloutfitsinventory.h +++ b/indra/newview/llpaneloutfitsinventory.h @@ -61,6 +61,8 @@ public:  	void openApearanceTab(const std::string& tab_name); +    bool isCOFPanelActive() const; +  protected:  	void updateVerbs(); @@ -73,7 +75,6 @@ private:  protected:  	void 					initTabPanels();  	void 					onTabChange(); -	bool 					isCOFPanelActive() const;  	bool 					isOutfitsListPanelActive() const;  	bool 					isOutfitsGalleryPanelActive() const; diff --git a/indra/newview/llpanelprofileclassifieds.cpp b/indra/newview/llpanelprofileclassifieds.cpp index 3fbaad4dee..307935f45f 100644 --- a/indra/newview/llpanelprofileclassifieds.cpp +++ b/indra/newview/llpanelprofileclassifieds.cpp @@ -650,6 +650,8 @@ BOOL LLPanelProfileClassified::postBuild()      mSnapshotCtrl->setOnSelectCallback(boost::bind(&LLPanelProfileClassified::onTextureSelected, this));      mSnapshotCtrl->setMouseEnterCallback(boost::bind(&LLPanelProfileClassified::onTexturePickerMouseEnter, this));      mSnapshotCtrl->setMouseLeaveCallback(boost::bind(&LLPanelProfileClassified::onTexturePickerMouseLeave, this)); +    mSnapshotCtrl->setAllowLocalTexture(FALSE); +    mSnapshotCtrl->setBakeTextureEnabled(FALSE);      mEditIcon->setVisible(false);      mMapButton->setCommitCallback(boost::bind(&LLPanelProfileClassified::onMapClick, this)); @@ -667,7 +669,7 @@ BOOL LLPanelProfileClassified::postBuild()          mCategoryCombo->add(LLTrans::getString(iter->second));      } -    mClassifiedNameEdit->setKeystrokeCallback(boost::bind(&LLPanelProfileClassified::onChange, this), NULL); +    mClassifiedNameEdit->setKeystrokeCallback(boost::bind(&LLPanelProfileClassified::onTitleChange, this), NULL);      mClassifiedDescEdit->setKeystrokeCallback(boost::bind(&LLPanelProfileClassified::onChange, this));      mCategoryCombo->setCommitCallback(boost::bind(&LLPanelProfileClassified::onChange, this));      mContentTypeCombo->setCommitCallback(boost::bind(&LLPanelProfileClassified::onChange, this)); @@ -935,6 +937,8 @@ void LLPanelProfileClassified::onCancelClick()      }      else      { +        updateTabLabel(mClassifiedNameText->getValue()); +          // Reload data to undo changes to forms          LLAvatarPropertiesProcessor::getInstance()->sendClassifiedInfoRequest(getClassifiedId());      } @@ -955,7 +959,7 @@ void LLPanelProfileClassified::onSaveClick()      }      if(isNew() || isNewWithErrors())      { -        if(gStatusBar->getBalance() < getPriceForListing()) +        if(gStatusBar->getBalance() < MINIMUM_PRICE_FOR_LISTING)          {              LLNotificationsUtil::add("ClassifiedInsufficientFunds");              return; @@ -1403,6 +1407,12 @@ void LLPanelProfileClassified::onChange()      enableSave(isDirty());  } +void LLPanelProfileClassified::onTitleChange() +{ +    updateTabLabel(getClassifiedName()); +    onChange(); +} +  void LLPanelProfileClassified::doSave()  {      //*TODO: Fix all of this @@ -1428,6 +1438,14 @@ void LLPanelProfileClassified::doSave()  void LLPanelProfileClassified::onPublishFloaterPublishClicked()  { +    if (mPublishFloater->getPrice() < MINIMUM_PRICE_FOR_LISTING) +    { +        LLSD args; +        args["MIN_PRICE"] = MINIMUM_PRICE_FOR_LISTING; +        LLNotificationsUtil::add("MinClassifiedPrice", args); +        return; +    } +      setPriceForListing(mPublishFloater->getPrice());      doSave(); diff --git a/indra/newview/llpanelprofileclassifieds.h b/indra/newview/llpanelprofileclassifieds.h index 912819e86b..d1aa5f55e3 100644 --- a/indra/newview/llpanelprofileclassifieds.h +++ b/indra/newview/llpanelprofileclassifieds.h @@ -257,6 +257,7 @@ protected:      void onSetLocationClick();      void onChange(); +    void onTitleChange();      void onPublishFloaterPublishClicked(); diff --git a/indra/newview/llpanelprofilepicks.cpp b/indra/newview/llpanelprofilepicks.cpp index ff3f654d0e..5826621645 100644 --- a/indra/newview/llpanelprofilepicks.cpp +++ b/indra/newview/llpanelprofilepicks.cpp @@ -252,6 +252,8 @@ void LLPanelProfilePicks::onClickNewBtn()          select_tab(true).          label(pick_panel->getPickName()));      updateButtons(); + +    pick_panel->addLocationChangedCallbacks();  }  void LLPanelProfilePicks::onClickDelete() @@ -488,6 +490,8 @@ LLPanelProfilePick::LLPanelProfilePick()   , mLocationChanged(false)   , mNewPick(false)   , mIsEditing(false) + , mRegionCallbackConnection() + , mParcelCallbackConnection()  {  } @@ -505,6 +509,15 @@ LLPanelProfilePick::~LLPanelProfilePick()      {          LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelId, this);      } + +    if (mRegionCallbackConnection.connected()) +    { +        mRegionCallbackConnection.disconnect(); +    } +    if (mParcelCallbackConnection.connected()) +    { +        mParcelCallbackConnection.disconnect(); +    }  }  void LLPanelProfilePick::setAvatarId(const LLUUID& avatar_id) @@ -581,6 +594,8 @@ BOOL LLPanelProfilePick::postBuild()      mSnapshotCtrl = getChild<LLTextureCtrl>("pick_snapshot");      mSnapshotCtrl->setCommitCallback(boost::bind(&LLPanelProfilePick::onSnapshotChanged, this)); +    mSnapshotCtrl->setAllowLocalTexture(FALSE); +    mSnapshotCtrl->setBakeTextureEnabled(FALSE);      childSetAction("teleport_btn", boost::bind(&LLPanelProfilePick::onClickTeleport, this));      childSetAction("show_on_map_btn", boost::bind(&LLPanelProfilePick::onClickMap, this)); @@ -670,6 +685,7 @@ void LLPanelProfilePick::setSnapshotId(const LLUUID& id)  void LLPanelProfilePick::setPickName(const std::string& name)  {      mPickName->setValue(name); +    mPickNameStr = name;  }  const std::string LLPanelProfilePick::getPickName() @@ -778,6 +794,18 @@ void LLPanelProfilePick::onClickSetLocation()  void LLPanelProfilePick::onClickSave()  { +    if (mRegionCallbackConnection.connected()) +    { +        mRegionCallbackConnection.disconnect(); +    } +    if (mParcelCallbackConnection.connected()) +    { +        mParcelCallbackConnection.disconnect(); +    } +    if (mLocationChanged)  +    { +        onClickSetLocation(); +    }      sendUpdate();      mLocationChanged = false; @@ -785,6 +813,7 @@ void LLPanelProfilePick::onClickSave()  void LLPanelProfilePick::onClickCancel()  { +    updateTabLabel(mPickNameStr);      LLAvatarPropertiesProcessor::getInstance()->sendPickInfoRequest(getAvatarId(), getPickId());      mLocationChanged = false;      enableSaveButton(FALSE); @@ -824,6 +853,13 @@ void LLPanelProfilePick::processParcelInfo(const LLParcelData& parcel_data)      }  } +void LLPanelProfilePick::addLocationChangedCallbacks() +{ +    mRegionCallbackConnection = gAgent.addRegionChangedCallback([this]() { onClickSetLocation(); }); +    mParcelCallbackConnection = gAgent.addParcelChangedCallback([this]() { onClickSetLocation(); }); +} + +  void LLPanelProfilePick::sendUpdate()  {      LLPickData pick_data; diff --git a/indra/newview/llpanelprofilepicks.h b/indra/newview/llpanelprofilepicks.h index f84463cc9b..d56f786ff1 100644 --- a/indra/newview/llpanelprofilepicks.h +++ b/indra/newview/llpanelprofilepicks.h @@ -140,7 +140,9 @@ public:      void setParcelID(const LLUUID& parcel_id) override { mParcelId = parcel_id; }      void setErrorStatus(S32 status, const std::string& reason) override {}; -protected: +    void addLocationChangedCallbacks(); + +  protected:      /**       * Sends remote parcel info request to resolve parcel name from its ID. @@ -237,6 +239,10 @@ protected:      LLUUID mParcelId;      LLUUID mPickId;      LLUUID mRequestedId; +    std::string mPickNameStr; + +    boost::signals2::connection mRegionCallbackConnection; +    boost::signals2::connection mParcelCallbackConnection;      bool mLocationChanged;      bool mNewPick; diff --git a/indra/newview/llpathfindingmanager.cpp b/indra/newview/llpathfindingmanager.cpp index 17b8ec0683..664e240484 100644 --- a/indra/newview/llpathfindingmanager.cpp +++ b/indra/newview/llpathfindingmanager.cpp @@ -114,7 +114,7 @@ public:  	void handleTerrainLinksetsResult(const LLSD &pContent);  	void handleTerrainLinksetsError(); -    typedef boost::shared_ptr<LinksetsResponder> ptr_t; +    typedef std::shared_ptr<LinksetsResponder> ptr_t;  protected: @@ -139,7 +139,7 @@ private:  	LLPathfindingObjectPtr                          mTerrainLinksetPtr;  }; -typedef boost::shared_ptr<LinksetsResponder> LinksetsResponderPtr; +typedef std::shared_ptr<LinksetsResponder> LinksetsResponderPtr;  //---------------------------------------------------------------------------  // LLPathfindingManager diff --git a/indra/newview/llpathfindingmanager.h b/indra/newview/llpathfindingmanager.h index bb44f780c8..258d0fdef7 100644 --- a/indra/newview/llpathfindingmanager.h +++ b/indra/newview/llpathfindingmanager.h @@ -107,8 +107,8 @@ private:      void navMeshStatusRequestCoro(std::string url, U64 regionHandle, bool isGetStatusOnly);      void navAgentStateRequestCoro(std::string url);      void navMeshRebakeCoro(std::string url, rebake_navmesh_callback_t rebakeNavMeshCallback); -    void linksetObjectsCoro(std::string url, boost::shared_ptr<LinksetsResponder> linksetsResponsderPtr, LLSD putData) const; -    void linksetTerrainCoro(std::string url, boost::shared_ptr<LinksetsResponder> linksetsResponsderPtr, LLSD putData) const; +    void linksetObjectsCoro(std::string url, std::shared_ptr<LinksetsResponder> linksetsResponsderPtr, LLSD putData) const; +    void linksetTerrainCoro(std::string url, std::shared_ptr<LinksetsResponder> linksetsResponsderPtr, LLSD putData) const;      void charactersCoro(std::string url, request_id_t requestId, object_request_callback_t callback) const;  	//void handleNavMeshStatusRequest(const LLPathfindingNavMeshStatus &pNavMeshStatus, LLViewerRegion *pRegion, bool pIsGetStatusOnly); diff --git a/indra/newview/llpathfindingnavmesh.h b/indra/newview/llpathfindingnavmesh.h index 87f32b8d56..ddc886f01c 100644 --- a/indra/newview/llpathfindingnavmesh.h +++ b/indra/newview/llpathfindingnavmesh.h @@ -39,7 +39,7 @@  class LLPathfindingNavMesh;  class LLUUID; -typedef boost::shared_ptr<LLPathfindingNavMesh> LLPathfindingNavMeshPtr; +typedef std::shared_ptr<LLPathfindingNavMesh> LLPathfindingNavMeshPtr;  class LLPathfindingNavMesh  { diff --git a/indra/newview/llpathfindingnavmeshzone.h b/indra/newview/llpathfindingnavmeshzone.h index baa1cc5979..b76f4421a6 100644 --- a/indra/newview/llpathfindingnavmeshzone.h +++ b/indra/newview/llpathfindingnavmeshzone.h @@ -114,7 +114,7 @@ private:  		LLPathfindingNavMesh::navmesh_slot_t        mNavMeshSlot;  	}; -	typedef boost::shared_ptr<NavMeshLocation> NavMeshLocationPtr; +	typedef std::shared_ptr<NavMeshLocation> NavMeshLocationPtr;  	typedef std::vector<NavMeshLocationPtr> NavMeshLocationPtrs;  	void handleNavMeshLocation(); diff --git a/indra/newview/llpathfindingobject.h b/indra/newview/llpathfindingobject.h index b8d3ca2364..0114cce3f1 100644 --- a/indra/newview/llpathfindingobject.h +++ b/indra/newview/llpathfindingobject.h @@ -41,7 +41,7 @@  class LLPathfindingObject;  class LLSD; -typedef boost::shared_ptr<LLPathfindingObject> LLPathfindingObjectPtr; +typedef std::shared_ptr<LLPathfindingObject> LLPathfindingObjectPtr;  class LLPathfindingObject  { diff --git a/indra/newview/llpathfindingobjectlist.h b/indra/newview/llpathfindingobjectlist.h index 61580582d3..e2e0dce4da 100644 --- a/indra/newview/llpathfindingobjectlist.h +++ b/indra/newview/llpathfindingobjectlist.h @@ -36,7 +36,7 @@  class LLPathfindingObjectList; -typedef boost::shared_ptr<LLPathfindingObjectList> LLPathfindingObjectListPtr; +typedef std::shared_ptr<LLPathfindingObjectList> LLPathfindingObjectListPtr;  typedef std::map<std::string, LLPathfindingObjectPtr> LLPathfindingObjectMap;  class LLPathfindingObjectList diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp index 975e2bb910..ea7d4800e0 100644 --- a/indra/newview/llpreviewtexture.cpp +++ b/indra/newview/llpreviewtexture.cpp @@ -653,7 +653,7 @@ void LLPreviewTexture::adjustAspectRatio()  			{  				// No existing ratio found, create an element that will show image at original ratio  				populateRatioList(); // makes sure previous custom ratio is cleared -				std::string ratio = boost::lexical_cast<std::string>(num)+":" + boost::lexical_cast<std::string>(denom); +				std::string ratio = std::to_string(num)+":" + std::to_string(denom);  				mRatiosList.push_back(ratio);  				combo->add(ratio);  				combo->setCurrentByIndex(mRatiosList.size()- 1); diff --git a/indra/newview/llsculptidsize.cpp b/indra/newview/llsculptidsize.cpp index 5d051d0ebf..bedee32213 100644 --- a/indra/newview/llsculptidsize.cpp +++ b/indra/newview/llsculptidsize.cpp @@ -66,7 +66,7 @@ void LLSculptIDSize::inc(const LLDrawable *pdrawable, int sz)  	if (itLU.first == itLU.second)  	{ //register  		//llassert(mSizeInfo.get<tag_BY_DRAWABLE>().end() == mSizeInfo.get<tag_BY_DRAWABLE>().find(pdrawable)); -		mSizeInfo.get<tag_BY_DRAWABLE>().insert(Info(pdrawable, sz, boost::make_shared<SizeSum>(sz), sculptId)); +		mSizeInfo.get<tag_BY_DRAWABLE>().insert(Info(pdrawable, sz, std::make_shared<SizeSum>(sz), sculptId));  		total_size = sz;  	}  	else diff --git a/indra/newview/llsculptidsize.h b/indra/newview/llsculptidsize.h index 87ee417b86..679fcbd44c 100644 --- a/indra/newview/llsculptidsize.h +++ b/indra/newview/llsculptidsize.h @@ -52,7 +52,7 @@ public:  	struct Info  	{ -		typedef boost::shared_ptr<SizeSum> PtrSizeSum; +		typedef std::shared_ptr<SizeSum> PtrSizeSum;  		Info(const LLDrawable *drawable, int size, PtrSizeSum sizeInfo, LLUUID sculptId)  			: mDrawable(drawable) diff --git a/indra/newview/llsearchableui.h b/indra/newview/llsearchableui.h index 31f11eb8ef..84fcefb835 100644 --- a/indra/newview/llsearchableui.h +++ b/indra/newview/llsearchableui.h @@ -93,7 +93,7 @@ namespace ll  	{  		struct SearchableItem; -		typedef boost::shared_ptr< SearchableItem > SearchableItemPtr; +		typedef std::shared_ptr< SearchableItem > SearchableItemPtr;  		typedef std::vector< SearchableItemPtr > tSearchableItemList; diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index aed9dba7ef..7571d361a4 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -361,6 +361,15 @@ void LLSidepanelAppearance::toggleMyOutfitsPanel(BOOL visible, const std::string      }  } +bool LLSidepanelAppearance::isCOFPanelVisible() +{ +    if (mPanelOutfitsInventory && mPanelOutfitsInventory->getVisible()) +    { +        return mPanelOutfitsInventory->isCOFPanelActive(); +    } +    return false; +} +  void LLSidepanelAppearance::toggleOutfitEditPanel(BOOL visible, BOOL disable_camera_switch)  {  	if (!mOutfitEdit || mOutfitEdit->getVisible() == visible) diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h index bb9709a2b8..e67652d6f7 100644 --- a/indra/newview/llsidepanelappearance.h +++ b/indra/newview/llsidepanelappearance.h @@ -66,6 +66,8 @@ public:  	void updateToVisibility( const LLSD& new_visibility );  	LLPanelEditWearable* getWearable(){ return mEditWearable; } +    bool isCOFPanelVisible(); +  private:  	void onFilterEdit(const std::string& search_string);  	void onVisibilityChanged ( const LLSD& new_visibility ); diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index f6628293ee..9157d20f98 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -46,8 +46,6 @@  #include "llviewercontrol.h"  // HACK for destinations guide on startup  #include "llinventorymodel.h" // HACK to disable starter avatars button for NUX -#include <boost/foreach.hpp> -  LLToolBarView* gToolBarView = NULL;  static LLDefaultChildRegistry::Register<LLToolBarView> r("toolbar_view"); @@ -282,7 +280,7 @@ bool LLToolBarView::loadToolbars(bool force_default)  			LLToolBarEnums::ButtonType button_type = toolbar_set.left_toolbar.button_display_mode;  			mToolbars[LLToolBarEnums::TOOLBAR_LEFT]->setButtonType(button_type);  		} -		BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.left_toolbar.commands) +		for (const LLCommandId::Params& command_params : toolbar_set.left_toolbar.commands)  		{  			if (!addCommandInternal(LLCommandId(command_params), mToolbars[LLToolBarEnums::TOOLBAR_LEFT]))  			{ @@ -297,7 +295,7 @@ bool LLToolBarView::loadToolbars(bool force_default)  			LLToolBarEnums::ButtonType button_type = toolbar_set.right_toolbar.button_display_mode;  			mToolbars[LLToolBarEnums::TOOLBAR_RIGHT]->setButtonType(button_type);  		} -		BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.right_toolbar.commands) +		for (const LLCommandId::Params& command_params : toolbar_set.right_toolbar.commands)  		{  			if (!addCommandInternal(LLCommandId(command_params), mToolbars[LLToolBarEnums::TOOLBAR_RIGHT]))  			{ @@ -312,7 +310,7 @@ bool LLToolBarView::loadToolbars(bool force_default)  			LLToolBarEnums::ButtonType button_type = toolbar_set.bottom_toolbar.button_display_mode;  			mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]->setButtonType(button_type);  		} -		BOOST_FOREACH(const LLCommandId::Params& command_params, toolbar_set.bottom_toolbar.commands) +		for (const LLCommandId::Params& command_params : toolbar_set.bottom_toolbar.commands)  		{  			if (!addCommandInternal(LLCommandId(command_params), mToolbars[LLToolBarEnums::TOOLBAR_BOTTOM]))  			{ diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index f1f42afd81..5041c9f76f 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -431,7 +431,7 @@ private:  private:  	// a single media url with some data and an impl. -	boost::shared_ptr<LLPluginClassMedia> mMediaSource; +	std::shared_ptr<LLPluginClassMedia> mMediaSource;      LLMutex mLock;  	F64		mZoomFactor;  	LLUUID mTextureId; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 9db9d97ddc..89784f4124 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -102,6 +102,7 @@  #include "llsceneview.h"  #include "llscenemonitor.h"  #include "llselectmgr.h" +#include "llsidepanelappearance.h"  #include "llspellcheckmenuhandler.h"  #include "llstatusbar.h"  #include "lltextureview.h" @@ -6655,6 +6656,13 @@ void handle_edit_outfit()  void handle_now_wearing()  { +    LLSidepanelAppearance *panel_appearance = dynamic_cast<LLSidepanelAppearance *>(LLFloaterSidePanelContainer::getPanel("appearance")); +    if (panel_appearance && panel_appearance->isInVisibleChain() && panel_appearance->isCOFPanelVisible()) +    { +        LLFloaterReg::findInstance("appearance")->closeFloater(); +        return; +    } +      LLFloaterSidePanelContainer::showPanel("appearance", LLSD().with("type", "now_wearing"));  } diff --git a/indra/newview/llviewermenufile.h b/indra/newview/llviewermenufile.h index ff2ee693fd..6b9df6df28 100644 --- a/indra/newview/llviewermenufile.h +++ b/indra/newview/llviewermenufile.h @@ -145,7 +145,7 @@ public:      virtual void notify(const std::vector<std::string>& filenames);  private: -    boost::shared_ptr<LLPluginClassMedia> mPlugin; +    std::shared_ptr<LLPluginClassMedia> mPlugin;  }; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 55e43352bc..221ead7667 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -119,8 +119,6 @@  #include "llviewerregion.h"  #include "llfloaterregionrestarting.h" -#include <boost/foreach.hpp> -  #include "llnotificationmanager.h" //  #include "llexperiencecache.h" @@ -5626,7 +5624,7 @@ void notify_cautioned_script_question(const LLSD& notification, const LLSD& resp  		BOOL caution = FALSE;  		S32 count = 0;  		std::string perms; -		BOOST_FOREACH(script_perm_t script_perm, SCRIPT_PERMISSIONS) +		for (const script_perm_t& script_perm : SCRIPT_PERMISSIONS)  		{  			if ((orig_questions & script_perm.permbit)  				&& script_perm.caution) @@ -5870,7 +5868,7 @@ void process_script_question(LLMessageSystem *msg, void **user_data)  		S32 known_questions = 0;  		bool has_not_only_debit = questions ^ SCRIPT_PERMISSIONS[SCRIPT_PERMISSION_DEBIT].permbit;  		// check the received permission flags against each permission -		BOOST_FOREACH(script_perm_t script_perm, SCRIPT_PERMISSIONS) +		for (const script_perm_t& script_perm : SCRIPT_PERMISSIONS)  		{  			if (questions & script_perm.permbit)  			{ diff --git a/indra/newview/llviewerparcelaskplay.cpp b/indra/newview/llviewerparcelaskplay.cpp index afbe2c94de..aea06834b2 100644 --- a/indra/newview/llviewerparcelaskplay.cpp +++ b/indra/newview/llviewerparcelaskplay.cpp @@ -287,7 +287,7 @@ void LLViewerParcelAskPlay::saveSettings()              if ((iter_parcel->second.mDate.secondsSinceEpoch() + (F64SecondsImplicit)U32Days(30)) > LLTimer::getTotalSeconds())              {                  // write unexpired parcels -                std::string parcel_id = boost::lexical_cast<std::string>(iter_parcel->first); +                std::string parcel_id = std::to_string(iter_parcel->first);                  write_llsd[key][parcel_id] = LLSD();                  write_llsd[key][parcel_id]["mode"] = (LLSD::Integer)iter_parcel->second.mMode;                  write_llsd[key][parcel_id]["date"] = iter_parcel->second.mDate; diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 3225299493..2bab50300b 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -592,7 +592,7 @@ std::string LLViewerShaderMgr::loadBasicShaders()  	std::map<std::string, std::string> attribs;  	attribs["MAX_JOINTS_PER_MESH_OBJECT"] =  -		boost::lexical_cast<std::string>(LLSkinningUtil::getMaxJointCount()); +		std::to_string(LLSkinningUtil::getMaxJointCount());      BOOL ssr = gSavedSettings.getBOOL("RenderScreenSpaceReflections"); diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index ccef006a07..346073b8a1 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -538,8 +538,8 @@ private:  	bool			mStatesDirty;  	U32			mCurrResolutionIndex; -	boost::scoped_ptr<LLWindowListener> mWindowListener; -	boost::scoped_ptr<LLViewerWindowListener> mViewerWindowListener; +	std::unique_ptr<LLWindowListener> mWindowListener; +	std::unique_ptr<LLViewerWindowListener> mViewerWindowListener;  	// Object temporarily hovered over while dragging  	LLPointer<LLViewerObject>	mDragHoveredObject; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index fee00eb6f4..550be30919 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -4283,6 +4283,15 @@ void LLVOAvatar::updateOrientation(LLAgent& agent, F32 speed, F32 delta_time)  				if (mTurning)  				{  					pelvis_rot_threshold *= 0.4f; +                    // account for fps, assume that above value is for ~60fps +                    constexpr F32 default_frame_sec = 0.016f; +                    F32 prev_frame_sec = LLFrameTimer::getFrameDeltaTimeF32(); +                    if (default_frame_sec > prev_frame_sec) +                    { +                        // reduce threshold since turn rate per second is constant, +                        // shorter frame means shorter turn. +                        pelvis_rot_threshold *= prev_frame_sec/default_frame_sec; +                    }  				}  				// am I done turning? diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 3725510b6a..c8d77a6e0b 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -5952,7 +5952,7 @@ void LLVivoxVoiceClient::filePlaybackSetMode(bool vox, float speed)  }  //------------------------------------------------------------------------ -std::set<LLVivoxVoiceClient::sessionState::wptr_t> LLVivoxVoiceClient::sessionState::mSession; +std::set<LLVivoxVoiceClient::sessionState::wptr_t, std::owner_less<LLVivoxVoiceClient::sessionState::wptr_t>> LLVivoxVoiceClient::sessionState::mSession;  LLVivoxVoiceClient::sessionState::sessionState() : diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index e3ab99c675..d75d1b4b5d 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -294,8 +294,8 @@ protected:  		bool mAvatarIDValid;  		bool mIsSelf;  	}; -    typedef boost::shared_ptr<participantState> participantStatePtr_t; -    typedef boost::weak_ptr<participantState> participantStateWptr_t; +    typedef std::shared_ptr<participantState> participantStatePtr_t; +    typedef std::weak_ptr<participantState> participantStateWptr_t;      typedef std::map<const std::string, participantStatePtr_t> participantMap;      typedef std::map<const LLUUID, participantStatePtr_t> participantUUIDMap; @@ -303,10 +303,10 @@ protected:  	struct sessionState  	{      public: -        typedef boost::shared_ptr<sessionState> ptr_t; -        typedef boost::weak_ptr<sessionState> wptr_t; +        typedef std::shared_ptr<sessionState> ptr_t; +        typedef std::weak_ptr<sessionState> wptr_t; -        typedef boost::function<void(const ptr_t &)> sessionFunc_t; +        typedef std::function<void(const ptr_t &)> sessionFunc_t;          static ptr_t createSession();  		~sessionState(); @@ -370,7 +370,7 @@ protected:      private:          sessionState(); -        static std::set<wptr_t> mSession;   // canonical list of outstanding sessions. +        static std::set<wptr_t, std::owner_less<wptr_t>> mSession;   // canonical list of outstanding sessions.          std::set<wptr_t>::iterator  mMyIterator;    // used for delete          static void for_eachPredicate(const wptr_t &a, sessionFunc_t func); @@ -381,7 +381,7 @@ protected:          static bool testByCallerId(const LLVivoxVoiceClient::sessionState::wptr_t &a, LLUUID participantId);  	}; -    typedef boost::shared_ptr<sessionState> sessionStatePtr_t; +    typedef std::shared_ptr<sessionState> sessionStatePtr_t;      typedef std::map<std::string, sessionStatePtr_t> sessionMap; diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index ec2f490742..c5b6eca5ae 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -4575,6 +4575,11 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&          }      } +    if (getClickAction() == CLICK_ACTION_IGNORE && !LLFloater::isVisible(gFloaterTools)) +    { +        return FALSE; +    } +  	BOOL ret = FALSE;  	LLVolume* volume = getVolume(); diff --git a/indra/newview/llwindowlistener.cpp b/indra/newview/llwindowlistener.cpp index aa8c79b0d2..0edabf358f 100644 --- a/indra/newview/llwindowlistener.cpp +++ b/indra/newview/llwindowlistener.cpp @@ -388,7 +388,7 @@ static void mouseEvent(const MouseFunc& func, const LLSD& request)  	LLCoordGL pos(request["x"].asInteger(), request["y"].asInteger());  	bool has_pos(request.has("x") && request.has("y")); -	boost::scoped_ptr<LLView::TemporaryDrilldownFunc> tempfunc; +	std::unique_ptr<LLView::TemporaryDrilldownFunc> tempfunc;  	// Documentation for mouseDown(), mouseUp() and mouseMove() claims you  	// must either specify ["path"], or both of ["x"] and ["y"]. You MAY diff --git a/indra/newview/llxmlrpclistener.cpp b/indra/newview/llxmlrpclistener.cpp index b816f9a3b5..3c2c6d15c4 100644 --- a/indra/newview/llxmlrpclistener.cpp +++ b/indra/newview/llxmlrpclistener.cpp @@ -544,7 +544,7 @@ private:      const std::string mMethod;      const std::string mReplyPump;      LLTempBoundListener mBoundListener; -    boost::scoped_ptr<LLXMLRPCTransaction> mTransaction; +    std::unique_ptr<LLXMLRPCTransaction> mTransaction;  	LLXMLRPCTransaction::EStatus mPreviousStatus; // To detect state changes.  }; diff --git a/indra/newview/llxmlrpctransaction.cpp b/indra/newview/llxmlrpctransaction.cpp index ba7e8d7298..a77c31eee3 100644 --- a/indra/newview/llxmlrpctransaction.cpp +++ b/indra/newview/llxmlrpctransaction.cpp @@ -188,7 +188,7 @@ public:  	virtual void onCompleted(LLCore::HttpHandle handle, LLCore::HttpResponse * response); -	typedef boost::shared_ptr<LLXMLRPCTransaction::Handler> ptr_t; +	typedef std::shared_ptr<LLXMLRPCTransaction::Handler> ptr_t;  private: diff --git a/indra/newview/skins/default/xui/en/floater_publish_classified.xml b/indra/newview/skins/default/xui/en/floater_publish_classified.xml index 84e0b489d0..3e68011b6c 100644 --- a/indra/newview/skins/default/xui/en/floater_publish_classified.xml +++ b/indra/newview/skins/default/xui/en/floater_publish_classified.xml @@ -25,6 +25,7 @@ Remember, Classified fees are non-refundable.      </text>      <spinner       decimal_digits="0" +     allow_digits_only="true"       follows="left|top"       font="SansSerif"       halign="left" @@ -36,7 +37,6 @@ Remember, Classified fees are non-refundable.       layout="topleft"       left="15"       value="50" -     min_val="50"       max_val="999999"       name="price_for_listing"       top_pad="10" diff --git a/indra/newview/tests/llremoteparcelrequest_test.cpp b/indra/newview/tests/llremoteparcelrequest_test.cpp index 4f7f87b6b0..4eddfb46e1 100644 --- a/indra/newview/tests/llremoteparcelrequest_test.cpp +++ b/indra/newview/tests/llremoteparcelrequest_test.cpp @@ -49,7 +49,7 @@ void LLCurl::Responder::failureResult(S32 status, const std::string& reason, con  void LLCurl::Responder::successResult(const LLSD& content) { }  void LLCurl::Responder::completeResult(S32 status, const std::string& reason, const LLSD& content) { }  std::string LLCurl::Responder::dumpResponse() const { return "(failure)"; } -void LLCurl::Responder::completedRaw(LLChannelDescriptors const &,boost::shared_ptr<LLBufferArray> const &) { } +void LLCurl::Responder::completedRaw(LLChannelDescriptors const &,std::shared_ptr<LLBufferArray> const &) { }  void LLMessageSystem::getF32(char const *,char const *,F32 &,S32) { }  void LLMessageSystem::getU8(char const *,char const *,U8 &,S32) { }  void LLMessageSystem::getS32(char const *,char const *,S32 &,S32) { } @@ -110,7 +110,7 @@ namespace tut  	{  		set_test_name("observer pointer"); -		boost::scoped_ptr<TestObserver> observer(new TestObserver()); +		std::unique_ptr<TestObserver> observer(new TestObserver());  		LLRemoteParcelInfoProcessor & processor = LLRemoteParcelInfoProcessor::instance();  		processor.addObserver(LLUUID(TEST_PARCEL_ID), observer.get()); | 
