Merge Firestorm LGPL

Wed, 21 Mar 2018 17:26:46 +0100

author
Ansariel
date
Wed, 21 Mar 2018 17:26:46 +0100
changeset 55339
42bc0e961099
parent 55338
255b9dfb5d68
parent 54970
89881c31cbf1
child 55340
74610a6ecf5a

Merge Firestorm LGPL

indra/newview/app_settings/settings.xml file | annotate | diff | revisions
indra/newview/llpanelmarketplaceinboxinventory.cpp file | annotate | diff | revisions
     1.1 --- a/autobuild.xml	Tue Mar 13 20:27:57 2018 +0100
     1.2 +++ b/autobuild.xml	Wed Mar 21 17:26:46 2018 +0100
     1.3 @@ -1974,7 +1974,7 @@
     1.4                <key>hash</key>
     1.5                <string>75991f598df209713faf94b4a1cb1a89</string>
     1.6                <key>url</key>
     1.7 -              <string>file:///opt/firestorm/du-7.A.3-darwin-180711129.tar.bz2</string>
     1.8 +              <string>file:///opt/firestorm/kdu-7.A.3-darwin-180711129.tar.bz2</string>
     1.9              </map>
    1.10              <key>name</key>
    1.11              <string>darwin</string>
    1.12 @@ -2020,9 +2020,9 @@
    1.13              <key>archive</key>
    1.14              <map>
    1.15                <key>hash</key>
    1.16 -              <string>7da700b9ca0d05aff5e83c79505827b3</string>
    1.17 -              <key>url</key>
    1.18 -              <string>file:///c:/cygwin/opt/firestorm/kdu-7.A.3-windows-180702336.tar.bz2</string>
    1.19 +              <string>be46f22a4fbf7bd06c2fcd65cd434ed1</string>
    1.20 +              <key>url</key>
    1.21 +              <string>file:///c:/cygwin/opt/firestorm/kdu-7.A.4-windows-180791827.tar.bz2</string>
    1.22              </map>
    1.23              <key>name</key>
    1.24              <string>windows</string>
    1.25 @@ -2032,16 +2032,16 @@
    1.26              <key>archive</key>
    1.27              <map>
    1.28                <key>hash</key>
    1.29 -              <string>7da700b9ca0d05aff5e83c79505827b3</string>
    1.30 -              <key>url</key>
    1.31 -              <string>file:///c:/cygwin/opt/firestorm/kdu-7.A.3-windows-180702336.tar.bz2</string>
    1.32 +              <string>be46f22a4fbf7bd06c2fcd65cd434ed1</string>
    1.33 +              <key>url</key>
    1.34 +              <string>file:///c:/cygwin/opt/firestorm/kdu-7.A.4-windows-180791827.tar.bz2</string>
    1.35              </map>
    1.36              <key>name</key>
    1.37              <string>windows64</string>
    1.38            </map>
    1.39          </map>
    1.40          <key>version</key>
    1.41 -        <string>7.9.1.504041</string>
    1.42 +        <string>7.A.4</string>
    1.43        </map>
    1.44        <key>libhunspell</key>
    1.45        <map>
     2.1 --- a/indra/newview/app_settings/settings.xml	Tue Mar 13 20:27:57 2018 +0100
     2.2 +++ b/indra/newview/app_settings/settings.xml	Wed Mar 21 17:26:46 2018 +0100
     2.3 @@ -24567,6 +24567,17 @@
     2.4        <key>Value</key>
     2.5        <string>Scripting</string>
     2.6      </map>
     2.7 +    <key>FSEnableRightclickOnTransparentObjects</key>
     2.8 +    <map>
     2.9 +      <key>Comment</key>
    2.10 +      <string>If enabled, right-clicks on transparent objects will open the context menu</string>
    2.11 +      <key>Persist</key>
    2.12 +      <integer>1</integer>
    2.13 +      <key>Type</key>
    2.14 +      <string>Boolean</string>
    2.15 +      <key>Value</key>
    2.16 +      <integer>1</integer>
    2.17 +    </map>
    2.18    </map>
    2.19  </llsd>
    2.20  
     3.1 --- a/indra/newview/fsdata.cpp	Tue Mar 13 20:27:57 2018 +0100
     3.2 +++ b/indra/newview/fsdata.cpp	Wed Mar 21 17:26:46 2018 +0100
     3.3 @@ -194,9 +194,9 @@
     3.4  bool FSData::loadFromFile(LLSD& data, std::string filename)
     3.5  {
     3.6  	llifstream file(filename.c_str());
     3.7 -	if(file.is_open())
     3.8 +	if (file.is_open())
     3.9  	{
    3.10 -		if(LLSDSerialize::fromXML(data, file) != LLSDParser::PARSE_FAILURE)
    3.11 +		if (LLSDSerialize::fromXML(data, file) != LLSDParser::PARSE_FAILURE)
    3.12  		{
    3.13  			file.close();
    3.14  			return true;
    3.15 @@ -297,7 +297,7 @@
    3.16  	// Stat the file to see if it exists and when it was last modified.
    3.17  	time_t last_modified = 0;
    3.18  	llstat stat_data;
    3.19 -	if(!LLFile::stat(mFSdataFilename, &stat_data))
    3.20 +	if (!LLFile::stat(mFSdataFilename, &stat_data))
    3.21  	{
    3.22  		last_modified = stat_data.st_mtime;
    3.23  	}
    3.24 @@ -305,7 +305,7 @@
    3.25  	FSCoreHttpUtil::callbackHttpGet(mFSDataURL, last_modified, boost::bind(downloadComplete, _1, mFSDataURL, true), boost::bind(downloadComplete, _1, mFSDataURL, false));
    3.26  
    3.27  	last_modified = 0;
    3.28 -	if(!LLFile::stat(mFSdataDefaultsFilename, &stat_data))
    3.29 +	if (!LLFile::stat(mFSdataDefaultsFilename, &stat_data))
    3.30  	{
    3.31  		last_modified = stat_data.st_mtime;
    3.32  	}
    3.33 @@ -320,7 +320,7 @@
    3.34  	{
    3.35  		filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, script_name);
    3.36  		last_modified = 0;
    3.37 -		if(!LLFile::stat(filename, &stat_data))
    3.38 +		if (!LLFile::stat(filename, &stat_data))
    3.39  		{
    3.40  			last_modified = stat_data.st_mtime;
    3.41  		}
    3.42 @@ -365,7 +365,7 @@
    3.43  		mAgentsFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, filename_prefix + "_agents.xml");
    3.44  		time_t last_modified = 0;
    3.45  		llstat stat_data;
    3.46 -		if(!LLFile::stat(mAgentsFilename, &stat_data))
    3.47 +		if (!LLFile::stat(mAgentsFilename, &stat_data))
    3.48  		{
    3.49  			last_modified = stat_data.st_mtime;
    3.50  		}
    3.51 @@ -378,7 +378,7 @@
    3.52  		mAssestsFilename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, filename_prefix + "_assets.xml");
    3.53  		time_t last_modified = 0;
    3.54  		llstat stat_data;
    3.55 -		if(!LLFile::stat(mAssestsFilename, &stat_data))
    3.56 +		if (!LLFile::stat(mAssestsFilename, &stat_data))
    3.57  		{
    3.58  			last_modified = stat_data.st_mtime;
    3.59  		}
    3.60 @@ -472,6 +472,7 @@
    3.61  	{
    3.62  		return;
    3.63  	}
    3.64 +
    3.65  	const LLSD& asset = assets["assets"];
    3.66  	for (LLSD::map_const_iterator itr = asset.beginMap(); itr != asset.endMap(); ++itr)
    3.67  	{
    3.68 @@ -505,7 +506,7 @@
    3.69  	{
    3.70  		const LLSD& support_agents = data["SupportAgents"];
    3.71  		std::string newFormat;
    3.72 -		for(LLSD::map_const_iterator iter = support_agents.beginMap(); iter != support_agents.endMap(); ++iter)
    3.73 +		for (LLSD::map_const_iterator iter = support_agents.beginMap(); iter != support_agents.endMap(); ++iter)
    3.74  		{
    3.75  			LLUUID key = LLUUID(iter->first);
    3.76  			mSupportAgents[key] = 0;
    3.77 @@ -576,7 +577,7 @@
    3.78  
    3.79  //WS: Create a new LLSD based on the data from the mLegacyClientList if
    3.80  LLSD FSData::resolveClientTag(const LLUUID& id, bool new_system, const LLColor4& color)
    3.81 -{	
    3.82 +{
    3.83  	LLSD curtag;
    3.84  	curtag["uuid"] = id.asString();
    3.85  	curtag["id_based"] = new_system;
    3.86 @@ -674,7 +675,7 @@
    3.87  
    3.88  	//If we only want to display tpvd viewer. And "tpvd" is not available or false, then
    3.89  	// clear the data, but keep the basedata (like uuid, id_based and tex_color) for (maybe) later displaying.
    3.90 -	if(client_tag_visibility <= 1 && (!curtag.has("tpvd") || !curtag["tpvd"].asBoolean()))
    3.91 +	if (client_tag_visibility <= 1 && (!curtag.has("tpvd") || !curtag["tpvd"].asBoolean()))
    3.92  	{
    3.93  		curtag.clear();
    3.94  	}
    3.95 @@ -705,7 +706,7 @@
    3.96  	LL_INFOS("fsdata") << "Saving " << filename << LL_ENDL;
    3.97  	llofstream file;
    3.98  	file.open(filename.c_str());
    3.99 -	if(!file.is_open())
   3.100 +	if (!file.is_open())
   3.101  	{
   3.102  		LL_WARNS("fsdata") << "Unable to open " << filename << LL_ENDL;
   3.103  		return;
   3.104 @@ -719,7 +720,7 @@
   3.105  	const std::time_t new_time = last_modified.secondsSinceEpoch();
   3.106  
   3.107  #ifdef LL_WINDOWS
   3.108 -	boost::filesystem::last_write_time(boost::filesystem::path( utf8str_to_utf16str(filename) ), new_time);
   3.109 +	boost::filesystem::last_write_time(boost::filesystem::path(utf8str_to_utf16str(filename)), new_time);
   3.110  #else
   3.111  	boost::filesystem::last_write_time(boost::filesystem::path(filename), new_time);
   3.112  #endif
   3.113 @@ -737,22 +738,20 @@
   3.114  
   3.115  bool FSData::isSupport(const LLUUID& avatar_id)
   3.116  {
   3.117 -	std::map<LLUUID, S32>::iterator iter = mSupportAgents.find(avatar_id);
   3.118 -	if (iter == mSupportAgents.end())
   3.119 -	{
   3.120 -		return false;
   3.121 -	}
   3.122 -	return (iter->second & SUPPORT);
   3.123 +	S32 flags = getAgentFlags(avatar_id);
   3.124 +	return (flags != -1 && (flags & SUPPORT));
   3.125  }
   3.126  
   3.127  bool FSData::isDeveloper(const LLUUID& avatar_id)
   3.128  {
   3.129 -	std::map<LLUUID, S32>::iterator iter = mSupportAgents.find(avatar_id);
   3.130 -	if (iter == mSupportAgents.end())
   3.131 -	{
   3.132 -		return false;
   3.133 -	}
   3.134 -	return (iter->second & DEVELOPER);
   3.135 +	S32 flags = getAgentFlags(avatar_id);
   3.136 +	return (flags != -1 && (flags & DEVELOPER));
   3.137 +}
   3.138 +
   3.139 +bool FSData::isQA(const LLUUID& avatar_id)
   3.140 +{
   3.141 +	S32 flags = getAgentFlags(avatar_id);
   3.142 +	return (flags != -1 && (flags & QA));
   3.143  }
   3.144  
   3.145  LLSD FSData::allowedLogin()
   3.146 @@ -760,13 +759,13 @@
   3.147  	std::map<std::string, LLSD>::iterator iter = mBlockedVersions.find(LLVersionInfo::getChannelAndVersionFS());
   3.148  	if (iter == mBlockedVersions.end())
   3.149  	{
   3.150 -		return LLSD(); 
   3.151 +		return LLSD();
   3.152  	}
   3.153  	else
   3.154  	{
   3.155  		LLSD block = iter->second;
   3.156  		bool blocked = true; // default is to block all unless there is a gridtype or grids present.
   3.157 -		if(block.has("gridtype"))
   3.158 +		if (block.has("gridtype"))
   3.159  		{
   3.160  			blocked = false;
   3.161  #ifdef OPENSIM
   3.162 @@ -780,13 +779,11 @@
   3.163  				return block;
   3.164  			}
   3.165  		}
   3.166 -		if(block.has("grids"))
   3.167 +		if (block.has("grids"))
   3.168  		{
   3.169  			blocked = false;
   3.170  			LLSD grids = block["grids"];
   3.171 -			for (LLSD::array_iterator grid_iter = grids.beginArray();
   3.172 -				grid_iter != grids.endArray();
   3.173 -				++grid_iter)
   3.174 +			for (LLSD::array_iterator grid_iter = grids.beginArray(); grid_iter != grids.endArray(); ++grid_iter)
   3.175  			{
   3.176  				if ((*grid_iter).asString() == LLGridManager::getInstance()->getGrid())
   3.177  				{
   3.178 @@ -798,7 +795,7 @@
   3.179  	}
   3.180  }
   3.181  
   3.182 -BOOL FSData::isSupportGroup(const LLUUID& id)
   3.183 +bool FSData::isSupportGroup(const LLUUID& id)
   3.184  {
   3.185  	return (mSupportGroup.count(id));
   3.186  }
   3.187 @@ -865,7 +862,7 @@
   3.188  		return message;
   3.189  	}
   3.190  
   3.191 -	if (!isSupport(requester) && !isDeveloper(requester))
   3.192 +	if (!isSupport(requester) && !isDeveloper(requester) && !isQA(requester))
   3.193  	{
   3.194  		return message;
   3.195  	}
     4.1 --- a/indra/newview/fsdata.h	Tue Mar 13 20:27:57 2018 +0100
     4.2 +++ b/indra/newview/fsdata.h	Wed Mar 21 17:26:46 2018 +0100
     4.3 @@ -56,14 +56,16 @@
     4.4  		NO_SUPPORT	= (1 << 4), //0x10 16
     4.5  		NO_USE		= (1 << 5), //0x20 32
     4.6  		NO_SPAM		= (1 << 6), //0x40 64
     4.7 -		GATEWAY		= (1 << 7), //0x80 128 <FS:JL>
     4.8 +		GATEWAY		= (1 << 7), //0x80 128
     4.9  	};
    4.10  
    4.11  	std::set<LLUUID> mSupportGroup;
    4.12  
    4.13  	bool isDeveloper(const LLUUID& avatar_id);
    4.14  	bool isSupport(const LLUUID& avatar_id);
    4.15 -	BOOL isSupportGroup(const LLUUID& id); // BOOL is used due to used in a LL function.
    4.16 +	bool isQA(const LLUUID& avatar_id);
    4.17 +	bool isSupportGroup(const LLUUID& id);
    4.18 +
    4.19  	// returns -1 if agent is not found.
    4.20  	S32 getAgentFlags(const LLUUID& avatar_id);
    4.21  
     5.1 --- a/indra/newview/fsfloaterim.cpp	Tue Mar 13 20:27:57 2018 +0100
     5.2 +++ b/indra/newview/fsfloaterim.cpp	Wed Mar 21 17:26:46 2018 +0100
     5.3 @@ -335,7 +335,7 @@
     5.4  		|| !mOtherParticipantUUID.isNull())
     5.5  	{
     5.6  		// <FS:Techwolf Lupindo> fsdata support
     5.7 -		if(mDialog == IM_NOTHING_SPECIAL && FSData::instance().isSupport(mOtherParticipantUUID) && FSData::instance().isAgentFlag(gAgentID, FSData::NO_SUPPORT))
     5.8 +		if (mDialog == IM_NOTHING_SPECIAL && FSData::instance().isSupport(mOtherParticipantUUID) && FSData::instance().isAgentFlag(gAgentID, FSData::NO_SUPPORT))
     5.9  		{
    5.10  			return;
    5.11  		}
    5.12 @@ -873,8 +873,8 @@
    5.13  
    5.14  	getChild<LLButton>("send_chat")->setCommitCallback(boost::bind(&FSFloaterIM::sendMsgFromInputEditor, this, CHAT_TYPE_NORMAL));
    5.15  
    5.16 -	BOOL isFSSupportGroup = FSData::getInstance()->isSupportGroup(mSessionID);
    5.17 -	getChild<LLUICtrl>("support_panel")->setVisible(isFSSupportGroup);
    5.18 +	bool isFSSupportGroup = FSData::getInstance()->isSupportGroup(mSessionID);
    5.19 +	childSetVisible("support_panel", isFSSupportGroup);
    5.20  
    5.21  	// <FS:Zi> Viewer version popup
    5.22  	if (isFSSupportGroup)
     6.1 --- a/indra/newview/llpanelmarketplaceinboxinventory.cpp	Tue Mar 13 20:27:57 2018 +0100
     6.2 +++ b/indra/newview/llpanelmarketplaceinboxinventory.cpp	Wed Mar 21 17:26:46 2018 +0100
     6.3 @@ -181,6 +181,12 @@
     6.4  	return LLFolderViewFolder::handleDoubleClick(x, y, mask);
     6.5  }
     6.6  
     6.7 +void LLInboxFolderViewFolder::selectItem()
     6.8 +{
     6.9 +	deFreshify();
    6.10 +	LLFolderViewFolder::selectItem();
    6.11 +}
    6.12 +
    6.13  void LLInboxFolderViewFolder::computeFreshness()
    6.14  {
    6.15  	const U32 last_expansion_utc = gSavedPerAccountSettings.getU32("LastInventoryInboxActivity");
     7.1 --- a/indra/newview/llpanelmarketplaceinboxinventory.h	Tue Mar 13 20:27:57 2018 +0100
     7.2 +++ b/indra/newview/llpanelmarketplaceinboxinventory.h	Wed Mar 21 17:26:46 2018 +0100
     7.3 @@ -71,6 +71,7 @@
     7.4  	
     7.5  	BOOL handleMouseDown(S32 x, S32 y, MASK mask);
     7.6  	BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
     7.7 +	void selectItem();
     7.8  
     7.9  	void computeFreshness();
    7.10  	void deFreshify();
     8.1 --- a/indra/newview/lltoolpie.cpp	Tue Mar 13 20:27:57 2018 +0100
     8.2 +++ b/indra/newview/lltoolpie.cpp	Wed Mar 21 17:26:46 2018 +0100
     8.3 @@ -139,7 +139,7 @@
     8.4  	// don't pick transparent so users can't "pay" transparent objects
     8.5  	// <FS:Ansariel> FIRE-1396: Allow selecting transparent objects
     8.6  	//mPick = gViewerWindow->pickImmediate(x, y, /*BOOL pick_transparent*/ FALSE, /*BOOL pick_rigged*/ TRUE, /*BOOL pick_particle*/ TRUE);
     8.7 -	mPick = gViewerWindow->pickImmediate(x, y, /*BOOL pick_transparent*/ TRUE, /*BOOL pick_rigged*/ TRUE, /*BOOL pick_particle*/ TRUE);
     8.8 +	mPick = gViewerWindow->pickImmediate(x, y, /*BOOL pick_transparent*/ gSavedSettings.getBOOL("FSEnableRightclickOnTransparentObjects"), /*BOOL pick_rigged*/ TRUE, /*BOOL pick_particle*/ TRUE);
     8.9  	// </FS:Ansariel>
    8.10  	mPick.mKeyMask = mask;
    8.11  

mercurial