Merge Firestorm LGPL

Tue, 01 May 2018 16:43:38 +0200

author
Ansariel
date
Tue, 01 May 2018 16:43:38 +0200
changeset 55369
614b86c88ac6
parent 55368
15491e4714c6
parent 55129
8f77c235658a
child 55374
dba925f5b176

Merge Firestorm LGPL

autobuild.xml file | annotate | diff | revisions
indra/llvfs/lldir_win32.cpp file | annotate | diff | revisions
indra/newview/CMakeLists.txt file | annotate | diff | revisions
indra/newview/app_settings/settings.xml file | annotate | diff | revisions
indra/newview/llappviewer.cpp file | annotate | diff | revisions
indra/newview/llglsandbox.cpp file | annotate | diff | revisions
indra/newview/llinventorypanel.cpp file | annotate | diff | revisions
indra/newview/llsechandler_basic.cpp file | annotate | diff | revisions
indra/newview/llviewercontrol.cpp file | annotate | diff | revisions
indra/newview/llviewermedia.cpp file | annotate | diff | revisions
     1.1 --- a/autobuild.xml	Sat Apr 14 11:52:41 2018 +0200
     1.2 +++ b/autobuild.xml	Tue May 01 16:43:38 2018 +0200
     1.3 @@ -726,9 +726,9 @@
     1.4              <key>archive</key>
     1.5              <map>
     1.6                <key>hash</key>
     1.7 -              <string>2ecc71350b30a1057091b9cd7af18b1c</string>
     1.8 -              <key>url</key>
     1.9 -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15128/97755/dullahan-1.1.1080_3.3325.1750.gaabe4c4-windows-513449.tar.bz2</string>
    1.10 +              <string>acf7ce31ef174df000889516767b5a1d</string>
    1.11 +              <key>url</key>
    1.12 +              <string>http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-windows-181191512.tar.bz2</string>
    1.13              </map>
    1.14              <key>name</key>
    1.15              <string>windows</string>
    1.16 @@ -738,9 +738,9 @@
    1.17              <key>archive</key>
    1.18              <map>
    1.19                <key>hash</key>
    1.20 -              <string>2ed3e49388514dafb907c59a209d580e</string>
    1.21 -              <key>url</key>
    1.22 -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/15129/97760/dullahan-1.1.1080_3.3325.1750.gaabe4c4-windows64-513449.tar.bz2</string>
    1.23 +              <string>bcafca464648fb949f1b02edce0fb488</string>
    1.24 +              <key>url</key>
    1.25 +              <string>http://downloads.phoenixviewer.com/dullahan-1.1.1080_3.3325.1750.gaabe4c4-windows64-181191514.tar.bz2</string>
    1.26              </map>
    1.27              <key>name</key>
    1.28              <string>windows64</string>
     2.1 --- a/indra/newview/CMakeLists.txt	Sat Apr 14 11:52:41 2018 +0200
     2.2 +++ b/indra/newview/CMakeLists.txt	Tue May 01 16:43:38 2018 +0200
     2.3 @@ -148,6 +148,7 @@
     2.4      fsfloateraddtocontactset.cpp
     2.5      fsfloaterassetblacklist.cpp
     2.6      fsfloateravatarrendersettings.cpp
     2.7 +    fsfloaterbantime.cpp
     2.8      fsfloaterblocklist.cpp
     2.9      fsfloatercontacts.cpp
    2.10      fsfloatercontactsetconfiguration.cpp
    2.11 @@ -163,6 +164,7 @@
    2.12      fsfloaterprofile.cpp
    2.13      fsfloaterradar.cpp
    2.14      fsfloatersearch.cpp
    2.15 +    fsfloaterstatistics.cpp
    2.16      fsfloaterteleporthistory.cpp
    2.17      fsfloatervoicecontrols.cpp
    2.18      fsfloatervolumecontrols.cpp
    2.19 @@ -898,6 +900,7 @@
    2.20      fsfloateraddtocontactset.h
    2.21      fsfloaterassetblacklist.h
    2.22      fsfloateravatarrendersettings.h
    2.23 +    fsfloaterbantime.h
    2.24      fsfloaterblocklist.h
    2.25      fsfloatercontacts.h
    2.26      fsfloatercontactsetconfiguration.h
    2.27 @@ -913,6 +916,7 @@
    2.28      fsfloaterprofile.h
    2.29      fsfloaterradar.h
    2.30      fsfloatersearch.h
    2.31 +    fsfloaterstatistics.h
    2.32      fsfloaterteleporthistory.h
    2.33      fsfloatervoicecontrols.h
    2.34      fsfloatervolumecontrols.h
     3.1 --- a/indra/newview/app_settings/grids.xml	Sat Apr 14 11:52:41 2018 +0200
     3.2 +++ b/indra/newview/app_settings/grids.xml	Tue May 01 16:43:38 2018 +0200
     3.3 @@ -591,7 +591,7 @@
     3.4      <key>util.aditi.lindenlab.com</key>
     3.5          <map>
     3.6          <key>LastModified</key>
     3.7 -            <date>2011-08-28T12:00:00Z</date>
     3.8 +            <date>2018-04-15T11:25:00Z</date>
     3.9          <key>app_slurl_base</key>
    3.10              <string>secondlife:///app</string>
    3.11          <key>gridname</key>
    3.12 @@ -605,7 +605,7 @@
    3.13                  <string>agent</string>
    3.14              </array>
    3.15          <key>loginpage</key>
    3.16 -            <string>http://phoenixviewer.com/app/loginV3/</string>
    3.17 +            <string>https://phoenixviewer.com/app/loginV3/</string>
    3.18          <key>loginuri</key>
    3.19              <array>
    3.20                  <string>https://login.aditi.lindenlab.com/cgi-bin/login.cgi</string>
    3.21 @@ -622,7 +622,7 @@
    3.22      <key>util.agni.lindenlab.com</key>
    3.23          <map>
    3.24          <key>LastModified</key>
    3.25 -            <date>2011-08-28T12:00:00Z</date>
    3.26 +            <date>2018-04-15T11:25:00Z</date>
    3.27          <key>app_slurl_base</key>
    3.28              <string>secondlife:///app</string>
    3.29          <key>favorite</key>
    3.30 @@ -638,7 +638,7 @@
    3.31                  <string>agent</string>
    3.32              </array>
    3.33          <key>loginpage</key>
    3.34 -            <string>http://phoenixviewer.com/app/loginV3/</string>
    3.35 +            <string>https://phoenixviewer.com/app/loginV3/</string>
    3.36          <key>loginuri</key>
    3.37              <array>
    3.38                  <string>https://login.agni.lindenlab.com/cgi-bin/login.cgi</string>
     4.1 --- a/indra/newview/app_settings/settings.xml	Sat Apr 14 11:52:41 2018 +0200
     4.2 +++ b/indra/newview/app_settings/settings.xml	Tue May 01 16:43:38 2018 +0200
     4.3 @@ -24640,7 +24640,7 @@
     4.4      <key>FSStatisticsNoFocus</key>
     4.5      <map>
     4.6        <key>Comment</key>
     4.7 -      <string>If enabled, the statistics bar will never gain focus (i.e. from closing another floater). Requires restart.</string>
     4.8 +      <string>If enabled, the statistics bar will never gain focus (i.e. from closing another floater).</string>
     4.9        <key>Persist</key>
    4.10        <integer>1</integer>
    4.11        <key>Type</key>
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/indra/newview/app_settings/windlight/water/Lassies%20Clearwater.xml	Tue May 01 16:43:38 2018 +0200
     5.3 @@ -0,0 +1,43 @@
     5.4 +<llsd>
     5.5 +    <map>
     5.6 +    <key>blurMultiplier</key>
     5.7 +        <real>0</real>
     5.8 +    <key>fresnelOffset</key>
     5.9 +        <real>0</real>
    5.10 +    <key>fresnelScale</key>
    5.11 +        <real>0</real>
    5.12 +    <key>normScale</key>
    5.13 +        <array>
    5.14 +            <real>2</real>
    5.15 +            <real>2</real>
    5.16 +            <real>2</real>
    5.17 +        </array>
    5.18 +    <key>normalMap</key>
    5.19 +        <uuid>40480d66-6a28-c3f1-bc09-6ac63380750b</uuid>
    5.20 +    <key>scaleAbove</key>
    5.21 +        <real>0.019999999552965164</real>
    5.22 +    <key>scaleBelow</key>
    5.23 +        <real>0.08999999612569809</real>
    5.24 +    <key>underWaterFogMod</key>
    5.25 +        <real>0</real>
    5.26 +    <key>waterFogColor</key>
    5.27 +        <array>
    5.28 +            <real>0</real>
    5.29 +            <real>0.20000007748603821</real>
    5.30 +            <real>0.39999997615814209</real>
    5.31 +            <real>1</real>
    5.32 +        </array>
    5.33 +    <key>waterFogDensity</key>
    5.34 +        <real>0.28717455267906189</real>
    5.35 +    <key>wave1Dir</key>
    5.36 +        <array>
    5.37 +            <real>-0.12000083923339844</real>
    5.38 +            <real>2.4300003051757813</real>
    5.39 +        </array>
    5.40 +    <key>wave2Dir</key>
    5.41 +        <array>
    5.42 +            <real>0.11999893188476563</real>
    5.43 +            <real>2.4300003051757813</real>
    5.44 +        </array>
    5.45 +    </map>
    5.46 +</llsd>
     6.1 --- a/indra/newview/fschathistory.cpp	Sat Apr 14 11:52:41 2018 +0200
     6.2 +++ b/indra/newview/fschathistory.cpp	Tue May 01 16:43:38 2018 +0200
     6.3 @@ -1513,7 +1513,7 @@
     6.4  		std::string widget_associated_text = "\n";
     6.5  		if (needs_header_text)
     6.6  		{
     6.7 -			widget_associated_text = "[" + chat.mTimeStr + "] ";
     6.8 +			widget_associated_text += "[" + chat.mTimeStr + "] ";
     6.9  			if (utf8str_trim(chat.mFromName).size() != 0 && chat.mFromName != SYSTEM_FROM)
    6.10  			{
    6.11  				widget_associated_text += chat.mFromName + delimiter;
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/indra/newview/fsfloaterbantime.cpp	Tue May 01 16:43:38 2018 +0200
     7.3 @@ -0,0 +1,85 @@
     7.4 +/**
     7.5 +* @file fsfloaterbantime.cpp
     7.6 +* @brief Floater for ban time dialog
     7.7 +*
     7.8 +* $LicenseInfo:firstyear=2012&license=fsviewerlgpl$
     7.9 +* Phoenix Firestorm Viewer Source Code
    7.10 +* Copyright (C) 2018, Liny Odell
    7.11 +*
    7.12 +* This library is free software; you can redistribute it and/or
    7.13 +* modify it under the terms of the GNU Lesser General Public
    7.14 +* License as published by the Free Software Foundation;
    7.15 +* version 2.1 of the License only.
    7.16 +*
    7.17 +* This library is distributed in the hope that it will be useful,
    7.18 +* but WITHOUT ANY WARRANTY; without even the implied warranty of
    7.19 +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    7.20 +* Lesser General Public License for more details.
    7.21 +*
    7.22 +* You should have received a copy of the GNU Lesser General Public
    7.23 +* License along with this library; if not, write to the Free Software
    7.24 +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    7.25 +*
    7.26 +* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
    7.27 +* http://www.firestormviewer.org
    7.28 +* $/LicenseInfo$
    7.29 +*/
    7.30 +
    7.31 +#include "llviewerprecompiledheaders.h"
    7.32 +#include "fsfloaterbantime.h"
    7.33 +
    7.34 +#include "llfloaterreg.h"
    7.35 +#include "llspinctrl.h"
    7.36 +
    7.37 +FSFloaterBanTime::FSFloaterBanTime(const LLSD& target)
    7.38 +:	LLFloater(target)
    7.39 +{
    7.40 +}
    7.41 +
    7.42 +BOOL FSFloaterBanTime::postBuild()
    7.43 +{
    7.44 +	childSetAction("BanConfirmButton", boost::bind(&FSFloaterBanTime::onClickBan, this));
    7.45 +	childSetAction("BanCancelButton", boost::bind(&FSFloaterBanTime::onClickCancel, this));
    7.46 +	
    7.47 +	return TRUE;
    7.48 +}
    7.49 +
    7.50 +FSFloaterBanTime* FSFloaterBanTime::show(select_callback_t callback, const LLUUID& id)
    7.51 +{
    7.52 +	FSFloaterBanTime* floater = LLFloaterReg::showTypedInstance<FSFloaterBanTime>("fs_ban_time");
    7.53 +	if (!floater)
    7.54 +	{
    7.55 +		LL_WARNS() << "Cannot instantiate ban time floater" << LL_ENDL;
    7.56 +		return NULL;
    7.57 +	}
    7.58 +
    7.59 +	floater->mSelectionCallback = callback;
    7.60 +	floater->mAvatar_id = id;
    7.61 +
    7.62 +	return floater;
    7.63 +}
    7.64 +
    7.65 +void FSFloaterBanTime::onClickCancel()
    7.66 +{
    7.67 +	closeFloater();
    7.68 +}
    7.69 +
    7.70 +void FSFloaterBanTime::onClickBan()
    7.71 +{
    7.72 +	if (mSelectionCallback)
    7.73 +	{
    7.74 +		LLSpinCtrl* timectrl = findChild<LLSpinCtrl>("ban_time");
    7.75 +		if (timectrl)
    7.76 +		{
    7.77 +			S32 time = timectrl->getValue().asInteger();
    7.78 +			if (time != 0)
    7.79 +			{
    7.80 +				LLDate now = LLDate::now();
    7.81 +				time = now.secondsSinceEpoch() + (time * 3600);
    7.82 +			}
    7.83 +			mSelectionCallback(mAvatar_id, time);
    7.84 +			timectrl->set(0.f);
    7.85 +		}
    7.86 +	}
    7.87 +	closeFloater();
    7.88 +}
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/indra/newview/fsfloaterbantime.h	Tue May 01 16:43:38 2018 +0200
     8.3 @@ -0,0 +1,49 @@
     8.4 +/**
     8.5 +* @file fsfloaterbantime.cpp
     8.6 +* @brief Floater for ban time dialog
     8.7 +*
     8.8 +* $LicenseInfo:firstyear=2012&license=fsviewerlgpl$
     8.9 +* Phoenix Firestorm Viewer Source Code
    8.10 +* Copyright (C) 2018, Liny Odell
    8.11 +*
    8.12 +* This library is free software; you can redistribute it and/or
    8.13 +* modify it under the terms of the GNU Lesser General Public
    8.14 +* License as published by the Free Software Foundation;
    8.15 +* version 2.1 of the License only.
    8.16 +*
    8.17 +* This library is distributed in the hope that it will be useful,
    8.18 +* but WITHOUT ANY WARRANTY; without even the implied warranty of
    8.19 +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    8.20 +* Lesser General Public License for more details.
    8.21 +*
    8.22 +* You should have received a copy of the GNU Lesser General Public
    8.23 +* License along with this library; if not, write to the Free Software
    8.24 +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
    8.25 +*
    8.26 +* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
    8.27 +* http://www.firestormviewer.org
    8.28 +* $/LicenseInfo$
    8.29 +*/
    8.30 +
    8.31 +#ifndef FS_FLOATERBANTIME_H
    8.32 +#define FS_FLOATERBANTIME_H
    8.33 +
    8.34 +#include "llfloater.h"
    8.35 +
    8.36 +class FSFloaterBanTime : public LLFloater
    8.37 +{
    8.38 +public:
    8.39 +	FSFloaterBanTime(const LLSD& target);
    8.40 +	BOOL postBuild();
    8.41 +	typedef boost::function<void(const LLUUID&, const S32 time)> select_callback_t;
    8.42 +	static FSFloaterBanTime* show(select_callback_t callback, const LLUUID& id);
    8.43 +	
    8.44 +private:
    8.45 +	~FSFloaterBanTime(){};
    8.46 +	void onClickBan();
    8.47 +	void onClickCancel();
    8.48 +	LLUUID mAvatar_id;
    8.49 +	select_callback_t mSelectionCallback;
    8.50 +};
    8.51 +
    8.52 +#endif // FS_FLOATERBANTIME_H
     9.1 --- a/indra/newview/fsfloaterim.cpp	Sat Apr 14 11:52:41 2018 +0200
     9.2 +++ b/indra/newview/fsfloaterim.cpp	Tue May 01 16:43:38 2018 +0200
     9.3 @@ -366,42 +366,31 @@
     9.4  				static LLCachedControl<bool> chat_prefix(gSavedSettings, "FSSupportGroupChatPrefix2");
     9.5  				if (chat_prefix && FSData::getInstance()->isSupportGroup(mSessionID))
     9.6  				{
     9.7 -					
     9.8  					// <FS:PP> FIRE-7075: Skin indicator
     9.9  					static LLCachedControl<std::string> FSInternalSkinCurrent(gSavedSettings, "FSInternalSkinCurrent");
    9.10 -					std::string skinIndicator(FSInternalSkinCurrent);
    9.11 -					LLStringUtil::toLower(skinIndicator);
    9.12 -					if (skinIndicator == "starlight cui")
    9.13 +					std::string skin_indicator(FSInternalSkinCurrent);
    9.14 +					LLStringUtil::toLower(skin_indicator);
    9.15 +					if (skin_indicator == "starlight cui")
    9.16  					{
    9.17 -						skinIndicator = "sc"; // Separate "s" (StarLight) from "sc" (StarLight CUI)
    9.18 +						skin_indicator = "sc"; // Separate "s" (StarLight) from "sc" (StarLight CUI)
    9.19  					}
    9.20  					else
    9.21  					{
    9.22 -						skinIndicator = skinIndicator.substr(0, 1); // "FS 4.4.1f os", "FS 4.4.1v", "FS 4.4.1a", "FS 4.4.1s os", "FS 4.4.1m os" etc.
    9.23 +						skin_indicator = skin_indicator.substr(0, 1); // "FS 4.4.1f os", "FS 4.4.1v", "FS 4.4.1a", "FS 4.4.1s os", "FS 4.4.1m os" etc.
    9.24  					}
    9.25  					// </FS:PP>
    9.26  
    9.27  #if ADDRESS_SIZE == 32
    9.28 -					std::string strFSTag = "(FS ";
    9.29 +					std::string str_fs_tag = "FS ";
    9.30  #else
    9.31 -					std::string strFSTag = "(FS64 ";
    9.32 +					std::string str_fs_tag = "FS64 ";
    9.33  #endif
    9.34 -					if (is_irc_me_prefix(utf8_text))
    9.35 -					{
    9.36 -						utf8_text.insert(4,(strFSTag + LLVersionInfo::getShortVersion() + skinIndicator +
    9.37 +					std::string str_os_tag;
    9.38  #ifdef OPENSIM
    9.39 -											" os" +
    9.40 +					str_os_tag = " os";
    9.41  #endif
    9.42 -											") "));
    9.43 -					}
    9.44 -					else
    9.45 -					{
    9.46 -						utf8_text.insert(0,(strFSTag + LLVersionInfo::getShortVersion() + skinIndicator +
    9.47 -#ifdef OPENSIM
    9.48 -											" os" +
    9.49 -#endif
    9.50 -											") "));
    9.51 -					}
    9.52 +					size_t insert_pos = is_irc_me_prefix(utf8_text) ? 4 : 0;
    9.53 +					utf8_text.insert(insert_pos, ("(" + str_fs_tag + LLVersionInfo::getShortVersion() + skin_indicator + str_os_tag + ") "));
    9.54  				}
    9.55  				
    9.56  				// <FS:Techwolf Lupindo> Allow user to send system info.
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/indra/newview/fsfloaterstatistics.cpp	Tue May 01 16:43:38 2018 +0200
    10.3 @@ -0,0 +1,60 @@
    10.4 +/**
    10.5 +* @file fsfloaterstatistics.cpp
    10.6 +* @brief Floater for Statistics bar
    10.7 +*
    10.8 +* $LicenseInfo:firstyear=2012&license=fsviewerlgpl$
    10.9 +* Phoenix Firestorm Viewer Source Code
   10.10 +* Copyright (C) 2018, Liny Odell
   10.11 +*
   10.12 +* This library is free software; you can redistribute it and/or
   10.13 +* modify it under the terms of the GNU Lesser General Public
   10.14 +* License as published by the Free Software Foundation;
   10.15 +* version 2.1 of the License only.
   10.16 +*
   10.17 +* This library is distributed in the hope that it will be useful,
   10.18 +* but WITHOUT ANY WARRANTY; without even the implied warranty of
   10.19 +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   10.20 +* Lesser General Public License for more details.
   10.21 +*
   10.22 +* You should have received a copy of the GNU Lesser General Public
   10.23 +* License along with this library; if not, write to the Free Software
   10.24 +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
   10.25 +*
   10.26 +* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
   10.27 +* http://www.firestormviewer.org
   10.28 +* $/LicenseInfo$
   10.29 +*/
   10.30 +
   10.31 +#include "llviewerprecompiledheaders.h"
   10.32 +
   10.33 +#include "fsfloaterstatistics.h"
   10.34 +#include "llviewercontrol.h"
   10.35 +
   10.36 +
   10.37 +
   10.38 +FSFloaterStatistics::FSFloaterStatistics(const LLSD& key)
   10.39 +	: LLFloater(key)
   10.40 +{
   10.41 +}
   10.42 +
   10.43 +FSFloaterStatistics::~FSFloaterStatistics()
   10.44 +{
   10.45 +}
   10.46 +
   10.47 +BOOL FSFloaterStatistics::postBuild()
   10.48 +{
   10.49 +	if (gSavedSettings.getBOOL("FSStatisticsNoFocus"))
   10.50 +	{
   10.51 +		setIsChrome(TRUE);
   10.52 +	}
   10.53 +	return TRUE;
   10.54 +}
   10.55 +
   10.56 +void FSFloaterStatistics::onOpen(const LLSD& key)
   10.57 +{
   10.58 +	if (gSavedSettings.getBOOL("FSStatisticsNoFocus"))
   10.59 +	{
   10.60 +		setIsChrome(TRUE);
   10.61 +		setFocus(FALSE);
   10.62 +	}
   10.63 +}
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/indra/newview/fsfloaterstatistics.h	Tue May 01 16:43:38 2018 +0200
    11.3 @@ -0,0 +1,44 @@
    11.4 +/**
    11.5 +* @file fsfloaterstatistics.h
    11.6 +* @brief Floater for Statistics bar
    11.7 +*
    11.8 +* $LicenseInfo:firstyear=2012&license=fsviewerlgpl$
    11.9 +* Phoenix Firestorm Viewer Source Code
   11.10 +* Copyright (C) 2018, Liny Odell
   11.11 +*
   11.12 +* This library is free software; you can redistribute it and/or
   11.13 +* modify it under the terms of the GNU Lesser General Public
   11.14 +* License as published by the Free Software Foundation;
   11.15 +* version 2.1 of the License only.
   11.16 +*
   11.17 +* This library is distributed in the hope that it will be useful,
   11.18 +* but WITHOUT ANY WARRANTY; without even the implied warranty of
   11.19 +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   11.20 +* Lesser General Public License for more details.
   11.21 +*
   11.22 +* You should have received a copy of the GNU Lesser General Public
   11.23 +* License along with this library; if not, write to the Free Software
   11.24 +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
   11.25 +*
   11.26 +* The Phoenix Firestorm Project, Inc., 1831 Oakwood Drive, Fairmont, Minnesota 56031-3225 USA
   11.27 +* http://www.firestormviewer.org
   11.28 +* $/LicenseInfo$
   11.29 +*/
   11.30 +
   11.31 +#ifndef FS_FLOATERSTATISTICS_H
   11.32 +#define FS_FLOATERSTATISTICS_H
   11.33 +
   11.34 +#include "llfloater.h"
   11.35 +
   11.36 +class FSFloaterStatistics : public LLFloater
   11.37 +{
   11.38 +
   11.39 +public:
   11.40 +	FSFloaterStatistics(const LLSD& key);
   11.41 +	virtual ~FSFloaterStatistics();
   11.42 +
   11.43 +	/*virtual*/ void onOpen(const LLSD& key);
   11.44 +	/*virtual*/ BOOL postBuild();
   11.45 +};
   11.46 +
   11.47 +#endif // FS_FLOATERSTATISTICS_H
    12.1 --- a/indra/newview/llappviewer.cpp	Sat Apr 14 11:52:41 2018 +0200
    12.2 +++ b/indra/newview/llappviewer.cpp	Tue May 01 16:43:38 2018 +0200
    12.3 @@ -1162,19 +1162,6 @@
    12.4  	initWindow();
    12.5  	LL_INFOS("InitInfo") << "Window is initialized." << LL_ENDL ;
    12.6  
    12.7 -
    12.8 -
    12.9 -	// <FS:LO> Add ability for the statistics window to not be able to receive focus
   12.10 -	if (gSavedSettings.getBOOL("FSStatisticsNoFocus"))
   12.11 -	{
   12.12 -		LLFloater* stats = LLFloaterReg::getInstance("stats");
   12.13 -		if (stats)
   12.14 -		{
   12.15 -			stats->setIsChrome(TRUE);
   12.16 -		}
   12.17 -	}
   12.18 -	// </FS:LO>
   12.19 -
   12.20  	// initWindow also initializes the Feature List, so now we can initialize this global.
   12.21  	LLCubeMap::sUseCubeMaps = LLFeatureManager::getInstance()->isFeatureAvailable("RenderCubeMap");
   12.22  
    13.1 --- a/indra/newview/lldrawpool.cpp	Sat Apr 14 11:52:41 2018 +0200
    13.2 +++ b/indra/newview/lldrawpool.cpp	Tue May 01 16:43:38 2018 +0200
    13.3 @@ -140,7 +140,7 @@
    13.4  	return NULL;
    13.5  }
    13.6  
    13.7 -//virtual
    13.8 +//virtuals
    13.9  void LLDrawPool::beginRenderPass( S32 pass )
   13.10  {
   13.11  }
    14.1 --- a/indra/newview/lldrawpoolavatar.cpp	Sat Apr 14 11:52:41 2018 +0200
    14.2 +++ b/indra/newview/lldrawpoolavatar.cpp	Tue May 01 16:43:38 2018 +0200
    14.3 @@ -116,6 +116,32 @@
    14.4  {
    14.5  }
    14.6  
    14.7 +LLDrawPoolAvatar::~LLDrawPoolAvatar()
    14.8 +{
    14.9 +    if (!isDead())
   14.10 +    {
   14.11 +        LL_WARNS() << "Destroying avatar drawpool that still contains faces" << LL_ENDL;
   14.12 +    }
   14.13 +}
   14.14 +
   14.15 +// virtual
   14.16 +BOOL LLDrawPoolAvatar::isDead()
   14.17 +{
   14.18 +    if (!LLFacePool::isDead())
   14.19 +    {
   14.20 +        return FALSE;
   14.21 +    }
   14.22 +    
   14.23 +	for (U32 i = 0; i < NUM_RIGGED_PASSES; ++i)
   14.24 +    {
   14.25 +        if (mRiggedFace[i].size() > 0)
   14.26 +        {
   14.27 +            return FALSE;
   14.28 +        }
   14.29 +    }
   14.30 +    return TRUE;
   14.31 +}
   14.32 + 
   14.33  //-----------------------------------------------------------------------------
   14.34  // instancePool()
   14.35  //-----------------------------------------------------------------------------
    15.1 --- a/indra/newview/lldrawpoolavatar.h	Sat Apr 14 11:52:41 2018 +0200
    15.2 +++ b/indra/newview/lldrawpoolavatar.h	Tue May 01 16:43:38 2018 +0200
    15.3 @@ -60,6 +60,8 @@
    15.4  	virtual S32 getVertexShaderLevel() const;
    15.5  
    15.6  	LLDrawPoolAvatar();
    15.7 +    ~LLDrawPoolAvatar();
    15.8 +    /*virtual*/ BOOL isDead();
    15.9  
   15.10  	static LLMatrix4& getModelView();
   15.11  
    16.1 --- a/indra/newview/llfloaterland.cpp	Sat Apr 14 11:52:41 2018 +0200
    16.2 +++ b/indra/newview/llfloaterland.cpp	Tue May 01 16:43:38 2018 +0200
    16.3 @@ -89,6 +89,7 @@
    16.4  #ifdef OPENSIM
    16.5  #include "llviewernetwork.h"
    16.6  #endif // OPENSIM
    16.7 +#include "fsfloaterbantime.h"
    16.8  #include "fsnamelistavatarmenu.h"
    16.9  
   16.10  const F64 COVENANT_REFRESH_TIME_SEC = 60.0f;
   16.11 @@ -3126,6 +3127,7 @@
   16.12  	if (!ids.empty())
   16.13  	{
   16.14  		LLUUID id = ids[0];
   16.15 +		/* <FS:LO> Add ability to do time based temp bans
   16.16  		LLParcel* parcel = mParcel->getParcel();
   16.17  		if (parcel && parcel->addToBanList(id, 0))
   16.18  		{
   16.19 @@ -3139,8 +3141,35 @@
   16.20  			LLViewerParcelMgr::getInstance()->sendParcelAccessListUpdate(lists_to_update);
   16.21  			refresh();
   16.22  		}
   16.23 +		*/
   16.24 +		LLFloater * root_floater = gFloaterView->getParentFloater(this);
   16.25 +		FSFloaterBanTime* timer = FSFloaterBanTime::show(boost::bind(&LLPanelLandAccess::callbackAvatarCBBannedTimed, this, _1, _2), id);
   16.26 +		if (timer)
   16.27 +		{
   16.28 +			root_floater->addDependentFloater(timer);
   16.29 +		}
   16.30 +		// </FS:LO>
   16.31  	}
   16.32  }
   16.33 +//<FS:LO> Add ability to do time based temp bans
   16.34 +// static
   16.35 +void LLPanelLandAccess::callbackAvatarCBBannedTimed(const LLUUID& id, S32 time)
   16.36 +{
   16.37 +	LLParcel* parcel = mParcel->getParcel();
   16.38 +	if (parcel && parcel->addToBanList(id, time))
   16.39 +	{
   16.40 +		U32 lists_to_update = AL_BAN;
   16.41 +		// agent was successfully added to ban list
   16.42 +		// but we also need to check access list to ensure that agent will not be in two lists simultaneously
   16.43 +		if (parcel->removeFromAccessList(id))
   16.44 +		{
   16.45 +			lists_to_update |= AL_ACCESS;
   16.46 +		}
   16.47 +		LLViewerParcelMgr::getInstance()->sendParcelAccessListUpdate(lists_to_update);
   16.48 +		refresh();
   16.49 +	}
   16.50 +}
   16.51 +//</FS:LO>
   16.52  
   16.53  // static
   16.54  void LLPanelLandAccess::onClickRemoveBanned(void* data)
    17.1 --- a/indra/newview/llfloaterland.h	Sat Apr 14 11:52:41 2018 +0200
    17.2 +++ b/indra/newview/llfloaterland.h	Tue May 01 16:43:38 2018 +0200
    17.3 @@ -396,6 +396,7 @@
    17.4  	void onClickAddAccess();
    17.5  	void onClickAddBanned();
    17.6  	void callbackAvatarCBBanned(const uuid_vec_t& ids);
    17.7 +	void callbackAvatarCBBannedTimed(const LLUUID& id, S32 time); //<FS:LO> Add ability to do time based temp bans
    17.8  	void callbackAvatarCBAccess(const uuid_vec_t& ids);
    17.9  
   17.10  protected:
    18.1 --- a/indra/newview/llfloatermodelpreview.cpp	Sat Apr 14 11:52:41 2018 +0200
    18.2 +++ b/indra/newview/llfloatermodelpreview.cpp	Tue May 01 16:43:38 2018 +0200
    18.3 @@ -218,18 +218,23 @@
    18.4  }
    18.5  
    18.6  LLMeshFilePicker::LLMeshFilePicker(LLModelPreview* mp, S32 lod)
    18.7 -// <FS:CR> Threaded Filepickers
    18.8 -//: LLFilePickerThread(LLFilePicker::FFLOAD_COLLADA)
    18.9 -: LLLoadFilePickerThread(LLFilePicker::FFLOAD_COLLADA)
   18.10 -// </FS:CR>
   18.11 +: LLFilePickerThread(LLFilePicker::FFLOAD_COLLADA)
   18.12  	{
   18.13  		mMP = mp;
   18.14  		mLOD = lod;
   18.15  	}
   18.16  
   18.17 -void LLMeshFilePicker::notify(const std::string& filename)
   18.18 +void LLMeshFilePicker::notify(const std::vector<std::string>& filenames)
   18.19  {
   18.20 -	mMP->loadModel(mFile, mLOD);
   18.21 +	if (filenames.size() > 0)
   18.22 +	{
   18.23 +		mMP->loadModel(filenames[0], mLOD);
   18.24 +	}
   18.25 +	else
   18.26 +	{
   18.27 +		//closes floater
   18.28 +		mMP->loadModel(std::string(), mLOD);
   18.29 +	}
   18.30  }
   18.31  
   18.32  void FindModel(LLModelLoader::scene& scene, const std::string& name_to_match, LLModel*& baseModelOut, LLMatrix4& matOut)
    19.1 --- a/indra/newview/llfloatermodelpreview.h	Sat Apr 14 11:52:41 2018 +0200
    19.2 +++ b/indra/newview/llfloatermodelpreview.h	Tue May 01 16:43:38 2018 +0200
    19.3 @@ -215,14 +215,11 @@
    19.4  	LLButton* mCalculateBtn;
    19.5  };
    19.6  
    19.7 -// <FS:CR Threaded Filepickers>
    19.8 -//class LLMeshFilePicker : public LLFilePickerThread
    19.9 -class LLMeshFilePicker : public LLLoadFilePickerThread
   19.10 -// </FS:CR Threaded Filepickers>
   19.11 +class LLMeshFilePicker : public LLFilePickerThread
   19.12  {
   19.13  public:
   19.14  	LLMeshFilePicker(LLModelPreview* mp, S32 lod);
   19.15 -	virtual void notify(const std::string& filename);
   19.16 +	virtual void notify(const std::vector<std::string>& filenames);
   19.17  
   19.18  private:
   19.19  	LLModelPreview* mMP;
    20.1 --- a/indra/newview/llglsandbox.cpp	Sat Apr 14 11:52:41 2018 +0200
    20.2 +++ b/indra/newview/llglsandbox.cpp	Tue May 01 16:43:38 2018 +0200
    20.3 @@ -1200,7 +1200,7 @@
    20.4      delete [] pixels;
    20.5  
    20.6  	//make a dummy triangle to draw with
    20.7 -	LLPointer<LLVertexBuffer> buff = new LLVertexBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, GL_STATIC_DRAW_ARB);
    20.8 +	LLPointer<LLVertexBuffer> buff = new LLVertexBuffer(LLVertexBuffer::MAP_VERTEX | LLVertexBuffer::MAP_TEXCOORD0, GL_STREAM_DRAW_ARB);
    20.9  
   20.10  	if (!buff->allocateBuffer(3, 0, true))
   20.11  	{
    21.1 --- a/indra/newview/llinventorypanel.cpp	Sat Apr 14 11:52:41 2018 +0200
    21.2 +++ b/indra/newview/llinventorypanel.cpp	Tue May 01 16:43:38 2018 +0200
    21.3 @@ -1230,7 +1230,7 @@
    21.4  			{
    21.5  				if(prev_folder_item)
    21.6  				{
    21.7 -					LLFolderBridge* prev_bridge = static_cast<LLFolderBridge*>(prev_folder_item->getViewModelItem());
    21.8 +					LLFolderBridge* prev_bridge = dynamic_cast<LLFolderBridge*>(prev_folder_item->getViewModelItem());
    21.9  					if(prev_bridge)
   21.10  					{
   21.11  						prev_bridge->clearDisplayName();
   21.12 @@ -1239,7 +1239,7 @@
   21.13  					}
   21.14  				}
   21.15  
   21.16 -				LLFolderBridge* bridge = static_cast<LLFolderBridge*>(folder_item->getViewModelItem());
   21.17 +				LLFolderBridge* bridge = dynamic_cast<LLFolderBridge*>(folder_item->getViewModelItem());
   21.18  				if(bridge)
   21.19  				{
   21.20  					bridge->clearDisplayName();
   21.21 @@ -1254,7 +1254,7 @@
   21.22  	{
   21.23  		if(prev_folder_item)
   21.24  		{
   21.25 -			LLFolderBridge* prev_bridge = static_cast<LLFolderBridge*>(prev_folder_item->getViewModelItem());
   21.26 +			LLFolderBridge* prev_bridge = dynamic_cast<LLFolderBridge*>(prev_folder_item->getViewModelItem());
   21.27  			if(prev_bridge)
   21.28  			{
   21.29  				prev_bridge->clearDisplayName();
   21.30 @@ -1274,7 +1274,7 @@
   21.31  	LLFolderViewItem* folder_item = getItemByID(mPreviousSelectedFolder);
   21.32  	if(folder_item)
   21.33  	{
   21.34 -		LLFolderBridge* bridge = (LLFolderBridge*)folder_item->getViewModelItem();
   21.35 +		LLFolderBridge* bridge = dynamic_cast<LLFolderBridge*>(folder_item->getViewModelItem());
   21.36  		if(bridge)
   21.37  		{
   21.38  			bridge->clearDisplayName();
    22.1 --- a/indra/newview/llpanelmaininventory.cpp	Sat Apr 14 11:52:41 2018 +0200
    22.2 +++ b/indra/newview/llpanelmaininventory.cpp	Tue May 01 16:43:38 2018 +0200
    22.3 @@ -691,15 +691,26 @@
    22.4  	}
    22.5  	mFilterSubString = "";
    22.6  
    22.7 -	LLSidepanelInventory * sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
    22.8 -	if (sidepanel_inventory)
    22.9 +	// <FS:Ansariel> FIRE-22509: Only apply inbox filter on primary inventory window
   22.10 +	//LLSidepanelInventory * sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
   22.11 +	//if (sidepanel_inventory)
   22.12 +	//{
   22.13 +	//	LLPanelMarketplaceInbox* inbox_panel = sidepanel_inventory->getChild<LLPanelMarketplaceInbox>("marketplace_inbox");
   22.14 +	//	if (inbox_panel)
   22.15 +	//	{
   22.16 +	//		inbox_panel->onClearSearch();
   22.17 +	//	}
   22.18 +	//}
   22.19 +	LLFloater* inv_floater = getParentByType<LLFloater>();
   22.20 +	if (inv_floater)
   22.21  	{
   22.22 -		LLPanelMarketplaceInbox* inbox_panel = sidepanel_inventory->getChild<LLPanelMarketplaceInbox>("marketplace_inbox");
   22.23 +		LLPanelMarketplaceInbox* inbox_panel = inv_floater->findChild<LLPanelMarketplaceInbox>("marketplace_inbox");
   22.24  		if (inbox_panel)
   22.25  		{
   22.26  			inbox_panel->onClearSearch();
   22.27  		}
   22.28  	}
   22.29 +	// </FS:Ansariel>
   22.30  }
   22.31  
   22.32  void LLPanelMainInventory::onFilterEdit(const std::string& search_string )
   22.33 @@ -754,15 +765,26 @@
   22.34  	}
   22.35  	// </FS:Ansariel> Separate search for inventory tabs from Satomi Ahn (FIRE-913 & FIRE-6862)
   22.36  
   22.37 -	LLSidepanelInventory * sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
   22.38 -	if (sidepanel_inventory)
   22.39 +	// <FS:Ansariel> FIRE-22509: Only apply inbox filter on primary inventory window
   22.40 +	//LLSidepanelInventory * sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
   22.41 +	//if (sidepanel_inventory)
   22.42 +	//{
   22.43 +	//	LLPanelMarketplaceInbox* inbox_panel = sidepanel_inventory->getChild<LLPanelMarketplaceInbox>("marketplace_inbox");
   22.44 +	//	if (inbox_panel)
   22.45 +	//	{
   22.46 +	//		inbox_panel->onFilterEdit(search_string);
   22.47 +	//	}
   22.48 +	//}
   22.49 +	LLFloater* inv_floater = getParentByType<LLFloater>();
   22.50 +	if (inv_floater)
   22.51  	{
   22.52 -		LLPanelMarketplaceInbox* inbox_panel = sidepanel_inventory->getChild<LLPanelMarketplaceInbox>("marketplace_inbox");
   22.53 +		LLPanelMarketplaceInbox* inbox_panel = inv_floater->findChild<LLPanelMarketplaceInbox>("marketplace_inbox");
   22.54  		if (inbox_panel)
   22.55  		{
   22.56  			inbox_panel->onFilterEdit(search_string);
   22.57  		}
   22.58  	}
   22.59 +	// </FS:Ansariel>
   22.60  }
   22.61  
   22.62  // <FS:Zi> Filter dropdown
    23.1 --- a/indra/newview/llviewercontrol.cpp	Sat Apr 14 11:52:41 2018 +0200
    23.2 +++ b/indra/newview/llviewercontrol.cpp	Tue May 01 16:43:38 2018 +0200
    23.3 @@ -952,6 +952,17 @@
    23.4  }
    23.5  // </FS:Ansariel>
    23.6  
    23.7 +// <FS:LO> Add ability for the statistics window to not be able to receive focus
    23.8 +void handleFSStatisticsNoFocusChanged(const LLSD& newvalue)
    23.9 +{
   23.10 +	LLFloater* stats = LLFloaterReg::findInstance("stats");
   23.11 +	if (stats)
   23.12 +	{
   23.13 +		stats->setIsChrome(newvalue.asBoolean());
   23.14 +	}
   23.15 +}
   23.16 +// </FS:LO>
   23.17 +
   23.18  ////////////////////////////////////////////////////////////////////////////
   23.19  
   23.20  void settings_setup_listeners()
   23.21 @@ -1182,6 +1193,10 @@
   23.22  	gSavedSettings.getControl("ShowNavbarFavoritesPanel")->getSignal()->connect(boost::bind(&handleNavbarSettingsChanged));
   23.23  	gSavedSettings.getControl("ShowNavbarNavigationPanel")->getSignal()->connect(boost::bind(&handleNavbarSettingsChanged));
   23.24  	// </FS:Ansariel>
   23.25 +
   23.26 +	// <FS:LO> Add ability for the statistics window to not be able to receive focus
   23.27 +	gSavedSettings.getControl("FSStatisticsNoFocus")->getSignal()->connect(boost::bind(&handleFSStatisticsNoFocusChanged, _2));
   23.28 +	// </FS:LO>
   23.29  }
   23.30  
   23.31  #if TEST_CACHED_CONTROL
    24.1 --- a/indra/newview/llviewerfloaterreg.cpp	Sat Apr 14 11:52:41 2018 +0200
    24.2 +++ b/indra/newview/llviewerfloaterreg.cpp	Tue May 01 16:43:38 2018 +0200
    24.3 @@ -176,6 +176,7 @@
    24.4  #include "fsfloateraddtocontactset.h"
    24.5  #include "fsfloaterassetblacklist.h"
    24.6  #include "fsfloateravatarrendersettings.h"
    24.7 +#include "fsfloaterbantime.h"
    24.8  #include "fsfloatercontacts.h"
    24.9  #include "fsfloatercontactsetconfiguration.h"
   24.10  #include "fsfloaterexport.h"
   24.11 @@ -190,6 +191,7 @@
   24.12  #include "fsfloaterprofile.h"
   24.13  #include "fsfloaterradar.h"
   24.14  #include "fsfloatersearch.h"
   24.15 +#include "fsfloaterstatistics.h"
   24.16  #include "fsfloaterteleporthistory.h"
   24.17  #include "fsfloatervoicecontrols.h"
   24.18  #include "fsfloatervolumecontrols.h"
   24.19 @@ -408,7 +410,10 @@
   24.20  	LLFloaterReg::add("sell_land", "floater_sell_land.xml", &LLFloaterSellLand::buildFloater);
   24.21  	LLFloaterReg::add("settings_debug", "floater_settings_debug.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSettingsDebug>);
   24.22  	LLFloaterReg::add("sound_devices", "floater_sound_devices.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSoundDevices>);
   24.23 -	LLFloaterReg::add("stats", "floater_stats.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloater>);
   24.24 +	// <FS:LO> Add ability for the statistics window to not be able to receive focus
   24.25 +	//LLFloaterReg::add("stats", "floater_stats.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloater>);
   24.26 +	LLFloaterReg::add("stats", "floater_stats.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterStatistics>);
   24.27 +	// </FS:LO
   24.28  	LLFloaterReg::add("start_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterRunQueue>);
   24.29  	LLFloaterReg::add("scene_load_stats", "floater_scene_load_stats.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSceneLoadStats>);
   24.30  	LLFloaterReg::add("stop_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotRunQueue>);
   24.31 @@ -454,6 +459,7 @@
   24.32  	LLFloaterReg::add("floater_profile", "floater_profile_view.xml",&LLFloaterReg::build<FSFloaterProfile>);
   24.33  	LLFloaterReg::add("fs_asset_blacklist", "floater_fs_asset_blacklist.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterAssetBlacklist>);
   24.34  	LLFloaterReg::add("fs_avatar_render_settings", "floater_fs_avatar_render_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterAvatarRenderSettings>);
   24.35 +	LLFloaterReg::add("fs_ban_time", "floater_fs_ban_duration.xml", &LLFloaterReg::build<FSFloaterBanTime>);
   24.36  	LLFloaterReg::add("fs_blocklist", "floater_fs_blocklist.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterBlocklist>);
   24.37  	LLFloaterReg::add("fs_add_contact", "floater_fs_contact_add.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterAddToContactSet>);
   24.38  	LLFloaterReg::add("fs_contact_set_config", "floater_fs_contact_set_configuration.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterContactSetConfiguration>);
    25.1 --- a/indra/newview/llviewermenufile.cpp	Sat Apr 14 11:52:41 2018 +0200
    25.2 +++ b/indra/newview/llviewermenufile.cpp	Tue May 01 16:43:38 2018 +0200
    25.3 @@ -138,23 +138,37 @@
    25.4  }
    25.5  
    25.6  //virtual 
    25.7 -// <FS:CR Threaded Filepickers>
    25.8 -//void LLFilePickerThread::run()
    25.9 -void LLLoadFilePickerThread::run()
   25.10 -// </FS:CR Threaded Filepickers>
   25.11 +void LLFilePickerThread::run()
   25.12  {
   25.13 +#if LL_WINDOWS
   25.14 +	bool blocking = false;
   25.15 +#else
   25.16 +	bool blocking = true; // modal
   25.17 +#endif
   25.18 +
   25.19  	LLFilePicker picker;
   25.20 -#if LL_WINDOWS
   25.21 -	if (picker.getOpenFile(mFilter, false))
   25.22 +
   25.23 +	if (mIsSaveDialog)
   25.24  	{
   25.25 -		mFile = picker.getFirstFile();
   25.26 +		if (picker.getSaveFile(mSaveFilter, mProposedName, blocking))
   25.27 +		{
   25.28 +			mResponses.push_back(picker.getFirstFile());
   25.29 +		}
   25.30  	}
   25.31 -#else
   25.32 -	if (picker.getOpenFile(mFilter, true))
   25.33 +	else
   25.34  	{
   25.35 -		mFile = picker.getFirstFile();
   25.36 +		bool result = mIsGetMultiple ? picker.getMultipleOpenFiles(mLoadFilter, blocking) : picker.getOpenFile(mLoadFilter, blocking);
   25.37 +		if (result)
   25.38 +		{
   25.39 +			std::string filename = picker.getFirstFile(); // consider copying mFiles directly
   25.40 +			do
   25.41 +			{
   25.42 +				mResponses.push_back(filename);
   25.43 +				filename = picker.getNextFile();
   25.44 +			}
   25.45 +			while (mIsGetMultiple && !filename.empty());
   25.46 +		}
   25.47  	}
   25.48 -#endif
   25.49  
   25.50  	{
   25.51  		LLMutexLock lock(sMutex);
   25.52 @@ -163,80 +177,6 @@
   25.53  
   25.54  }
   25.55  
   25.56 -// <FS:CR Threaded Filepickers>
   25.57 -//virtual 
   25.58 -void LLSaveFilePickerThread::run()
   25.59 -{
   25.60 -	LLFilePicker picker;
   25.61 -#if LL_WINDOWS
   25.62 -	if (picker.getSaveFile(mFilter, mDefaultFilename, false))
   25.63 -	{
   25.64 -		mFile = picker.getFirstFile();
   25.65 -	}
   25.66 -#else
   25.67 -	if (picker.getSaveFile(mFilter, mDefaultFilename, true))
   25.68 -	{
   25.69 -		mFile = picker.getFirstFile();
   25.70 -	}
   25.71 -#endif
   25.72 -
   25.73 -	{
   25.74 -		LLMutexLock lock(sMutex);
   25.75 -		sDeadQ.push(this);
   25.76 -	}
   25.77 -
   25.78 -}
   25.79 -
   25.80 -void LLLoadMultipleFilePickerThread::run()
   25.81 -{
   25.82 -	LLFilePicker picker;
   25.83 -#if LL_WINDOWS
   25.84 -	if (picker.getMultipleOpenFiles(mFilter, false))
   25.85 -	{
   25.86 -		std::string file = picker.getFirstFile();
   25.87 -		while (!file.empty())
   25.88 -		{
   25.89 -			mFiles.push_back(file);
   25.90 -			file = picker.getNextFile();
   25.91 -		}
   25.92 -	}
   25.93 -#else
   25.94 -	if (picker.getMultipleOpenFiles(mFilter, true))
   25.95 -	{
   25.96 -		std::string file = picker.getFirstFile();
   25.97 -		while (!file.empty())
   25.98 -		{
   25.99 -			mFiles.push_back(file);
  25.100 -			file = picker.getNextFile();
  25.101 -		}
  25.102 -	}
  25.103 -#endif
  25.104 -
  25.105 -	{
  25.106 -		LLMutexLock lock(sMutex);
  25.107 -		sDeadQ.push(this);
  25.108 -	}
  25.109 -}
  25.110 -
  25.111 -//virtual
  25.112 -void LLGenericLoadFilePicker::notify(const std::string& filename)
  25.113 -{
  25.114 -	mSignal(filename);
  25.115 -}
  25.116 -
  25.117 -//virtual
  25.118 -void LLGenericSaveFilePicker::notify(const std::string& filename)
  25.119 -{
  25.120 -	mSignal(filename);
  25.121 -}
  25.122 -
  25.123 -//virtual
  25.124 -void LLGenericLoadMultipleFilePicker::notify(std::list<std::string> filenames)
  25.125 -{
  25.126 -	mSignal(filenames);
  25.127 -}
  25.128 -// </FS:CR Threaded Filepickers>
  25.129 -
  25.130  //static
  25.131  void LLFilePickerThread::initClass()
  25.132  {
  25.133 @@ -261,17 +201,7 @@
  25.134  		while (!sDeadQ.empty())
  25.135  		{
  25.136  			LLFilePickerThread* thread = sDeadQ.front();
  25.137 -			// <FS:Ansariel> Threaded file pickers
  25.138 -			//thread->notify(thread->mFile);
  25.139 -			if (thread->mMultiple)
  25.140 -			{
  25.141 -				thread->notify(thread->mFiles);
  25.142 -			}
  25.143 -			else
  25.144 -			{
  25.145 -				thread->notify(thread->mFile);
  25.146 -			}
  25.147 -			// </FS:Ansariel>
  25.148 +			thread->notify(thread->mResponses);
  25.149  			delete thread;
  25.150  			sDeadQ.pop();
  25.151  		}
    26.1 --- a/indra/newview/llviewermenufile.h	Sat Apr 14 11:52:41 2018 +0200
    26.2 +++ b/indra/newview/llviewermenufile.h	Tue May 01 16:43:38 2018 +0200
    26.3 @@ -82,86 +82,52 @@
    26.4  	static void cleanupClass();
    26.5  	static void clearDead();
    26.6  
    26.7 -	std::string mFile; 
    26.8 -	std::list<std::string> mFiles; // <FS:Ansariel> Threaded file pickers
    26.9 +	std::vector<std::string> mResponses;
   26.10 +	std::string mProposedName;
   26.11  
   26.12 -// <FS:CR Threaded Filepickers>
   26.13 -	//LLFilePicker::ELoadFilter mFilter;
   26.14 -	//
   26.15 -	//LLFilePickerThread(LLFilePicker::ELoadFilter filter)
   26.16 -	//	: LLThread("file picker"), mFilter(filter)
   26.17 -	LLFilePickerThread(bool multiple)
   26.18 -		: LLThread("file picker"), mMultiple(multiple)
   26.19 -// </FS:CR Threaded Filepickers>
   26.20 +	LLFilePicker::ELoadFilter mLoadFilter;
   26.21 +	LLFilePicker::ESaveFilter mSaveFilter;
   26.22 +	bool mIsSaveDialog;
   26.23 +	bool mIsGetMultiple;
   26.24 +
   26.25 +	LLFilePickerThread(LLFilePicker::ELoadFilter filter, bool get_multiple = false)
   26.26 +		: LLThread("file picker"), mLoadFilter(filter), mIsSaveDialog(false), mIsGetMultiple(get_multiple)
   26.27  	{
   26.28 +	}
   26.29  
   26.30 +	LLFilePickerThread(LLFilePicker::ESaveFilter filter, const std::string &proposed_name)
   26.31 +		: LLThread("file picker"), mSaveFilter(filter), mIsSaveDialog(true), mProposedName(proposed_name)
   26.32 +	{
   26.33  	}
   26.34  
   26.35  	void getFile();
   26.36  
   26.37 -// <FS:CR Threaded Filepickers>
   26.38 -	void getFiles() { getFile(); }
   26.39 -
   26.40 -	virtual void run() = 0;
   26.41 -
   26.42 -	virtual void notify(const std::string& filename) = 0;
   26.43 -
   26.44 -	virtual void notify(std::list<std::string> filenames) = 0;
   26.45 -
   26.46 -	bool mMultiple;
   26.47 -};
   26.48 -
   26.49 -class LLLoadFilePickerThread : public LLFilePickerThread
   26.50 -{ //multi-threaded file picker (runs system specific file picker in background and calls "notify" from main thread)
   26.51 -public:
   26.52 -
   26.53 -	LLFilePicker::ELoadFilter mFilter;
   26.54 -
   26.55 -	LLLoadFilePickerThread(LLFilePicker::ELoadFilter filter)
   26.56 -		: LLFilePickerThread(false), mFilter(filter)
   26.57 -	{
   26.58 -
   26.59 -	}
   26.60 -// </FS:CR Threaded Filepickers>
   26.61 -
   26.62  	virtual void run();
   26.63  
   26.64 -	virtual void notify(const std::string& filename) = 0;
   26.65 -
   26.66 -	virtual void notify(std::list<std::string> filenames) {}; // <FS:Ansariel> Threaded file pickers
   26.67 +	virtual void notify(const std::vector<std::string>& filenames) = 0;
   26.68  };
   26.69  
   26.70  // <FS:CR Threaded Filepickers>
   26.71 -class LLSaveFilePickerThread : public LLFilePickerThread
   26.72 -{ //multi-threaded file picker (runs system specific file picker in background and calls "notify" from main thread)
   26.73 -public:
   26.74 -
   26.75 -	LLFilePicker::ESaveFilter mFilter;
   26.76 -
   26.77 -	std::string mDefaultFilename;
   26.78 -
   26.79 -	LLSaveFilePickerThread(LLFilePicker::ESaveFilter filter, const std::string& default_name)
   26.80 -		: LLFilePickerThread(false), mFilter(filter), mDefaultFilename(default_name)
   26.81 -	{
   26.82 -
   26.83 -	}
   26.84 -
   26.85 -	virtual void run();
   26.86 -
   26.87 -	virtual void notify(const std::string& filename) = 0;
   26.88 -
   26.89 -	virtual void notify(std::list<std::string> filenames) {};
   26.90 -};
   26.91 -
   26.92 -class LLGenericLoadFilePicker : public LLLoadFilePickerThread
   26.93 +class LLGenericLoadFilePicker : public LLFilePickerThread
   26.94  {
   26.95  public:
   26.96  	LLGenericLoadFilePicker(LLFilePicker::ELoadFilter filter, boost::function<void (const std::string&)> notify_slot)
   26.97 -		: LLLoadFilePickerThread(filter)
   26.98 +		: LLFilePickerThread(filter)
   26.99  	{
  26.100  		mSignal.connect(notify_slot);
  26.101  	}
  26.102 -	virtual void notify(const std::string& filename);
  26.103 +
  26.104 +	virtual void notify(const std::vector<std::string>& filenames)
  26.105 +	{
  26.106 +		if (!filenames.empty())
  26.107 +		{
  26.108 +			mSignal(filenames[0]);
  26.109 +		}
  26.110 +		else
  26.111 +		{
  26.112 +			mSignal(std::string());
  26.113 +		}
  26.114 +	}
  26.115  
  26.116  	static void open(LLFilePicker::ELoadFilter filter, boost::function<void (const std::string&)> notify_slot)
  26.117  	{
  26.118 @@ -172,15 +138,26 @@
  26.119  	boost::signals2::signal<void (const std::string&)> mSignal;
  26.120  };
  26.121  
  26.122 -class LLGenericSaveFilePicker : public LLSaveFilePickerThread
  26.123 +class LLGenericSaveFilePicker : public LLFilePickerThread
  26.124  {
  26.125  public:
  26.126  	LLGenericSaveFilePicker(LLFilePicker::ESaveFilter filter, const std::string& default_name, boost::function<void (const std::string&)> notify_slot)
  26.127 -		: LLSaveFilePickerThread(filter, default_name)
  26.128 +		: LLFilePickerThread(filter, default_name)
  26.129  	{
  26.130  		mSignal.connect(notify_slot);
  26.131  	}
  26.132 -	virtual void notify(const std::string& filename);
  26.133 +
  26.134 +	virtual void notify(const std::vector<std::string>& filenames)
  26.135 +	{
  26.136 +		if (!filenames.empty())
  26.137 +		{
  26.138 +			mSignal(filenames[0]);
  26.139 +		}
  26.140 +		else
  26.141 +		{
  26.142 +			mSignal(std::string());
  26.143 +		}
  26.144 +	}
  26.145  
  26.146  	static void open(LLFilePicker::ESaveFilter filter, const std::string& default_name, boost::function<void (const std::string&)> notify_slot)
  26.147  	{
  26.148 @@ -192,44 +169,33 @@
  26.149  };
  26.150  
  26.151  
  26.152 -class LLLoadMultipleFilePickerThread : public LLFilePickerThread
  26.153 -{ //multi-threaded file picker (runs system specific file picker in background and calls "notify" from main thread)
  26.154 -public:
  26.155 -
  26.156 -	LLFilePicker::ELoadFilter mFilter;
  26.157 -
  26.158 -	LLLoadMultipleFilePickerThread(LLFilePicker::ELoadFilter filter)
  26.159 -		: LLFilePickerThread(true), mFilter(filter)
  26.160 -	{
  26.161 -
  26.162 -	}
  26.163 -
  26.164 -	virtual void run();
  26.165 -
  26.166 -	virtual void notify(const std::string& filename) {};
  26.167 -
  26.168 -	virtual void notify(std::list<std::string> filenames) = 0;
  26.169 -};
  26.170 -
  26.171 -class LLGenericLoadMultipleFilePicker : public LLLoadMultipleFilePickerThread
  26.172 +class LLGenericLoadMultipleFilePicker : public LLFilePickerThread
  26.173  {
  26.174  public:
  26.175  	LLGenericLoadMultipleFilePicker(LLFilePicker::ELoadFilter filter, boost::function<void (std::list<std::string> filenames)> notify_slot)
  26.176 -		: LLLoadMultipleFilePickerThread(filter)
  26.177 +		: LLFilePickerThread(filter, true)
  26.178  	{
  26.179  		mSignal.connect(notify_slot);
  26.180  	}
  26.181 -	virtual void notify(std::list<std::string> filenames);
  26.182 +
  26.183 +	virtual void notify(const std::vector<std::string>& filenames)
  26.184 +	{
  26.185 +		std::list<std::string> files;
  26.186 +		if (!filenames.empty())
  26.187 +		{
  26.188 +			files.assign(filenames.begin(), filenames.end());
  26.189 +		}
  26.190 +		mSignal(files);
  26.191 +	}
  26.192  
  26.193  	static void open(LLFilePicker::ELoadFilter filter, boost::function<void (std::list<std::string> filenames)> notify_slot)
  26.194  	{
  26.195 -		(new LLGenericLoadMultipleFilePicker(filter, notify_slot))->getFiles();
  26.196 +		(new LLGenericLoadMultipleFilePicker(filter, notify_slot))->getFile();
  26.197  	}
  26.198  
  26.199  protected:
  26.200  	boost::signals2::signal<void (std::list<std::string> filenames)> mSignal;
  26.201  };
  26.202 -
  26.203  // <FS:CR Threaded Filepickers>
  26.204  
  26.205  #endif
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/indra/newview/skins/default/xui/de/floater_fs_ban_duration.xml	Tue May 01 16:43:38 2018 +0200
    27.3 @@ -0,0 +1,12 @@
    27.4 +<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    27.5 +<floater name="Ban duration" title="Ban-Dauer" width="180">
    27.6 +	<text name="duration_textbox" width="68">
    27.7 +		Ban-Dauer:
    27.8 +	</text>
    27.9 +	<spinner name="ban_time" tool_tip="Legt fest, wie lange der Einwohner gebannt wird - 0 bedeutet unbeschränkt"/>
   27.10 +	<text name="hours_textbox">
   27.11 +		Stunden.
   27.12 +	</text>
   27.13 +	<button label="OK" name="BanConfirmButton"/>
   27.14 +	<button label="Abbrechen" name="BanCancelButton"/>
   27.15 +</floater>
    28.1 --- a/indra/newview/skins/default/xui/de/floater_fs_import.xml	Sat Apr 14 11:52:41 2018 +0200
    28.2 +++ b/indra/newview/skins/default/xui/de/floater_fs_import.xml	Tue May 01 16:43:38 2018 +0200
    28.3 @@ -32,7 +32,7 @@
    28.4  		Hochladen von Asset [ASSET] von [ASSETTOTAL].
    28.5  	</floater.string>
    28.6  	<floater.string name="upload_cost">
    28.7 -		Gesamte Kosten der Uploads: $L [COST].
    28.8 +		Gesamte Kosten der Uploads: [COST] L$.
    28.9  	</floater.string>
   28.10  	<floater.string name="object">
   28.11  		Objekt
    29.1 --- a/indra/newview/skins/default/xui/de/panel_preferences_UI.xml	Sat Apr 14 11:52:41 2018 +0200
    29.2 +++ b/indra/newview/skins/default/xui/de/panel_preferences_UI.xml	Tue May 01 16:43:38 2018 +0200
    29.3 @@ -74,6 +74,7 @@
    29.4  			(Erfordert Neustart)
    29.5  		</text>
    29.6  		<check_box label="Shortcuts anpassen, die von Linux verwendet werden (nur Linux; erfordert Neustart)" name="FSRemapLinuxShortcuts" tool_tip="Aktivieren, die Shortcuts umzudefinieren, die bereits durch das Linux-Betriebssystem verwendet werden, z.B. STRG-ALT-Fx."/>
    29.7 +		<check_box label="Verhindern, dass Statistik-Fenster Fokus erhält" name="FSStatisticsNoFocus" tool_tip="Falls aktiviert, wird verhindert, dass das Statistik-Fenster den Fokus erhält, wenn ein anderes Fenster geschlossen wird (Aktionen wie das Ändern des Layouts sind auch weiterhin möglich)."/>
    29.8  		<slider label_width="230" label="Wiederholungen für blinkende IM-Reiter:" name="ButtonsFlashCount"/>
    29.9  		<slider label_width="230" label="Aufblinkdauer für IM-Reiter:" tool_tip="Legt fest, wie lange in Sekunden ein einzelnes Aufblinken eines IM-Reiter dauert - verwendet für IM-Benachrichtungen" name="ButtonFlashRate"/>
   29.10  		<text name="ButtonFlashRateText">
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/indra/newview/skins/default/xui/en/floater_fs_ban_duration.xml	Tue May 01 16:43:38 2018 +0200
    30.3 @@ -0,0 +1,72 @@
    30.4 +<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    30.5 +<floater
    30.6 + can_minimize="false"
    30.7 + can_tear_off="false"
    30.8 + can_resize="false"
    30.9 + can_drag_on_left="false"
   30.10 + can_close="true"
   30.11 + height="60"
   30.12 + layout="topleft"
   30.13 + name="Ban duration"
   30.14 + title="Ban duration"
   30.15 + single_instance="true" 
   30.16 + width="175">
   30.17 +    <text
   30.18 +     type="string"
   30.19 +     length="1"
   30.20 +     follows="left|top"
   30.21 +     height="15"
   30.22 +     layout="topleft"
   30.23 +     left="5"
   30.24 +     name="duration_textbox"
   30.25 +     top="10"
   30.26 +     width="75">
   30.27 +        Ban duration:
   30.28 +    </text>
   30.29 +    <spinner
   30.30 +     allow_text_entry="true"
   30.31 +     decimal_digits="0"
   30.32 +     follows="left|top"
   30.33 +     height="20"
   30.34 +     increment="1"
   30.35 +     layout="topleft"
   30.36 +     left_pad="0"
   30.37 +     max_val="8766"
   30.38 +     min_val="0"
   30.39 +     name="ban_time"
   30.40 +     top_delta="-4"
   30.41 +     width="50"
   30.42 +     tool_tip="How long to ban for, 0 means forever"/>
   30.43 +     <text
   30.44 +     type="string"
   30.45 +     length="1"
   30.46 +     follows="left|top"
   30.47 +     height="15"
   30.48 +     layout="topleft"
   30.49 +     left_pad="5"
   30.50 +     name="hours_textbox"
   30.51 +     top="10"
   30.52 +     width="75">
   30.53 +        hours.
   30.54 +    </text>
   30.55 +    <button
   30.56 +     follows="left|top"
   30.57 +     height="23"
   30.58 +     label="OK"
   30.59 +     layout="topleft"
   30.60 +     left="5"
   30.61 +     name="BanConfirmButton"
   30.62 +     top_delta="20"
   30.63 +     width="80">
   30.64 +    </button>
   30.65 +    <button
   30.66 +     follows="left|top"
   30.67 +     height="23"
   30.68 +     label="Cancel"
   30.69 +     layout="topleft"
   30.70 +     right="-5"
   30.71 +     name="BanCancelButton"
   30.72 +     top_delta="0"
   30.73 +     width="80">
   30.74 +    </button>
   30.75 +</floater>
    31.1 --- a/indra/newview/skins/default/xui/en/floater_fs_import.xml	Sat Apr 14 11:52:41 2018 +0200
    31.2 +++ b/indra/newview/skins/default/xui/en/floater_fs_import.xml	Tue May 01 16:43:38 2018 +0200
    31.3 @@ -52,7 +52,7 @@
    31.4      </floater.string>
    31.5      <floater.string
    31.6       name="upload_cost">
    31.7 -        Total cost of uploads: $L [COST].
    31.8 +        Total cost of uploads: L$ [COST].
    31.9      </floater.string>
   31.10  	<floater.string
   31.11  		name="object">
    32.1 --- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml	Sat Apr 14 11:52:41 2018 +0200
    32.2 +++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml	Tue May 01 16:43:38 2018 +0200
    32.3 @@ -33,7 +33,7 @@
    32.4       left="322"
    32.5       mouse_opaque="true"
    32.6       name="lock"
    32.7 -     top="4"
    32.8 +     top="1"
    32.9       width="18" />
   32.10      <text
   32.11       type="string"
    33.1 --- a/indra/newview/skins/default/xui/en/floater_script_preview.xml	Sat Apr 14 11:52:41 2018 +0200
    33.2 +++ b/indra/newview/skins/default/xui/en/floater_script_preview.xml	Tue May 01 16:43:38 2018 +0200
    33.3 @@ -31,7 +31,7 @@
    33.4       left="426"
    33.5       mouse_opaque="true"
    33.6       name="lock"
    33.7 -     top="4"
    33.8 +     top="1"
    33.9       width="18" />
   33.10      <text
   33.11       type="string"
    34.1 --- a/indra/newview/skins/default/xui/en/panel_preferences_UI.xml	Sat Apr 14 11:52:41 2018 +0200
    34.2 +++ b/indra/newview/skins/default/xui/en/panel_preferences_UI.xml	Tue May 01 16:43:38 2018 +0200
    34.3 @@ -508,6 +508,16 @@
    34.4           tool_tip="If enabled, shortcuts that are already used by the Linux operating system (such as CTRL-ALT-Fx) will be remapped."
    34.5           top_pad="5"
    34.6           width="256" />
    34.7 +        <check_box
    34.8 +         control_name="FSStatisticsNoFocus"
    34.9 +         height="16"
   34.10 +         label="Prevent statistics window from gaining focus"
   34.11 +         layout="topleft"
   34.12 +         left="5"
   34.13 +         name="FSStatisticsNoFocus"
   34.14 +         tool_tip="If enabled, the statistics window will never receive focus when another window is closed (actions such as changing graph layout for items are still possible when enabled)."
   34.15 +         top_pad="3"
   34.16 +         width="256" />
   34.17  
   34.18          <slider
   34.19           control_name="FlashCount"
    35.1 --- a/indra/newview/skins/default/xui/es/floater_fs_import.xml	Sat Apr 14 11:52:41 2018 +0200
    35.2 +++ b/indra/newview/skins/default/xui/es/floater_fs_import.xml	Tue May 01 16:43:38 2018 +0200
    35.3 @@ -32,7 +32,7 @@
    35.4  		Subiendo activo [ASSET] de [ASSETTOTAL].
    35.5  	</floater.string>
    35.6  	<floater.string name="upload_cost">
    35.7 -		Coste total de la subida: [COST] $L.
    35.8 +		Coste total de la subida: [COST] L$.
    35.9  	</floater.string>
   35.10  	<floater.string name="object">
   35.11  		objeto
    36.1 --- a/indra/newview/skins/default/xui/fr/floater_fs_import.xml	Sat Apr 14 11:52:41 2018 +0200
    36.2 +++ b/indra/newview/skins/default/xui/fr/floater_fs_import.xml	Tue May 01 16:43:38 2018 +0200
    36.3 @@ -13,7 +13,7 @@
    36.4  	<floater.string name="sound_uploading">Upload du son [SOUND] sur [SOUNDTOTAL].</floater.string>
    36.5  	<floater.string name="animation_uploading">Upload de l'animation [ANIMATION] sur [ANIMATIONTOTAL].</floater.string>
    36.6  	<floater.string name="asset_uploading">Upload de l'objet [ASSET] sur [ASSETTOTAL].</floater.string>
    36.7 -	<floater.string name="upload_cost">Cout total de l'upload : [COST] $L.</floater.string>
    36.8 +	<floater.string name="upload_cost">Cout total de l'upload : [COST] L$.</floater.string>
    36.9  	<floater.string name="object">objet</floater.string>
   36.10  	<floater.string name="objects">objets</floater.string>
   36.11  	<text name="filename_text">[FILENAME]</text>
    37.1 --- a/indra/newview/skins/default/xui/pl/floater_web_content.xml	Sat Apr 14 11:52:41 2018 +0200
    37.2 +++ b/indra/newview/skins/default/xui/pl/floater_web_content.xml	Tue May 01 16:43:38 2018 +0200
    37.3 @@ -12,11 +12,6 @@
    37.4  		</layout_panel>
    37.5  		<layout_panel name="debug_controls">
    37.6  			<button tool_tip="Strona główna testów przeglądarki internetowej" name="web_test_home_page" />
    37.7 -			<button tool_tip="Test wideo w formacie MPEG4" name="VLC Plugin Test MPEG4" />
    37.8 -			<button tool_tip="Test wideo w formacie MKV" name="VLC Plugin Test MKV" />
    37.9 -			<button tool_tip="Test wideo w formacie WebM" name="VLC Plugin Test WebM" />
   37.10 -			<button tool_tip="Test audio w formacie MP3" name="VLC Plugin Test MP3" />
   37.11 -			<button tool_tip="Test formatu FLV" name="VLC Plugin Test FLV" />
   37.12  		</layout_panel>
   37.13  		<layout_panel name="external_controls">
   37.14  			<text name="plugin_fail_text">
    38.1 --- a/indra/newview/skins/default/xui/pl/panel_preferences_UI.xml	Sat Apr 14 11:52:41 2018 +0200
    38.2 +++ b/indra/newview/skins/default/xui/pl/panel_preferences_UI.xml	Tue May 01 16:43:38 2018 +0200
    38.3 @@ -70,6 +70,7 @@
    38.4              (wymaga restartu)
    38.5          </text>
    38.6          <check_box label="Przemapuj skróty klawiszowe na nieużywane przez Linuksa (tylko Linux; wymaga restartu)" name="FSRemapLinuxShortcuts" tool_tip="Gdy zaznaczysz tą opcję, to skróty klawiszowe używane już przez system operacyjny Linux (takie jak CTRL-ALT-Fx) zostaną przemapowane w przeglądarce." />
    38.7 +        <check_box label="Zapobiegaj wysuwaniu okna statystyk na pierwszy plan" name="FSStatisticsNoFocus" tool_tip="Gdy zaznaczysz tą opcję, to okno statystyk nigdy nie wysunie się na pierwszy plan, gdy inne zostanie zamknięte. Akcje takie jak zmienianie ułożenia wykresów ciągle będą możliwe." />
    38.8          <slider label="Ile razy mrugają karty IM:" name="ButtonsFlashCount" />
    38.9          <slider label="Czas mrugnięcia karty IM:" tool_tip="Czas w sekundach, jaki jest potrzebny karcie wiadomości IM na mrugnięcie - używane przy powiadomieniach IM" name="ButtonFlashRate" />
   38.10          <text name="ButtonFlashRateText">
    39.1 --- a/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml	Sat Apr 14 11:52:41 2018 +0200
    39.2 +++ b/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml	Tue May 01 16:43:38 2018 +0200
    39.3 @@ -17,7 +17,7 @@
    39.4  				Przeglądarka internetowa:
    39.5  			</text>
    39.6  			<radio_group name="preferred_browser_behavior">
    39.7 -				<radio_item label="Własna (Chrome, Firefox, IE) dla wszystkich linków" name="new_external" tool_tip="Używa domyślnej systemowej przeglądarki internetowej do przeglądania plików pomocy, otwierania linków itp. Nie jest zalecane zaznaczanie tej opcji, jeśli uruchamiasz Second Life na pełnym ekranie." />
    39.8 +				<radio_item label="Domyślna systemowa dla wszystkich linków" name="new_external" tool_tip="Używa domyślnej systemowej przeglądarki internetowej do przeglądania plików pomocy, otwierania linków itp. Nie jest zalecane zaznaczanie tej opcji, jeśli uruchamiasz Second Life na pełnym ekranie." />
    39.9  				<radio_item label="Wbudowana tylko dla linków Second Life" name="new_internal" tool_tip="Używa domyślnej systemowej przeglądarki internetowej do przeglądania plików pomocy, otwierania linków itp. Przeglądarka wbudowana będzie używana tylko dla linków LindenLab/SecondLife." />
   39.10  				<radio_item label="Wbudowana dla wszystkich linków" name="new_internal_all" />
   39.11  			</radio_group>
   39.12 @@ -32,7 +32,6 @@
   39.13  			</combo_box>
   39.14  			<button label="Wyczyść bufor przeglądarki WWW" name="ClearWebBrowserCache" width="195"/>
   39.15  			<check_box label="Włącz wtyczki" name="browser_plugins_enabled"/>
   39.16 -			<check_box label="Akceptuj ciasteczka" name="cookies_enabled"/>
   39.17  			<check_box label="Włącz Javascript" name="browser_javascript_enabled"/>
   39.18  			<check_box label="Włącz wyskakujące okienka przeglądarki mediów" name="media_popup_enabled"/>
   39.19  			<button label="Dostosuj ustawienia proxy" label_selected="Dostosuj ustawienia proxy" name="set_proxy"/>
    40.1 --- a/indra/newview/skins/metaharper/xui/en/panel_toolbar_view.xml	Sat Apr 14 11:52:41 2018 +0200
    40.2 +++ b/indra/newview/skins/metaharper/xui/en/panel_toolbar_view.xml	Tue May 01 16:43:38 2018 +0200
    40.3 @@ -84,7 +84,7 @@
    40.4                 mouse_opaque="false"
    40.5                 name="chiclet_container"
    40.6                 tab_stop="false"
    40.7 -               top_delta="17"
    40.8 +               top="40"
    40.9                 bg_visible="false"
   40.10                 width="20">
   40.11          </panel>          
   40.12 @@ -102,7 +102,7 @@
   40.13          </panel>
   40.14  		<!-- END FS:Ansariel: For chiclets and notices at bottom -->
   40.15        </layout_panel>
   40.16 -      <layout_panel name="right_toolbar_panel"
   40.17 +       <layout_panel name="right_toolbar_panel"
   40.18                      auto_resize="false"
   40.19                      height="500"
   40.20                      width="30"

mercurial