aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra')
-rw-r--r--linden/indra/llcommon/llversionviewer.h2
-rw-r--r--linden/indra/newview/English.lproj/InfoPlist.strings4
-rw-r--r--linden/indra/newview/Info-Imprudence.plist2
-rw-r--r--linden/indra/newview/app_settings/settings.xml46
-rw-r--r--linden/indra/newview/hippoGridManager.cpp17
-rw-r--r--linden/indra/newview/llagent.cpp107
-rw-r--r--linden/indra/newview/llfilepicker.cpp12
-rw-r--r--linden/indra/newview/llfilepicker.h3
-rw-r--r--linden/indra/newview/llfloaterchat.cpp6
-rw-r--r--linden/indra/newview/llfloaterchatterbox.cpp11
-rw-r--r--linden/indra/newview/llfloatermap.cpp141
-rw-r--r--linden/indra/newview/llfloatermap.h16
-rw-r--r--linden/indra/newview/llfloaterwater.cpp85
-rw-r--r--linden/indra/newview/llfloaterwater.h3
-rw-r--r--linden/indra/newview/llfloaterwindlight.cpp11
-rw-r--r--linden/indra/newview/llfloaterwindlight.h2
-rw-r--r--linden/indra/newview/llpanelgeneral.cpp6
-rw-r--r--linden/indra/newview/llprefsim.cpp2
-rw-r--r--linden/indra/newview/llpreviewscript.cpp64
-rw-r--r--linden/indra/newview/llpreviewscript.h2
-rw-r--r--linden/indra/newview/llviewermenu.cpp3
-rw-r--r--linden/indra/newview/llviewermessage.cpp78
-rw-r--r--linden/indra/newview/llviewerregion.cpp6
-rw-r--r--linden/indra/newview/llwindlightremotectrl.cpp36
-rw-r--r--linden/indra/newview/res/viewerRes.rc8
-rw-r--r--linden/indra/newview/rlvdefines.h201
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_chatterbox_vertical.xml14
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_directory.xml10
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_mini_map.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml6
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_water.xml16
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml17
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml28
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml12
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml30
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_script_ed_panel.xml86
-rw-r--r--linden/indra/newview/skins/silver/xui/en-us/floater_script_queue.xml13
38 files changed, 886 insertions, 234 deletions
diff --git a/linden/indra/llcommon/llversionviewer.h b/linden/indra/llcommon/llversionviewer.h
index b8f7ae8..30d8530 100644
--- a/linden/indra/llcommon/llversionviewer.h
+++ b/linden/indra/llcommon/llversionviewer.h
@@ -45,6 +45,6 @@ const char * const IMP_VIEWER_NAME = "Imprudence";
45const S32 IMP_VERSION_MAJOR = 1; 45const S32 IMP_VERSION_MAJOR = 1;
46const S32 IMP_VERSION_MINOR = 2; 46const S32 IMP_VERSION_MINOR = 2;
47const S32 IMP_VERSION_PATCH = 0; 47const S32 IMP_VERSION_PATCH = 0;
48const char * const IMP_VERSION_TEST = "beta"; 48const char * const IMP_VERSION_TEST = "beta 2";
49 49
50#endif 50#endif
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings
index 074005b..14a0102 100644
--- a/linden/indra/newview/English.lproj/InfoPlist.strings
+++ b/linden/indra/newview/English.lproj/InfoPlist.strings
@@ -1,5 +1,5 @@
1/* Localized versions of Info.plist keys */ 1/* Localized versions of Info.plist keys */
2 2
3CFBundleName = "Imprudence"; 3CFBundleName = "Imprudence";
4CFBundleShortVersionString = "Imprudence version 1.2.0 beta"; 4CFBundleShortVersionString = "Imprudence version 1.2.0 beta 2";
5CFBundleGetInfoString = "Imprudence version 1.2.0 beta"; 5CFBundleGetInfoString = "Imprudence version 1.2.0 beta 2";
diff --git a/linden/indra/newview/Info-Imprudence.plist b/linden/indra/newview/Info-Imprudence.plist
index 750afd7..e44dcbe 100644
--- a/linden/indra/newview/Info-Imprudence.plist
+++ b/linden/indra/newview/Info-Imprudence.plist
@@ -32,7 +32,7 @@
32 </dict> 32 </dict>
33 </array> 33 </array>
34 <key>CFBundleVersion</key> 34 <key>CFBundleVersion</key>
35 <string>1.2.0 beta</string> 35 <string>1.2.0 beta 2</string>
36 <key>CSResourcesFileMapped</key> 36 <key>CSResourcesFileMapped</key>
37 <true/> 37 <true/>
38</dict> 38</dict>
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index 8ffcb19..55e6131 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -5088,7 +5088,7 @@
5088 <key>Value</key> 5088 <key>Value</key>
5089 <integer>1</integer> 5089 <integer>1</integer>
5090 </map> 5090 </map>
5091 <key>MiniMapNotify</key> 5091 <key>MiniMapNotifyChatRange</key>
5092 <map> 5092 <map>
5093 <key>Comment</key> 5093 <key>Comment</key>
5094 <string>Notify when avatars enter chat range</string> 5094 <string>Notify when avatars enter chat range</string>
@@ -5099,6 +5099,17 @@
5099 <key>Value</key> 5099 <key>Value</key>
5100 <integer>1</integer> 5100 <integer>1</integer>
5101 </map> 5101 </map>
5102 <key>MiniMapNotifySimRange</key>
5103 <map>
5104 <key>Comment</key>
5105 <string>Notify when avatars enters the current sim</string>
5106 <key>Persist</key>
5107 <integer>1</integer>
5108 <key>Type</key>
5109 <string>Boolean</string>
5110 <key>Value</key>
5111 <integer>0</integer>
5112 </map>
5102 <key>MiniMapPrimMaxRadius</key> 5113 <key>MiniMapPrimMaxRadius</key>
5103 <map> 5114 <map>
5104 <key>Comment</key> 5115 <key>Comment</key>
@@ -7992,6 +8003,28 @@
7992 <key>Value</key> 8003 <key>Value</key>
7993 <integer>0</integer> 8004 <integer>0</integer>
7994 </map> 8005 </map>
8006 <key>SpamCount</key>
8007 <map>
8008 <key>Comment</key>
8009 <string>Number of items spammed per time set in SpamTime. RECOMMENDED IS 4.000</string>
8010 <key>Persist</key>
8011 <integer>1</integer>
8012 <key>Type</key>
8013 <string>F32</string>
8014 <key>Value</key>
8015 <real>4.0</real>
8016 </map>
8017 <key>SpamTime</key>
8018 <map>
8019 <key>Comment</key>
8020 <string>Time of Evalulating spam. RECOMMENDED NUMBER IS 1.000</string>
8021 <key>Persist</key>
8022 <integer>1</integer>
8023 <key>Type</key>
8024 <string>F32</string>
8025 <key>Value</key>
8026 <real>1.0</real>
8027 </map>
7995 <key>SpeakingColor</key> 8028 <key>SpeakingColor</key>
7996 <map> 8029 <map>
7997 <key>Comment</key> 8030 <key>Comment</key>
@@ -10074,6 +10107,17 @@
10074 <key>Value</key> 10107 <key>Value</key>
10075 <integer>0</integer> 10108 <integer>0</integer>
10076 </map> 10109 </map>
10110 <key>VerticalIMTabs</key>
10111 <map>
10112 <key>Comment</key>
10113 <string>Enable vertical layout for IM tabs</string>
10114 <key>Persist</key>
10115 <integer>1</integer>
10116 <key>Type</key>
10117 <string>Boolean</string>
10118 <key>Value</key>
10119 <integer>0</integer>
10120 </map>
10077 <key>VivoxDebugLevel</key> 10121 <key>VivoxDebugLevel</key>
10078 <map> 10122 <map>
10079 <key>Comment</key> 10123 <key>Comment</key>
diff --git a/linden/indra/newview/hippoGridManager.cpp b/linden/indra/newview/hippoGridManager.cpp
index 7a2a3e9..71e3a95 100644
--- a/linden/indra/newview/hippoGridManager.cpp
+++ b/linden/indra/newview/hippoGridManager.cpp
@@ -469,14 +469,15 @@ std::string HippoGridInfo::sanitizeGridNick(std::string &gridnick)
469// static 469// static
470std::string HippoGridInfo::sanitizeUri(std::string &uri) 470std::string HippoGridInfo::sanitizeUri(std::string &uri)
471{ 471{
472 if (uri.empty()) { 472 // if (uri.empty()) {
473 return ""; 473 // return "";
474 } 474 // }
475 475
476 // If last character in uri is not "/" 476 // // If last character in uri is not "/"
477 if (uri.compare(uri.length()-1, 1, "/") != 0) { 477 // // NOTE: This wrongly assumes that all URIs should end with "/"!
478 return uri + '/'; 478 // if (uri.compare(uri.length()-1, 1, "/") != 0) {
479 } 479 // return uri + '/';
480 // }
480 481
481 return uri; 482 return uri;
482} 483}
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp
index e6438f4..022e1cc 100644
--- a/linden/indra/newview/llagent.cpp
+++ b/linden/indra/newview/llagent.cpp
@@ -187,6 +187,8 @@ const F32 OBJECT_MIN_ZOOM = 0.02f;
187const F32 APPEARANCE_MIN_ZOOM = 0.39f; 187const F32 APPEARANCE_MIN_ZOOM = 0.39f;
188const F32 APPEARANCE_MAX_ZOOM = 8.f; 188const F32 APPEARANCE_MAX_ZOOM = 8.f;
189 189
190const F32 DIST_FUDGE = 16.f; // meters
191
190// fidget constants 192// fidget constants
191const F32 MIN_FIDGET_TIME = 8.f; // seconds 193const F32 MIN_FIDGET_TIME = 8.f; // seconds
192const F32 MAX_FIDGET_TIME = 20.f; // seconds 194const F32 MAX_FIDGET_TIME = 20.f; // seconds
@@ -1716,6 +1718,10 @@ F32 LLAgent::getCameraZoomFraction()
1716 // already [0,1] 1718 // already [0,1]
1717 return mHUDTargetZoom; 1719 return mHUDTargetZoom;
1718 } 1720 }
1721 else if (gSavedSettings.getBOOL("DisableCameraConstraints"))
1722 {
1723 return mCameraZoomFraction;
1724 }
1719 else if (mFocusOnAvatar && cameraThirdPerson()) 1725 else if (mFocusOnAvatar && cameraThirdPerson())
1720 { 1726 {
1721 return clamp_rescale(mCameraZoomFraction, MIN_ZOOM_FRACTION, MAX_ZOOM_FRACTION, 1.f, 0.f); 1727 return clamp_rescale(mCameraZoomFraction, MIN_ZOOM_FRACTION, MAX_ZOOM_FRACTION, 1.f, 0.f);
@@ -1728,7 +1734,6 @@ F32 LLAgent::getCameraZoomFraction()
1728 else 1734 else
1729 { 1735 {
1730 F32 min_zoom; 1736 F32 min_zoom;
1731 const F32 DIST_FUDGE = 16.f; // meters
1732 F32 max_zoom = llmin(mDrawDistance - DIST_FUDGE, 1737 F32 max_zoom = llmin(mDrawDistance - DIST_FUDGE,
1733 LLWorld::getInstance()->getRegionWidthInMeters() - DIST_FUDGE, 1738 LLWorld::getInstance()->getRegionWidthInMeters() - DIST_FUDGE,
1734 MAX_CAMERA_DISTANCE_FROM_AGENT); 1739 MAX_CAMERA_DISTANCE_FROM_AGENT);
@@ -1777,10 +1782,9 @@ void LLAgent::setCameraZoomFraction(F32 fraction)
1777 else 1782 else
1778 { 1783 {
1779 F32 min_zoom = LAND_MIN_ZOOM; 1784 F32 min_zoom = LAND_MIN_ZOOM;
1780 const F32 DIST_FUDGE = 16.f; // meters
1781 F32 max_zoom = llmin(mDrawDistance - DIST_FUDGE, 1785 F32 max_zoom = llmin(mDrawDistance - DIST_FUDGE,
1782 LLWorld::getInstance()->getRegionWidthInMeters() - DIST_FUDGE, 1786 LLWorld::getInstance()->getRegionWidthInMeters() - DIST_FUDGE,
1783 MAX_CAMERA_DISTANCE_FROM_AGENT); 1787 MAX_CAMERA_DISTANCE_FROM_AGENT);
1784 1788
1785 if (mFocusObject.notNull()) 1789 if (mFocusObject.notNull())
1786 { 1790 {
@@ -1799,7 +1803,14 @@ void LLAgent::setCameraZoomFraction(F32 fraction)
1799 1803
1800 LLVector3d camera_offset_dir = mCameraFocusOffsetTarget; 1804 LLVector3d camera_offset_dir = mCameraFocusOffsetTarget;
1801 camera_offset_dir.normalize(); 1805 camera_offset_dir.normalize();
1802 mCameraFocusOffsetTarget = camera_offset_dir * rescale(fraction, 0.f, 1.f, max_zoom, min_zoom); 1806 if (gSavedSettings.getBOOL("DisableCameraConstraints"))
1807 {
1808 mCameraFocusOffsetTarget = camera_offset_dir * rescale(fraction, 0.f, 262140.f, 1.f, min_zoom);
1809 }
1810 else
1811 {
1812 mCameraFocusOffsetTarget = camera_offset_dir * rescale(fraction, 0.f, 1.f, max_zoom, min_zoom);
1813 }
1803 } 1814 }
1804 startCameraAnimation(); 1815 startCameraAnimation();
1805} 1816}
@@ -1898,29 +1909,32 @@ void LLAgent::cameraZoomIn(const F32 fraction)
1898 } 1909 }
1899 } 1910 }
1900 1911
1901 new_distance = llmax(new_distance, min_zoom);
1902
1903 // Don't zoom too far back 1912 // Don't zoom too far back
1904 const F32 DIST_FUDGE = 16.f; // meters 1913 // Actually, let's when disable camera constraints is active -- McCabe
1905 F32 max_distance = llmin(mDrawDistance - DIST_FUDGE, 1914 if (!gSavedSettings.getBOOL("DisableCameraConstraints"))
1906 LLWorld::getInstance()->getRegionWidthInMeters() - DIST_FUDGE );
1907
1908 if (new_distance > max_distance)
1909 { 1915 {
1910 new_distance = max_distance; 1916 new_distance = llmax(new_distance, min_zoom);
1911 1917
1912 /* 1918 F32 max_distance = llmin(mDrawDistance - DIST_FUDGE,
1913 // Unless camera is unlocked 1919 LLWorld::getInstance()->getRegionWidthInMeters() - DIST_FUDGE );
1914 if (!LLViewerCamera::sDisableCameraConstraints) 1920
1921 if (new_distance > max_distance)
1915 { 1922 {
1916 return; 1923 new_distance = max_distance;
1924
1925 /*
1926 // Unless camera is unlocked
1927 if (!LLViewerCamera::sDisableCameraConstraints)
1928 {
1929 return;
1930 }
1931 */
1917 } 1932 }
1918 */
1919 }
1920 1933
1921 if( cameraCustomizeAvatar() ) 1934 if( cameraCustomizeAvatar() )
1922 { 1935 {
1923 new_distance = llclamp( new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM ); 1936 new_distance = llclamp( new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM );
1937 }
1924 } 1938 }
1925 1939
1926 mCameraFocusOffsetTarget = new_distance * camera_offset_unit; 1940 mCameraFocusOffsetTarget = new_distance * camera_offset_unit;
@@ -1951,40 +1965,41 @@ void LLAgent::cameraOrbitIn(const F32 meters)
1951 LLVector3d camera_offset_unit(mCameraFocusOffsetTarget); 1965 LLVector3d camera_offset_unit(mCameraFocusOffsetTarget);
1952 F32 current_distance = (F32)camera_offset_unit.normalize(); 1966 F32 current_distance = (F32)camera_offset_unit.normalize();
1953 F32 new_distance = current_distance - meters; 1967 F32 new_distance = current_distance - meters;
1954 F32 min_zoom = LAND_MIN_ZOOM; 1968
1955 1969 // Don't zoom too far back
1956 // Don't move through focus point 1970 // Actually, let's when disable camera constraints is active -- McCabe
1957 if (mFocusObject.notNull()) 1971 if (!gSavedSettings.getBOOL("DisableCameraConstraints"))
1958 { 1972 {
1959 if (mFocusObject->isAvatar()) 1973 F32 min_zoom = LAND_MIN_ZOOM;
1960 { 1974 F32 max_distance;
1961 min_zoom = AVATAR_MIN_ZOOM; 1975
1962 } 1976 // Don't move through focus point
1963 else 1977 if (mFocusObject.notNull())
1964 { 1978 {
1965 min_zoom = OBJECT_MIN_ZOOM; 1979 if (mFocusObject->isAvatar())
1980 {
1981 min_zoom = AVATAR_MIN_ZOOM;
1982 }
1983 else
1984 {
1985 min_zoom = OBJECT_MIN_ZOOM;
1986 }
1966 } 1987 }
1967 }
1968 1988
1969 new_distance = llmax(new_distance, min_zoom); 1989 new_distance = llmax(new_distance, min_zoom);
1970 1990
1971 // Don't zoom too far back 1991 max_distance = llmin(mDrawDistance - DIST_FUDGE,
1972 const F32 DIST_FUDGE = 16.f; // meters 1992 LLWorld::getInstance()->getRegionWidthInMeters() - DIST_FUDGE );
1973 F32 max_distance = llmin(mDrawDistance - DIST_FUDGE,
1974 LLWorld::getInstance()->getRegionWidthInMeters() - DIST_FUDGE );
1975 1993
1976 if (new_distance > max_distance) 1994 if (new_distance > max_distance)
1977 {
1978 // Unless camera is unlocked
1979 if (!gSavedSettings.getBOOL("DisableCameraConstraints"))
1980 { 1995 {
1981 return; 1996 return;
1982 } 1997 }
1983 }
1984 1998
1985 if( CAMERA_MODE_CUSTOMIZE_AVATAR == getCameraMode() ) 1999 if( CAMERA_MODE_CUSTOMIZE_AVATAR == getCameraMode() )
1986 { 2000 {
1987 new_distance = llclamp( new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM ); 2001 new_distance = llclamp( new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM );
2002 }
1988 } 2003 }
1989 2004
1990 // Compute new camera offset 2005 // Compute new camera offset
diff --git a/linden/indra/newview/llfilepicker.cpp b/linden/indra/newview/llfilepicker.cpp
index 954a274..ece30dd 100644
--- a/linden/indra/newview/llfilepicker.cpp
+++ b/linden/indra/newview/llfilepicker.cpp
@@ -327,6 +327,18 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename)
327 L"Targa, Bitmap Images (*.tga; *.bmp)\0*.tga;*.bmp\0" \ 327 L"Targa, Bitmap Images (*.tga; *.bmp)\0*.tga;*.bmp\0" \
328 L"\0"; 328 L"\0";
329 break; 329 break;
330 case FFSAVE_TEXT:
331 if (filename.empty())
332 {
333 wcsncpy( mFilesW,L"untitled.txt", FILENAME_BUFFER_SIZE); /*Flawfinder: ignore*/
334 }
335 mOFN.lpstrDefExt = L"txt";
336 mOFN.lpstrFilter =
337 L"Text files (*.txt)\0*.txt\0"
338 L"RTF Files (*.rtf)\0*.rtf\0"
339 L"LSL Files (*.lsl)\0*.lsl\0"
340 L"\0";
341 break;
330 case FFSAVE_WAV: 342 case FFSAVE_WAV:
331 if (filename.empty()) 343 if (filename.empty())
332 { 344 {
diff --git a/linden/indra/newview/llfilepicker.h b/linden/indra/newview/llfilepicker.h
index aea414a..f9f859f 100644
--- a/linden/indra/newview/llfilepicker.h
+++ b/linden/indra/newview/llfilepicker.h
@@ -90,6 +90,7 @@ public:
90 FFLOAD_XML = 6, 90 FFLOAD_XML = 6,
91 FFLOAD_SLOBJECT = 7, 91 FFLOAD_SLOBJECT = 7,
92 FFLOAD_RAW = 8, 92 FFLOAD_RAW = 8,
93 FFLOAD_TEXT = 9,
93 }; 94 };
94 95
95 enum ESaveFilter 96 enum ESaveFilter
@@ -109,6 +110,8 @@ public:
109 FFSAVE_J2C = 12, 110 FFSAVE_J2C = 12,
110 FFSAVE_PNG = 13, 111 FFSAVE_PNG = 13,
111 FFSAVE_JPEG = 14, 112 FFSAVE_JPEG = 14,
113 FFSAVE_HPA = 15,
114 FFSAVE_TEXT = 16,
112 }; 115 };
113 116
114 // open the dialog. This is a modal operation 117 // open the dialog. This is a modal operation
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp
index cc86fce..79c4aa6 100644
--- a/linden/indra/newview/llfloaterchat.cpp
+++ b/linden/indra/newview/llfloaterchat.cpp
@@ -213,9 +213,9 @@ void add_timestamped_line(LLViewerTextEditor* edit, LLChat chat, const LLColor4&
213 } 213 }
214 214
215 // If the chat line has an associated url, link it up to the name. 215 // If the chat line has an associated url, link it up to the name.
216 if (!chat.mURL.empty() && 216 if ((!chat.mURL.empty() && line.length() > chat.mFromName.length()) &&
217 (line.length() > chat.mFromName.length() && 217 (line.find(chat.mFromName,0) == 0 || (line.find(chat.mFromName,0) == 4 &&
218 (line.find(chat.mFromName,0) == 4 || line.find(chat.mFromName,0) == 0))) 218 color == gSavedSettings.getColor4("ObjectIMColor")))) // hack to make sure IMs in chat history don't hightlight
219 { 219 {
220 std::string start_line; 220 std::string start_line;
221 if (line.find(chat.mFromName,0) == 4) // IMs are prefaced with "IM: " 221 if (line.find(chat.mFromName,0) == 4) // IMs are prefaced with "IM: "
diff --git a/linden/indra/newview/llfloaterchatterbox.cpp b/linden/indra/newview/llfloaterchatterbox.cpp
index 5ef5a30..e18cca0 100644
--- a/linden/indra/newview/llfloaterchatterbox.cpp
+++ b/linden/indra/newview/llfloaterchatterbox.cpp
@@ -97,7 +97,16 @@ LLFloaterChatterBox::LLFloaterChatterBox(const LLSD& seed) :
97{ 97{
98 mAutoResize = FALSE; 98 mAutoResize = FALSE;
99 99
100 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_chatterbox.xml", NULL, FALSE); 100 // check if vertical tabs is selected
101 if (gSavedSettings.getBOOL("VerticalIMTabs"))
102 {
103 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_chatterbox_vertical.xml", NULL, FALSE);
104 }
105 else
106 {
107 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_chatterbox.xml", NULL, FALSE);
108 }
109
101 if (gSavedSettings.getBOOL("ContactsTornOff")) 110 if (gSavedSettings.getBOOL("ContactsTornOff"))
102 { 111 {
103 LLFloaterMyFriends* floater_contacts = LLFloaterMyFriends::getInstance(0); 112 LLFloaterMyFriends* floater_contacts = LLFloaterMyFriends::getInstance(0);
diff --git a/linden/indra/newview/llfloatermap.cpp b/linden/indra/newview/llfloatermap.cpp
index e90e3b4..49563a6 100644
--- a/linden/indra/newview/llfloatermap.cpp
+++ b/linden/indra/newview/llfloatermap.cpp
@@ -80,6 +80,7 @@ LLFloaterMap::LLFloaterMap(const LLSD& key)
80 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_mini_map.xml", &factory_map, FALSE); 80 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_mini_map.xml", &factory_map, FALSE);
81 81
82 mChatAvatars.clear(); 82 mChatAvatars.clear();
83 mTypingAvatars.clear();
83} 84}
84 85
85 86
@@ -95,6 +96,7 @@ BOOL LLFloaterMap::postBuild()
95{ 96{
96 // Send the drag handle to the back, but make sure close stays on top 97 // Send the drag handle to the back, but make sure close stays on top
97 sendChildToBack(getDragHandle()); 98 sendChildToBack(getDragHandle());
99 sendChildToFront(getChild<LLButton>("llfloater_minimize_btn"));
98 sendChildToFront(getChild<LLButton>("llfloater_close_btn")); 100 sendChildToFront(getChild<LLButton>("llfloater_close_btn"));
99 setIsChrome(TRUE); 101 setIsChrome(TRUE);
100 102
@@ -236,16 +238,16 @@ void LLFloaterMap::populateRadar()
236 238
237 S32 scroll_pos = mRadarList->getScrollPos(); 239 S32 scroll_pos = mRadarList->getScrollPos();
238 240
239 LLVector3d current_pos = gAgent.getPositionGlobal();
240
241 // clear count 241 // clear count
242 std::stringstream avatar_count; 242 std::stringstream avatar_count;
243 avatar_count.str(""); 243 avatar_count.str("");
244 244
245 // find what avatars you can see 245 // find what avatars you can see
246 F32 range = gSavedSettings.getF32("NearMeRange");
247 LLVector3d current_pos = gAgent.getPositionGlobal();
246 std::vector<LLUUID> avatar_ids; 248 std::vector<LLUUID> avatar_ids;
247 std::vector<LLVector3d> positions; 249 std::vector<LLVector3d> positions;
248 LLWorld::getInstance()->getAvatars(&avatar_ids, &positions, current_pos, gSavedSettings.getF32("NearMeRange")); 250 LLWorld::getInstance()->getAvatars(&avatar_ids, &positions);
249 251
250 LLSD element; 252 LLSD element;
251 253
@@ -265,21 +267,26 @@ void LLFloaterMap::populateRadar()
265 std::string fullname = getSelectedName(avatar_ids[i]); 267 std::string fullname = getSelectedName(avatar_ids[i]);
266 if (!fullname.empty()) 268 if (!fullname.empty())
267 { 269 {
270 bool notify_chat = gSavedSettings.getBOOL("MiniMapNotifyChatRange");
271 bool notify_sim = gSavedSettings.getBOOL("MiniMapNotifySimRange");
268 // [RLVa:KB] - Alternate: Imprudence-1.2.0 272 // [RLVa:KB] - Alternate: Imprudence-1.2.0
269 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) 273 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES))
270 { 274 {
271 fullname = gRlvHandler.getAnonym(fullname); 275 fullname = gRlvHandler.getAnonym(fullname);
276 notify_chat = false;
277 notify_sim = false;
272 } 278 }
273 // [/RLVa:KB] 279 // [/RLVa:KB]
274 280
275 // check if they're in chat range and notify user 281 // check if they're in certain ranges and notify user if we've enabled that
276 LLVector3d temp = positions[i] - current_pos; 282 LLVector3d temp = positions[i] - current_pos;
277 F32 distance = llround((F32)temp.magVec(), 0.1f); 283 F32 distance = llround((F32)temp.magVec(), 0.1f);
278 char dist[32]; 284 /*char dist[32];
279 sprintf(dist, "%.1f", distance); 285 sprintf(dist, "%.1f", distance);
280 std::string dist_string = dist; 286 std::string dist_string = dist;*/
287 std::string dist_string = llformat("%.1f", distance);
281 288
282 if (gSavedSettings.getBOOL("MiniMapNotify")) 289 if (notify_chat)
283 { 290 {
284 if (distance < 20.0f) 291 if (distance < 20.0f)
285 { 292 {
@@ -295,7 +302,6 @@ void LLFloaterMap::populateRadar()
295 removeFromChatList(avatar_ids[i]); 302 removeFromChatList(avatar_ids[i]);
296 } 303 }
297 } 304 }
298
299 updateChatList(avatar_ids); 305 updateChatList(avatar_ids);
300 } 306 }
301 else if (!mChatAvatars.empty()) 307 else if (!mChatAvatars.empty())
@@ -303,16 +309,51 @@ void LLFloaterMap::populateRadar()
303 mChatAvatars.clear(); 309 mChatAvatars.clear();
304 } 310 }
305 311
306 std::string mute_text = LLMuteList::getInstance()->isMuted(avatar_ids[i]) ? getString("muted") : ""; 312 if (notify_sim)
307 element["id"] = avatar_ids[i]; 313 {
308 element["columns"][0]["column"] = "avatar_name"; 314 if (!getInChatList(avatar_ids[i]) && !getInSimAvList(avatar_ids[i]))
309 element["columns"][0]["type"] = "text"; 315 {
310 element["columns"][0]["value"] = fullname + " " + mute_text; 316 LLViewerObject *av_obj = gObjectList.findObject(avatar_ids[i]);
311 element["columns"][1]["column"] = "avatar_distance"; 317 if (av_obj != NULL && av_obj->isAvatar())
312 element["columns"][1]["type"] = "text"; 318 {
313 element["columns"][1]["value"] = dist_string+"m"; 319 LLVOAvatar* avatarp = (LLVOAvatar*)av_obj;
320 if (avatarp != NULL)
321 {
322 if (avatarp->getRegion() == gAgent.getRegion())
323 {
324 addToSimAvList(avatar_ids[i], dist_string);
325 }
326 }
327 }
328 }
329 updateSimAvList(avatar_ids);
330 }
331 else if (!mSimAvatars.empty())
332 {
333 mSimAvatars.clear();
334 }
335
336 // only display avatars in range
337 if (distance <= range)
338 {
339 // append typing string
340 std::string typing = "";
341 if (getIsTyping(avatar_ids[i]))
342 {
343 typing = getString("is_typing")+ " ";
344 }
345
346 std::string mute_text = LLMuteList::getInstance()->isMuted(avatar_ids[i]) ? getString("is_muted") : "";
347 element["id"] = avatar_ids[i];
348 element["columns"][0]["column"] = "avatar_name";
349 element["columns"][0]["type"] = "text";
350 element["columns"][0]["value"] = typing + fullname + " " + mute_text;
351 element["columns"][1]["column"] = "avatar_distance";
352 element["columns"][1]["type"] = "text";
353 element["columns"][1]["value"] = dist_string+"m";
314 354
315 mRadarList->addElement(element, ADD_BOTTOM); 355 mRadarList->addElement(element, ADD_BOTTOM);
356 }
316 } 357 }
317 } 358 }
318 359
@@ -326,6 +367,7 @@ void LLFloaterMap::populateRadar()
326 } 367 }
327 else 368 else
328 { 369 {
370 mTypingAvatars.clear();
329 mRadarList->addCommentText(getString("no_one_near"), ADD_TOP); 371 mRadarList->addCommentText(getString("no_one_near"), ADD_TOP);
330 avatar_count << "0"; 372 avatar_count << "0";
331 } 373 }
@@ -384,6 +426,71 @@ void LLFloaterMap::removeFromChatList(LLUUID agent_id)
384 mChatAvatars.erase(agent_id); 426 mChatAvatars.erase(agent_id);
385} 427}
386 428
429bool LLFloaterMap::getIsTyping(LLUUID agent_id)
430{
431 if (mTypingAvatars.count(agent_id) > 0)
432 {
433 return true;
434 }
435 return false;
436}
437
438void LLFloaterMap::updateTypingList(LLUUID agent_id, bool remove)
439{
440 if (remove)
441 {
442 if (getIsTyping(agent_id))
443 {
444 mTypingAvatars.erase(agent_id);
445 }
446 }
447 else
448 {
449 mTypingAvatars.insert(agent_id);
450 }
451}
452
453void LLFloaterMap::updateSimAvList(std::vector<LLUUID> agent_ids)
454{
455 std::set<LLUUID>::iterator it;
456 std::vector<LLUUID>::iterator result;
457 for (it = mSimAvatars.begin(); it != mSimAvatars.end(); )
458 {
459 result = find(agent_ids.begin(), agent_ids.end(), *it);
460 if (result == agent_ids.end())
461 {
462 mSimAvatars.erase(it++);
463 }
464 else
465 {
466 it++;
467 }
468 }
469}
470
471void LLFloaterMap::addToSimAvList(LLUUID agent_id, std::string distance)
472{
473 mSimAvatars.insert(agent_id);
474 LLChat chat;
475
476 LLUIString notify = getString("entering_sim_range");
477 notify.setArg("[NAME]", getSelectedName(agent_id));
478 notify.setArg("[DISTANCE]", distance);
479
480 chat.mText = notify;
481 chat.mSourceType = CHAT_SOURCE_SYSTEM;
482 LLFloaterChat::addChat(chat, FALSE, FALSE);
483}
484
485bool LLFloaterMap::getInSimAvList(LLUUID agent_id)
486{
487 if (mSimAvatars.count(agent_id) > 0)
488 {
489 return true;
490 }
491 return false;
492}
493
387void LLFloaterMap::toggleButtons() 494void LLFloaterMap::toggleButtons()
388{ 495{
389 BOOL enable = FALSE; 496 BOOL enable = FALSE;
diff --git a/linden/indra/newview/llfloatermap.h b/linden/indra/newview/llfloatermap.h
index deb972b..af4d1cc 100644
--- a/linden/indra/newview/llfloatermap.h
+++ b/linden/indra/newview/llfloatermap.h
@@ -52,6 +52,9 @@ public:
52 // returns true if agent_id belongs to a developer listed in llfloatermap.cpp 52 // returns true if agent_id belongs to a developer listed in llfloatermap.cpp
53 static bool isImpDev(LLUUID agent_id); 53 static bool isImpDev(LLUUID agent_id);
54 54
55 bool getIsTyping(LLUUID agent_id);
56 void updateTypingList(LLUUID agent_id, bool remove);
57
55 BOOL postBuild(); 58 BOOL postBuild();
56 59
57 /*virtual*/ void draw(); 60 /*virtual*/ void draw();
@@ -64,12 +67,19 @@ public:
64 67
65 68
66private: 69private:
70
67 LLFloaterMap(const LLSD& key = LLSD()); 71 LLFloaterMap(const LLSD& key = LLSD());
68 72
69 LLNetMap* mPanelMap; 73 LLNetMap* mPanelMap;
70 LLScrollListCtrl* mRadarList; 74 LLScrollListCtrl* mRadarList;
71 LLUUID mSelectedAvatar; 75 LLUUID mSelectedAvatar;
72 std::set<LLUUID> mChatAvatars; 76
77 // TODO: move all this info into its own object. It's stupid
78 // and bug-prone to keep it all in separate containers, but
79 // I want to get this out for 1.2 -- McCabe
80 std::set<LLUUID> mChatAvatars;
81 std::set<LLUUID> mTypingAvatars;
82 std::set<LLUUID> mSimAvatars;
73 bool mUpdate; 83 bool mUpdate;
74 84
75 static void onList(LLUICtrl* ctrl, void* user_data); 85 static void onList(LLUICtrl* ctrl, void* user_data);
@@ -84,6 +94,10 @@ private:
84 void addToChatList(LLUUID agent_id, std::string distance); 94 void addToChatList(LLUUID agent_id, std::string distance);
85 void removeFromChatList(LLUUID agent_id); 95 void removeFromChatList(LLUUID agent_id);
86 96
97 bool getInSimAvList(LLUUID agent_id);
98 void addToSimAvList(LLUUID agent_id, std::string distance);
99 void updateSimAvList(std::vector<LLUUID> agent_ids);
100
87 static void onClickProfile(void* user_data); 101 static void onClickProfile(void* user_data);
88 static void onClickIM(void* user_data); 102 static void onClickIM(void* user_data);
89 static void onClickAddFriend(void* user_data); 103 static void onClickAddFriend(void* user_data);
diff --git a/linden/indra/newview/llfloaterwater.cpp b/linden/indra/newview/llfloaterwater.cpp
index c42b12b..7e2f188 100644
--- a/linden/indra/newview/llfloaterwater.cpp
+++ b/linden/indra/newview/llfloaterwater.cpp
@@ -168,7 +168,11 @@ void LLFloaterWater::initCallbacks(void) {
168 168
169 LLTextureCtrl* textCtrl = getChild<LLTextureCtrl>("WaterNormalMap"); 169 LLTextureCtrl* textCtrl = getChild<LLTextureCtrl>("WaterNormalMap");
170 textCtrl->setDefaultImageAssetID(DEFAULT_WATER_NORMAL); 170 textCtrl->setDefaultImageAssetID(DEFAULT_WATER_NORMAL);
171 childSetCommitCallback("WaterNormalMap", onNormalMapPicked, NULL); 171 childSetCommitCallback("WaterNormalMap", onNormalMapPicked, NULL);
172
173 // next/prev buttons
174 childSetAction("next", onClickNext, this);
175 childSetAction("prev", onClickPrev, this);
172} 176}
173 177
174void LLFloaterWater::onClickHelp(void* data) 178void LLFloaterWater::onClickHelp(void* data)
@@ -237,6 +241,12 @@ void LLFloaterWater::syncMenu()
237 241
238 LLWaterParamSet & current_params = param_mgr->mCurParams; 242 LLWaterParamSet & current_params = param_mgr->mCurParams;
239 243
244 LLComboBox* comboBox = getChild<LLComboBox>("WaterPresetsCombo");
245 if (comboBox->getSelectedItemLabel() != current_params.mName)
246 {
247 comboBox->setSimple(current_params.mName);
248 }
249
240 // blue horizon 250 // blue horizon
241 param_mgr->mFogColor = current_params.getVector4(param_mgr->mFogColor.mName, err); 251 param_mgr->mFogColor = current_params.getVector4(param_mgr->mFogColor.mName, err);
242 252
@@ -306,14 +316,26 @@ LLFloaterWater* LLFloaterWater::instance()
306} 316}
307void LLFloaterWater::show() 317void LLFloaterWater::show()
308{ 318{
309 LLFloaterWater* water = instance(); 319 if (!sWaterMenu)
310 water->syncMenu(); 320 {
311 321 LLFloaterWater* water = instance();
312 // comment in if you want the menu to rebuild each time 322 water->syncMenu();
313 //LLUICtrlFactory::getInstance()->buildFloater(water, "floater_water.xml");
314 //water->initCallbacks();
315 323
316 water->open(); 324 // comment in if you want the menu to rebuild each time
325 //LLUICtrlFactory::getInstance()->buildFloater(water, "floater_water.xml");
326 //water->initCallbacks();
327 }
328 else
329 {
330 if (sWaterMenu->getVisible())
331 {
332 sWaterMenu->close();
333 }
334 else
335 {
336 sWaterMenu->open();
337 }
338 }
317} 339}
318 340
319bool LLFloaterWater::isOpen() 341bool LLFloaterWater::isOpen()
@@ -727,3 +749,50 @@ void LLFloaterWater::onChangePresetName(LLUICtrl* ctrl, void * userData)
727 sWaterMenu->syncMenu(); 749 sWaterMenu->syncMenu();
728} 750}
729 751
752void LLFloaterWater::onClickNext(void* user_data)
753{
754 LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
755 LLWaterParamSet& currentParams = param_mgr->mCurParams;
756
757 // find place of current param
758 std::map<std::string, LLWaterParamSet>::iterator mIt =
759 param_mgr->mParamList.find(currentParams.mName);
760
761 // if at the end, loop
762 std::map<std::string, LLWaterParamSet>::iterator last = param_mgr->mParamList.end(); --last;
763 if(mIt == last)
764 {
765 mIt = param_mgr->mParamList.begin();
766 }
767 else
768 {
769 mIt++;
770 }
771 /*param_mgr->mAnimator.mIsRunning = false;
772 param_mgr->mAnimator.mUseLindenTime = false;*/
773 param_mgr->loadPreset(mIt->first, true);
774}
775
776void LLFloaterWater::onClickPrev(void* user_data)
777{
778 LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
779 LLWaterParamSet & currentParams = param_mgr->mCurParams;
780
781 // find place of current param
782 std::map<std::string, LLWaterParamSet>::iterator mIt =
783 param_mgr->mParamList.find(currentParams.mName);
784
785 // if at the beginning, loop
786 if(mIt == param_mgr->mParamList.begin())
787 {
788 std::map<std::string, LLWaterParamSet>::iterator last = param_mgr->mParamList.end(); --last;
789 mIt = last;
790 }
791 else
792 {
793 mIt--;
794 }
795 /*param_mgr->mAnimator.mIsRunning = false;
796 param_mgr->mAnimator.mUseLindenTime = false;*/
797 param_mgr->loadPreset(mIt->first, true);
798}
diff --git a/linden/indra/newview/llfloaterwater.h b/linden/indra/newview/llfloaterwater.h
index 5c1fced..40704f2 100644
--- a/linden/indra/newview/llfloaterwater.h
+++ b/linden/indra/newview/llfloaterwater.h
@@ -127,6 +127,9 @@ private:
127 static LLFloaterWater* sWaterMenu; 127 static LLFloaterWater* sWaterMenu;
128 128
129 static std::set<std::string> sDefaultPresets; 129 static std::set<std::string> sDefaultPresets;
130
131 static void onClickNext(void* user_data);
132 static void onClickPrev(void* user_data);
130}; 133};
131 134
132 135
diff --git a/linden/indra/newview/llfloaterwindlight.cpp b/linden/indra/newview/llfloaterwindlight.cpp
index 71e81fa..80090a0 100644
--- a/linden/indra/newview/llfloaterwindlight.cpp
+++ b/linden/indra/newview/llfloaterwindlight.cpp
@@ -46,6 +46,7 @@
46#include "llcombobox.h" 46#include "llcombobox.h"
47#include "lllineeditor.h" 47#include "lllineeditor.h"
48#include "llfloaterdaycycle.h" 48#include "llfloaterdaycycle.h"
49#include "lltabcontainer.h"
49#include "llboost.h" 50#include "llboost.h"
50 51
51#include "v4math.h" 52#include "v4math.h"
@@ -1066,3 +1067,13 @@ void LLFloaterWindLight::onClickPrev(void* user_data)
1066 param_mgr->mAnimator.mUseLindenTime = false; 1067 param_mgr->mAnimator.mUseLindenTime = false;
1067 param_mgr->loadPreset(mIt->first, true); 1068 param_mgr->loadPreset(mIt->first, true);
1068} 1069}
1070
1071//static
1072void LLFloaterWindLight::selectTab(std::string tab_name)
1073{
1074 if (!tab_name.empty())
1075 {
1076 LLTabContainer* tabs = LLFloaterWindLight::instance()->getChild<LLTabContainer>("WindLight Tabs");
1077 tabs->selectTabByName(tab_name);
1078 }
1079}
diff --git a/linden/indra/newview/llfloaterwindlight.h b/linden/indra/newview/llfloaterwindlight.h
index 70e76c5..130a9a7 100644
--- a/linden/indra/newview/llfloaterwindlight.h
+++ b/linden/indra/newview/llfloaterwindlight.h
@@ -131,6 +131,8 @@ public:
131 /// turn off animated skies 131 /// turn off animated skies
132 static void deactivateAnimator(); 132 static void deactivateAnimator();
133 133
134 static void selectTab(std::string tab_name);
135
134private: 136private:
135 // one instance on the inside 137 // one instance on the inside
136 static LLFloaterWindLight* sWindLight; 138 static LLFloaterWindLight* sWindLight;
diff --git a/linden/indra/newview/llpanelgeneral.cpp b/linden/indra/newview/llpanelgeneral.cpp
index 4cf4091..04b7afe 100644
--- a/linden/indra/newview/llpanelgeneral.cpp
+++ b/linden/indra/newview/llpanelgeneral.cpp
@@ -60,7 +60,8 @@ BOOL LLPanelGeneral::postBuild()
60 childSetValue("small_avatar_names_checkbox", gSavedSettings.getBOOL("SmallAvatarNames")); 60 childSetValue("small_avatar_names_checkbox", gSavedSettings.getBOOL("SmallAvatarNames"));
61 childSetValue("show_my_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitle")); 61 childSetValue("show_my_title_checkbox", gSavedSettings.getBOOL("RenderHideGroupTitle"));
62 childSetValue("afk_timeout_spinner", gSavedSettings.getF32("AFKTimeout")); 62 childSetValue("afk_timeout_spinner", gSavedSettings.getF32("AFKTimeout"));
63 childSetValue("mini_map_notify", gSavedSettings.getBOOL("MiniMapNotify")); 63 childSetValue("mini_map_notify_chat", gSavedSettings.getBOOL("MiniMapNotifyChatRange"));
64 childSetValue("mini_map_notify_sim", gSavedSettings.getBOOL("MiniMapNotifySimRange"));
64 childSetValue("notify_money_change_checkbox", gSavedSettings.getBOOL("NotifyMoneyChange")); 65 childSetValue("notify_money_change_checkbox", gSavedSettings.getBOOL("NotifyMoneyChange"));
65 childSetValue("use_system_color_picker_checkbox", gSavedSettings.getBOOL("UseDefaultColorPicker")); 66 childSetValue("use_system_color_picker_checkbox", gSavedSettings.getBOOL("UseDefaultColorPicker"));
66 childSetValue("show_search_panel", gSavedSettings.getBOOL("ShowSearchBar")); 67 childSetValue("show_search_panel", gSavedSettings.getBOOL("ShowSearchBar"));
@@ -98,7 +99,8 @@ void LLPanelGeneral::apply()
98 gSavedSettings.setBOOL("SmallAvatarNames", childGetValue("small_avatar_names_checkbox")); 99 gSavedSettings.setBOOL("SmallAvatarNames", childGetValue("small_avatar_names_checkbox"));
99 gSavedSettings.setBOOL("RenderHideGroupTitle", childGetValue("show_my_title_checkbox")); 100 gSavedSettings.setBOOL("RenderHideGroupTitle", childGetValue("show_my_title_checkbox"));
100 gSavedSettings.setF32("AFKTimeout", childGetValue("afk_timeout_spinner").asReal()); 101 gSavedSettings.setF32("AFKTimeout", childGetValue("afk_timeout_spinner").asReal());
101 gSavedSettings.setBOOL("MiniMapNotify", childGetValue("mini_map_notify")); 102 gSavedSettings.setBOOL("MiniMapNotifyChatRange", childGetValue("mini_map_notify_chat"));
103 gSavedSettings.setBOOL("MiniMapNotifySimRange", childGetValue("mini_map_notify_sim"));
102 gSavedSettings.setBOOL("NotifyMoneyChange", childGetValue("notify_money_change_checkbox")); 104 gSavedSettings.setBOOL("NotifyMoneyChange", childGetValue("notify_money_change_checkbox"));
103 gSavedSettings.setBOOL("UseDefaultColorPicker", childGetValue("use_system_color_picker_checkbox")); 105 gSavedSettings.setBOOL("UseDefaultColorPicker", childGetValue("use_system_color_picker_checkbox"));
104 gSavedSettings.setBOOL("ShowSearchBar", childGetValue("show_search_panel")); 106 gSavedSettings.setBOOL("ShowSearchBar", childGetValue("show_search_panel"));
diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp
index 3d71202..b6fbc88 100644
--- a/linden/indra/newview/llprefsim.cpp
+++ b/linden/indra/newview/llprefsim.cpp
@@ -121,6 +121,7 @@ BOOL LLPrefsIMImpl::postBuild()
121 childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory")); 121 childSetValue("include_im_in_chat_history", gSavedSettings.getBOOL("IMInChatHistory"));
122 childSetValue("show_timestamps_check", gSavedSettings.getBOOL("IMShowTimestamps")); 122 childSetValue("show_timestamps_check", gSavedSettings.getBOOL("IMShowTimestamps"));
123 childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification")); 123 childSetValue("friends_online_notify_checkbox", gSavedSettings.getBOOL("ChatOnlineNotification"));
124 childSetValue("vertical-imtabs-toggle", gSavedSettings.getBOOL("VerticalIMTabs"));
124 125
125 childSetText("log_path_string", gSavedPerAccountSettings.getString("InstantMessageLogPath")); 126 childSetText("log_path_string", gSavedPerAccountSettings.getString("InstantMessageLogPath"));
126 childSetValue("log_instant_messages", gSavedPerAccountSettings.getBOOL("LogInstantMessages")); 127 childSetValue("log_instant_messages", gSavedPerAccountSettings.getBOOL("LogInstantMessages"));
@@ -216,6 +217,7 @@ void LLPrefsIMImpl::apply()
216 gAgent.sendReliableMessage(); 217 gAgent.sendReliableMessage();
217 } 218 }
218 } 219 }
220 gSavedSettings.setBOOL("VerticalIMTabs", childGetValue("vertical-imtabs-toggle").asBoolean());
219} 221}
220 222
221void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email) 223void LLPrefsIMImpl::setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email)
diff --git a/linden/indra/newview/llpreviewscript.cpp b/linden/indra/newview/llpreviewscript.cpp
index 1e9def3..6273011 100644
--- a/linden/indra/newview/llpreviewscript.cpp
+++ b/linden/indra/newview/llpreviewscript.cpp
@@ -436,6 +436,14 @@ void LLScriptEdCore::initMenu()
436 menuItem->setMenuCallback(onBtnHelp, this); 436 menuItem->setMenuCallback(onBtnHelp, this);
437 menuItem->setEnabledCallback(NULL); 437 menuItem->setEnabledCallback(NULL);
438 438
439 menuItem = getChild<LLMenuItemCallGL>("Load from Disk");
440 menuItem->setMenuCallback(onBtnLoadFromDisc, this);
441 menuItem->setEnabledCallback(NULL);
442
443 menuItem = getChild<LLMenuItemCallGL>("Save to Disk");
444 menuItem->setMenuCallback(onBtnSaveToDisc, this);
445 menuItem->setEnabledCallback(NULL);
446
439 menuItem = getChild<LLMenuItemCallGL>("LSL Wiki Help..."); 447 menuItem = getChild<LLMenuItemCallGL>("LSL Wiki Help...");
440 menuItem->setMenuCallback(onBtnDynamicHelp, this); 448 menuItem->setMenuCallback(onBtnDynamicHelp, this);
441 menuItem->setEnabledCallback(NULL); 449 menuItem->setEnabledCallback(NULL);
@@ -547,6 +555,7 @@ void LLScriptEdCore::setHelpPage(const std::string& help_string)
547 if (!history_combo) return; 555 if (!history_combo) return;
548 556
549 LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); 557 LLUIString url_string = gSavedSettings.getString("LSLHelpURL");
558 url_string.setArg("[APP_DIRECTORY]", gDirUtilp->getWorkingDir());
550 url_string.setArg("[LSL_STRING]", help_string); 559 url_string.setArg("[LSL_STRING]", help_string);
551 560
552 addHelpItemToHistory(help_string); 561 addHelpItemToHistory(help_string);
@@ -773,6 +782,7 @@ void LLScriptEdCore::onHelpComboCommit(LLUICtrl* ctrl, void* userdata)
773 782
774 LLWebBrowserCtrl* web_browser = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html"); 783 LLWebBrowserCtrl* web_browser = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html");
775 LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); 784 LLUIString url_string = gSavedSettings.getString("LSLHelpURL");
785 url_string.setArg("[APP_DIRECTORY]", gDirUtilp->getWorkingDir());
776 url_string.setArg("[LSL_STRING]", help_string); 786 url_string.setArg("[LSL_STRING]", help_string);
777 web_browser->navigateTo(url_string); 787 web_browser->navigateTo(url_string);
778 } 788 }
@@ -823,6 +833,60 @@ void LLScriptEdCore::onBtnUndoChanges( void* userdata )
823 } 833 }
824} 834}
825 835
836void LLScriptEdCore::onBtnSaveToDisc( void* userdata )
837{
838
839 LLViewerStats::getInstance()->incStat( LLViewerStats::ST_LSL_SAVE_COUNT );
840
841 LLScriptEdCore* self = (LLScriptEdCore*) userdata;
842
843 if( self->mSaveCallback )
844 {
845 LLFilePicker& file_picker = LLFilePicker::instance();
846 if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TEXT ) )
847 {
848 return;
849 }
850
851 std::string filename = file_picker.getFirstFile();
852 std::string scriptText=self->mEditor->getText();
853 std::ofstream fout(filename.c_str());
854 fout<<(scriptText);
855 fout.close();
856 self->mSaveCallback( self->mUserdata, FALSE );
857
858 }
859
860}
861void LLScriptEdCore::onBtnLoadFromDisc( void* data )
862{
863
864 LLScriptEdCore* self = (LLScriptEdCore*) data;
865
866 LLFilePicker& file_picker = LLFilePicker::instance();
867 if( !file_picker.getOpenFile( LLFilePicker::FFLOAD_TEXT ) )
868 {
869 return;
870 }
871
872 std::string filename = file_picker.getFirstFile();
873
874 std::ifstream fin(filename.c_str());
875
876 std::string line;
877 std::string linetotal;
878 self->mEditor->clear();
879 while (!fin.eof())
880 {
881 getline(fin,line);
882 line=line+"\n";
883 self->mEditor->insertText(line);
884
885 }
886 fin.close();
887
888}
889
826void LLScriptEdCore::onSearchMenu(void* userdata) 890void LLScriptEdCore::onSearchMenu(void* userdata)
827{ 891{
828 LLScriptEdCore* sec = (LLScriptEdCore*)userdata; 892 LLScriptEdCore* sec = (LLScriptEdCore*)userdata;
diff --git a/linden/indra/newview/llpreviewscript.h b/linden/indra/newview/llpreviewscript.h
index 7026482..97e721d 100644
--- a/linden/indra/newview/llpreviewscript.h
+++ b/linden/indra/newview/llpreviewscript.h
@@ -95,6 +95,8 @@ public:
95 static void doSave( void* userdata, BOOL close_after_save ); 95 static void doSave( void* userdata, BOOL close_after_save );
96 static void onBtnSave(void*); 96 static void onBtnSave(void*);
97 static void onBtnUndoChanges(void*); 97 static void onBtnUndoChanges(void*);
98 static void onBtnSaveToDisc(void*);
99 static void onBtnLoadFromDisc(void*);
98 static void onSearchMenu(void* userdata); 100 static void onSearchMenu(void* userdata);
99 101
100 static void onUndoMenu(void* userdata); 102 static void onUndoMenu(void* userdata);
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 55cc2a6..ceb5d5f 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -6334,6 +6334,8 @@ class LLAttachmentEnableDrop : public view_listener_t
6334{ 6334{
6335 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 6335 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
6336 { 6336 {
6337 if (gDisconnected)
6338 return true;
6337 LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); 6339 LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
6338 BOOL can_build = gAgent.isGodlike() || (parcel && parcel->getAllowModify()); 6340 BOOL can_build = gAgent.isGodlike() || (parcel && parcel->getAllowModify());
6339 6341
@@ -6384,7 +6386,6 @@ class LLAttachmentEnableDrop : public view_listener_t
6384// [RLVa:KB] - Checked: 2009-07-05 (RLVa-1.0.0b) 6386// [RLVa:KB] - Checked: 2009-07-05 (RLVa-1.0.0b)
6385 bool new_value = enable_detach(NULL) && can_build && item && (!gRlvHandler.hasBehaviour(RLV_BHVR_REZ)); 6387 bool new_value = enable_detach(NULL) && can_build && item && (!gRlvHandler.hasBehaviour(RLV_BHVR_REZ));
6386// [/RLVa:KB] 6388// [/RLVa:KB]
6387
6388 gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value); 6389 gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value);
6389 return true; 6390 return true;
6390 } 6391 }
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
index 464d687..d784f52 100644
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -78,6 +78,7 @@
78#include "llfloatergroupinfo.h" 78#include "llfloatergroupinfo.h"
79#include "llfloaterimagepreview.h" 79#include "llfloaterimagepreview.h"
80#include "llfloaterland.h" 80#include "llfloaterland.h"
81#include "llfloatermap.h"
81#include "llfloaterregioninfo.h" 82#include "llfloaterregioninfo.h"
82#include "llfloaterlandholdings.h" 83#include "llfloaterlandholdings.h"
83#include "llurldispatcher.h" 84#include "llurldispatcher.h"
@@ -145,6 +146,12 @@
145extern LLMap< const LLUUID, LLFloaterAvatarInfo* > gAvatarInfoInstances; // Only defined in llfloateravatarinfo.cpp 146extern LLMap< const LLUUID, LLFloaterAvatarInfo* > gAvatarInfoInstances; // Only defined in llfloateravatarinfo.cpp
146// [/RLVa:KB] 147// [/RLVa:KB]
147 148
149//silly spam define D:
150bool dialogSpamOn;
151static LLFrameTimer d_spam;
152std::map< std::string , S32 > lastd_names;
153LLDynamicArray< std::string > blacklisted_names;
154
148// 155//
149// Constants 156// Constants
150// 157//
@@ -2547,6 +2554,12 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
2547 { 2554 {
2548 ((LLVOAvatar*)chatter)->startTyping(); 2555 ((LLVOAvatar*)chatter)->startTyping();
2549 } 2556 }
2557
2558 if (LLFloaterMap::getInstance())
2559 {
2560 LLFloaterMap::getInstance()->updateTypingList(from_id, false);
2561 }
2562
2550 return; 2563 return;
2551 } 2564 }
2552 else if (CHAT_TYPE_STOP == chat.mChatType) 2565 else if (CHAT_TYPE_STOP == chat.mChatType)
@@ -2558,6 +2571,15 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
2558 { 2571 {
2559 ((LLVOAvatar*)chatter)->stopTyping(); 2572 ((LLVOAvatar*)chatter)->stopTyping();
2560 } 2573 }
2574
2575 if (LLFloaterMap::getInstance())
2576 {
2577 if (LLFloaterMap::getInstance()->getIsTyping(from_id))
2578 {
2579 LLFloaterMap::getInstance()->updateTypingList(from_id, true);
2580 }
2581 }
2582
2561 return; 2583 return;
2562 } 2584 }
2563 2585
@@ -4403,7 +4425,7 @@ void process_money_balance_reply( LLMessageSystem* msg, void** )
4403 LLUUID tid; 4425 LLUUID tid;
4404 msg->getUUID("MoneyData", "TransactionID", tid); 4426 msg->getUUID("MoneyData", "TransactionID", tid);
4405 static std::deque<LLUUID> recent; 4427 static std::deque<LLUUID> recent;
4406 if(!desc.empty() && gSavedSettings.getBOOL("NotifyMoneyChange") 4428 if(!desc.empty() && gSavedSettings.getBOOL("NotifyMoneyChange") && !gDisconnected
4407 && (std::find(recent.rbegin(), recent.rend(), tid) == recent.rend())) 4429 && (std::find(recent.rbegin(), recent.rend(), tid) == recent.rend()))
4408 { 4430 {
4409 // Make the user confirm the transaction, since they might 4431 // Make the user confirm the transaction, since they might
@@ -5454,6 +5476,21 @@ void process_script_dialog(LLMessageSystem* msg, void**)
5454 msg->getString("Data", "Message", message); 5476 msg->getString("Data", "Message", message);
5455 msg->getS32("Data", "ChatChannel", info->mChatChannel); 5477 msg->getS32("Data", "ChatChannel", info->mChatChannel);
5456 5478
5479 // Don't show lldialog boxes from muted avs -- McCabe
5480 std::string agent_name = first_name + " " + last_name;
5481 if (!first_name.empty())
5482 {
5483 std::vector<LLMute> mutes = LLMuteList::getInstance()->getMutes();
5484 for (U32 i = 0; i < mutes.size(); i++)
5485 {
5486 if (mutes[i].mName == agent_name)
5487 {
5488 delete info;
5489 return;
5490 }
5491 }
5492 }
5493
5457 // unused for now 5494 // unused for now
5458 LLUUID image_id; 5495 LLUUID image_id;
5459 msg->getUUID("Data", "ImageID", image_id); 5496 msg->getUUID("Data", "ImageID", image_id);
@@ -5476,6 +5513,45 @@ void process_script_dialog(LLMessageSystem* msg, void**)
5476 args["[MESSAGE]"] = message; 5513 args["[MESSAGE]"] = message;
5477 if (!first_name.empty()) 5514 if (!first_name.empty())
5478 { 5515 {
5516 // Dialog Spam Prevention by Cryogenic
5517 if(dialogSpamOn)
5518 {
5519 if(!d_spam.getStarted())
5520 {
5521 d_spam.start();
5522 }
5523 if(blacklisted_names.find(agent_name) != -1)
5524 {
5525 return;
5526 }
5527 std::map< std::string , S32 >::iterator itr = lastd_names.find(agent_name);
5528 if(itr != lastd_names.end())
5529 {
5530 if(d_spam.getElapsedTimeF32() <= gSavedSettings.getF32("SpamTime"))
5531 {
5532 if((*itr).second > gSavedSettings.getF32("SpamCount"))
5533 {
5534 blacklisted_names.put(agent_name);
5535 LL_INFOS("process_script_dialog") << "blocked " << info->mObjectID.asString() << " owned by " << agent_name << LL_ENDL;//" (" << key.asString() << ")" <<LL_ENDL;
5536 return;
5537 }
5538 else
5539 {
5540 (*itr).second++;
5541 }
5542 }
5543 else
5544 {
5545 lastd_names.erase(lastd_names.begin(),lastd_names.end());
5546 d_spam.reset();
5547 }
5548 }
5549 else
5550 {
5551 //llinfos << "Added " << fullname << " to list" << llendl;
5552 lastd_names[agent_name] = 0;
5553 }
5554 }
5479 args["[FIRST]"] = first_name; 5555 args["[FIRST]"] = first_name;
5480 args["[LAST]"] = last_name; 5556 args["[LAST]"] = last_name;
5481 LLNotifyBox::showXml("ScriptDialog", args, 5557 LLNotifyBox::showXml("ScriptDialog", args,
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp
index 0ba0879..2179c0b 100644
--- a/linden/indra/newview/llviewerregion.cpp
+++ b/linden/indra/newview/llviewerregion.cpp
@@ -917,10 +917,12 @@ bool LLViewerRegion::isAlive()
917 917
918BOOL LLViewerRegion::isOwnedSelf(const LLVector3& pos) 918BOOL LLViewerRegion::isOwnedSelf(const LLVector3& pos)
919{ 919{
920 if (mParcelOverlay) 920 if (mParcelOverlay && !gDisconnected)
921 { 921 {
922 return mParcelOverlay->isOwnedSelf(pos); 922 return mParcelOverlay->isOwnedSelf(pos);
923 } else { 923 }
924 else
925 {
924 return FALSE; 926 return FALSE;
925 } 927 }
926} 928}
diff --git a/linden/indra/newview/llwindlightremotectrl.cpp b/linden/indra/newview/llwindlightremotectrl.cpp
index ae9a90a..f805763 100644
--- a/linden/indra/newview/llwindlightremotectrl.cpp
+++ b/linden/indra/newview/llwindlightremotectrl.cpp
@@ -35,6 +35,7 @@
35#include "llbutton.h" 35#include "llbutton.h"
36#include "llcombobox.h" 36#include "llcombobox.h"
37#include "llfloaterenvsettings.h" 37#include "llfloaterenvsettings.h"
38#include "llfloaterwater.h"
38#include "llfloaterwindlight.h" 39#include "llfloaterwindlight.h"
39#include "lloverlaybar.h" 40#include "lloverlaybar.h"
40#include "lluictrlfactory.h" 41#include "lluictrlfactory.h"
@@ -154,6 +155,11 @@ void LLWindlightRemoteCtrl::refreshPresets()
154 155
155 // insert separator and add World menu options 156 // insert separator and add World menu options
156 mPresetsCombo->addSeparator(ADD_BOTTOM); 157 mPresetsCombo->addSeparator(ADD_BOTTOM);
158 mPresetsCombo->addSimpleElement(getString("atmosphere"), ADD_BOTTOM);
159 mPresetsCombo->addSimpleElement(getString("lighting"), ADD_BOTTOM);
160 mPresetsCombo->addSimpleElement(getString("clouds"), ADD_BOTTOM);
161 mPresetsCombo->addSimpleElement(getString("advanced_water"), ADD_BOTTOM);
162 mPresetsCombo->addSeparator(ADD_BOTTOM);
157 mPresetsCombo->addSimpleElement(getString("sunrise"), ADD_BOTTOM); 163 mPresetsCombo->addSimpleElement(getString("sunrise"), ADD_BOTTOM);
158 mPresetsCombo->addSimpleElement(getString("noon"), ADD_BOTTOM); 164 mPresetsCombo->addSimpleElement(getString("noon"), ADD_BOTTOM);
159 mPresetsCombo->addSimpleElement(getString("sunset"), ADD_BOTTOM); 165 mPresetsCombo->addSimpleElement(getString("sunset"), ADD_BOTTOM);
@@ -191,7 +197,35 @@ void LLWindlightRemoteCtrl::onCommitPreset(LLUICtrl* ctrl, void* data)
191 // check for World menu options; if none, apply preset 197 // check for World menu options; if none, apply preset
192 std::string selected = self->mPresetsCombo->getSelectedValue().asString(); 198 std::string selected = self->mPresetsCombo->getSelectedValue().asString();
193 199
194 if (selected == self->getString("sunrise")) 200 if (selected == self->getString("atmosphere"))
201 {
202 if (!LLFloaterWindLight::instance()->getVisible())
203 {
204 LLFloaterWindLight::show();
205 }
206 LLFloaterWindLight::instance()->selectTab("Atmosphere");
207 }
208 else if (selected == self->getString("lighting"))
209 {
210 if (!LLFloaterWindLight::instance()->getVisible())
211 {
212 LLFloaterWindLight::show();
213 }
214 LLFloaterWindLight::instance()->selectTab("Lighting");
215 }
216 else if (selected == self->getString("clouds"))
217 {
218 if (!LLFloaterWindLight::instance()->getVisible())
219 {
220 LLFloaterWindLight::show();
221 }
222 LLFloaterWindLight::instance()->selectTab("Clouds");
223 }
224 else if (selected == self->getString("advanced_water"))
225 {
226 LLFloaterWater::show();
227 }
228 else if (selected == self->getString("sunrise"))
195 { 229 {
196 // set the value, turn off animation 230 // set the value, turn off animation
197 LLWLParamManager::instance()->mAnimator.setDayTime(0.25); 231 LLWLParamManager::instance()->mAnimator.setDayTime(0.25);
diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc
index e9307d4..7577685 100644
--- a/linden/indra/newview/res/viewerRes.rc
+++ b/linden/indra/newview/res/viewerRes.rc
@@ -231,8 +231,8 @@ TOOLMEDIAOPEN CURSOR "toolmediaopen.cur"
231// 231//
232 232
233VS_VERSION_INFO VERSIONINFO 233VS_VERSION_INFO VERSIONINFO
234 FILEVERSION 1,20,15,97417 234 FILEVERSION 1,2,0
235 PRODUCTVERSION 1,20,15,97417 235 PRODUCTVERSION 1,2,0
236 FILEFLAGSMASK 0x3fL 236 FILEFLAGSMASK 0x3fL
237#ifdef _DEBUG 237#ifdef _DEBUG
238 FILEFLAGS 0x1L 238 FILEFLAGS 0x1L
@@ -249,11 +249,11 @@ BEGIN
249 BEGIN 249 BEGIN
250 VALUE "CompanyName", "Imprudence Viewer Project" 250 VALUE "CompanyName", "Imprudence Viewer Project"
251 VALUE "FileDescription", "Imprudence" 251 VALUE "FileDescription", "Imprudence"
252 VALUE "FileVersion", "1.2.0 beta" 252 VALUE "FileVersion", "1.2.0 beta 2"
253 VALUE "InternalName", "Imprudence" 253 VALUE "InternalName", "Imprudence"
254 VALUE "OriginalFilename", "Imprudence.exe" 254 VALUE "OriginalFilename", "Imprudence.exe"
255 VALUE "ProductName", "Imprudence" 255 VALUE "ProductName", "Imprudence"
256 VALUE "ProductVersion", "1.2.0 beta" 256 VALUE "ProductVersion", "1.2.0 beta 2"
257 END 257 END
258 END 258 END
259 BLOCK "VarFileInfo" 259 BLOCK "VarFileInfo"
diff --git a/linden/indra/newview/rlvdefines.h b/linden/indra/newview/rlvdefines.h
new file mode 100644
index 0000000..4e6a4d4
--- /dev/null
+++ b/linden/indra/newview/rlvdefines.h
@@ -0,0 +1,201 @@
1#ifndef RLV_DEFINES_H
2#define RLV_DEFINES_H
3
4// ============================================================================
5// Extensions
6//
7
8// Comment out if you don't want the Advanced / RLVa menu (may prevent enabling some extensions or experimental features - see below)
9#define RLV_ADVANCED_MENU
10// Comment out if you provide your own way to enable/disable RLVa
11#define RLV_ADVANCED_TOGGLE_RLVA
12
13// Provides access to "advanced" feature through the RLVa debug menu
14#define RLV_EXTENSION_ENABLE_WEAR // "Enable Wear"
15#define RLV_EXTENSION_FLOATER_RESTRICTIONS // Enables the Advanced / RLVa / Restrictions... floater
16#define RLV_EXTENSION_HIDELOCKED // "Hide locked layers", "Hide locked attachments" and "Hide locked inventory"
17
18// Extensions
19#define RLV_EXTENSION_CMD_GETSETDEBUG_EX // Extends the debug variables accessible through @getdebug_xxx/@setdebug_xxx
20#define RLV_EXTENSION_CMD_FINDFOLDERS // @findfolders:<option>=<channel> - @findfolder with multiple results
21#define RLV_EXTENSION_FLAG_NOSTRIP // Layers and attachments marked as "nostrip" are exempt from @detach/@remoutfit
22#define RLV_EXTENSION_STARTLOCATION // Reenables "Start Location" at login if not @tploc=n or @unsit=n restricted at last logoff
23#define RLV_EXPERIMENTAL // Enables/disables experimental features en masse
24
25// Experimental features
26#ifdef RLV_EXPERIMENTAL
27 // Stable (will mature to RLV_EXTENSION_XXX in next release if no bugs are found)
28 #define RLV_EXPERIMENTAL_FARTOUCH_FEEDBACK // Enables "cleaner" UI responses when fartouch blocks something
29
30 // Under testing (stable, but requires further testing - safe for public release but may be quirky)
31 #define RLV_EXPERIMENTAL_FIRSTUSE // Enables a number of "first use" popups
32
33 // Under development (don't include in public release)
34 #if LL_RELEASE_WITH_DEBUG_INFO || LL_DEBUG
35 #endif // LL_RELEASE_WITH_DEBUG_INFO || LL_DEBUG
36#endif // RLV_EXPERIMENTAL
37
38// ============================================================================
39// Defines
40//
41
42// Version of the specifcation we support
43const S32 RLV_VERSION_MAJOR = 1;
44const S32 RLV_VERSION_MINOR = 20;
45const S32 RLV_VERSION_PATCH = 2;
46
47// Implementation version
48const S32 RLVa_VERSION_MAJOR = 1;
49const S32 RLVa_VERSION_MINOR = 0;
50const S32 RLVa_VERSION_PATCH = 3;
51const S32 RLVa_VERSION_BUILD = 4;
52
53// The official viewer version we're patching against
54#define RLV_MAKE_TARGET(x, y, z) ((x << 16) | (y << 8) | z)
55#define RLV_TARGET RLV_MAKE_TARGET(1, 22, 11)
56
57// Defining these makes it easier if we ever need to change our tag
58#define RLV_WARNS LL_WARNS("RLV")
59#define RLV_INFOS LL_INFOS("RLV")
60#define RLV_DEBUGS LL_DEBUGS("RLV")
61
62#if LL_RELEASE_WITH_DEBUG_INFO || LL_DEBUG
63 // Turn on extended debugging information
64 #define RLV_DEBUG
65 // Make sure we halt execution on errors
66 #define RLV_ERRS LL_ERRS("RLV")
67 // Uncomment to enable the Advanced / RLVa / Unit Tests menu (non-public)
68 //#define RLV_DEBUG_TESTS
69#else
70 // Uncomment if you want extended debugging information on release builds
71 //#define RLV_DEBUG
72 // Don't halt execution on errors in release
73 #define RLV_ERRS LL_WARNS("RLV")
74#endif // LL_RELEASE_WITH_DEBUG_INFO || LL_DEBUG
75
76#define RLV_ROOT_FOLDER "#RLV"
77#define RLV_CMD_PREFIX '@'
78#define RLV_PUTINV_PREFIX "#RLV/~"
79#define RLV_SETROT_OFFSET F_PI_BY_TWO // @setrot is off by 90° with the rest of SL
80
81#define RLV_FOLDER_FLAG_NOSTRIP "nostrip"
82#define RLV_FOLDER_PREFIX_HIDDEN '.'
83#define RLV_FOLDER_PREFIX_PUTINV '~'
84
85// ============================================================================
86// Enumeration declarations
87//
88
89// NOTE: any changes to this enumeration should be reflected in initLookupTable()
90enum ERlvBehaviour {
91 RLV_BHVR_VERSION = 0, // "version"
92 RLV_BHVR_DETACH, // "detach"
93 RLV_BHVR_SENDCHAT, // "sendchat"
94 RLV_BHVR_EMOTE, // "emote"
95 RLV_BHVR_CHATSHOUT, // "chatshout"
96 RLV_BHVR_CHATNORMAL, // "chatnormal"
97 RLV_BHVR_CHATWHISPER, // "chatwhisper"
98 RLV_BHVR_REDIRCHAT, // "redirchat"
99 RLV_BHVR_REDIREMOTE, // "rediremote"
100 RLV_BHVR_SENDIM, // "sendim"
101 RLV_BHVR_RECVCHAT, // "recvchat"
102 RLV_BHVR_RECVEMOTE, // "recvemote"
103 RLV_BHVR_RECVIM, // "recvim"
104 RLV_BHVR_TPLM, // "tplm"
105 RLV_BHVR_TPLOC, // "tploc"
106 RLV_BHVR_TPLURE, // "tplure"
107 RLV_BHVR_SITTP, // "sittp"
108 RLV_BHVR_EDIT, // "edit"
109 RLV_BHVR_REZ, // "rez"
110 RLV_BHVR_ADDOUTFIT, // "addoutfit"
111 RLV_BHVR_REMOUTFIT, // "remoutfit"
112 RLV_BHVR_GETOUTFIT, // "getoutfit"
113 RLV_BHVR_GETATTACH, // "getattach"
114 RLV_BHVR_SHOWINV, // "showinv"
115 RLV_BHVR_VIEWNOTE, // "viewnote"
116 RLV_BHVR_UNSIT, // "unsit"
117 RLV_BHVR_SIT, // "sit"
118 RLV_BHVR_SENDCHANNEL, // "sendchannel"
119 RLV_BHVR_GETSTATUS, // "getstatus"
120 RLV_BHVR_GETSTATUSALL, // "getstatusall"
121 RLV_BHVR_GETINV, // "getinv"
122 RLV_BHVR_GETINVWORN, // "getinvworn"
123 RLV_BHVR_FINDFOLDER, // "findfolder"
124 RLV_BHVR_FINDFOLDERS, // "findfolders"
125 RLV_BHVR_ATTACH, // "attach"
126 RLV_BHVR_ATTACHALL, // "attachall"
127 RLV_BHVR_DETACHALL, // "detachall"
128 RLV_BHVR_GETPATH, // "getpath"
129 RLV_BHVR_ATTACHTHIS, // "attachthis"
130 RLV_BHVR_ATTACHALLTHIS, // "attachallthis"
131 RLV_BHVR_DETACHTHIS, // "detachthis"
132 RLV_BHVR_DETACHALLTHIS, // "detachallthis"
133 RLV_BHVR_FARTOUCH, // "fartouch"
134 RLV_BHVR_SHOWWORLDMAP, // "showworldmap"
135 RLV_BHVR_SHOWMINIMAP, // "showminimap"
136 RLV_BHVR_SHOWLOC, // "showloc"
137 RLV_BHVR_TPTO, // "tpto"
138 RLV_BHVR_ACCEPTTP, // "accepttp"
139 RLV_BHVR_SHOWNAMES, // "shownames"
140 RLV_BHVR_FLY, // "fly"
141 RLV_BHVR_GETSITID, // "getsitid"
142 RLV_BHVR_SETDEBUG, // "setdebug"
143 RLV_BHVR_SETENV, // "setenv"
144 RLV_BHVR_DETACHME, // "detachme"
145 RLV_BHVR_SHOWHOVERTEXTALL, // "showhovertextall"
146 RLV_BHVR_SHOWHOVERTEXTWORLD, // "showhovertextworld"
147 RLV_BHVR_SHOWHOVERTEXTHUD, // "showhovertexthud"
148 RLV_BHVR_SHOWHOVERTEXT, // "showhovertext"
149 RLV_BHVR_NOTIFY, // "notify"
150
151 RLV_BHVR_COUNT,
152 RLV_BHVR_UNKNOWN
153};
154
155enum ERlvParamType {
156 RLV_TYPE_UNKNOWN,
157 RLV_TYPE_ADD, // <param> == "n"|"add"
158 RLV_TYPE_REMOVE, // <param> == "y"|"rem"
159 RLV_TYPE_FORCE, // <param> == "force"
160 RLV_TYPE_REPLY, // <param> == <number>
161 RLV_TYPE_CLEAR
162};
163
164enum ERlvCmdRet {
165 RLV_RET_NOERROR, // Command executed succesfully
166 RLV_RET_RETAINED, // Command was retained
167 RLV_RET_DISABLED, // Command is disabled (by user)
168 RLV_RET_FAILED, // Command failed (general failure)
169 RLV_RET_FAILED_SYNTAX, // Command failed (syntax error)
170 RLV_RET_FAILED_UNSET, // Command failed (unset restriction)
171 RLV_RET_FAILED_DUPLICATE, // Command failed (duplicate)
172 RLV_RET_FAILED_OPTION, // Command failed (invalid option)
173 RLV_RET_FAILED_PARAM, // Command failed (invalid param)
174 RLV_RET_UNKNOWN // Command unkown
175};
176
177// ============================================================================
178// Settings
179
180#define RLV_SETTING_MAIN "RestrainedLife"
181#define RLV_SETTING_DEBUG "RestrainedLifeDebug"
182#define RLV_SETTING_NOSETENV "RestrainedLifeNoSetEnv"
183#define RLV_SETTING_FORBIDGIVETORLV "RestrainedLifeForbidGiveToRLV"
184
185#define RLV_SETTING_ENABLEWEAR "RLVaEnableWear"
186#define RLV_SETTING_ENABLELEGACYNAMING "RLVaEnableLegacyNaming"
187#define RLV_SETTING_HIDELOCKEDLAYER "RLVaHideLockedLayers"
188#define RLV_SETTING_HIDELOCKEDATTACH "RLVaHideLockedAttachments"
189#define RLV_SETTING_HIDELOCKEDINVENTORY "RLVaHideLockedInventory"
190#define RLV_SETTING_LOGINLASTLOCATION "RLVaLoginLastLocation"
191#define RLV_SETTING_SHOWNAMETAGS "RLVaShowNameTags"
192
193#define RLV_SETTING_FIRSTUSE_PREFIX "FirstRLV"
194#define RLV_SETTING_FIRSTUSE_DETACH RLV_SETTING_FIRSTUSE_PREFIX"Detach"
195#define RLV_SETTING_FIRSTUSE_ENABLEWEAR RLV_SETTING_FIRSTUSE_PREFIX"EnableWear"
196#define RLV_SETTING_FIRSTUSE_FARTOUCH RLV_SETTING_FIRSTUSE_PREFIX"Fartouch"
197#define RLV_SETTING_FIRSTUSE_GIVETORLV RLV_SETTING_FIRSTUSE_PREFIX"GiveToRLV"
198
199// ============================================================================
200
201#endif // RLV_DEFINES_H
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_chatterbox_vertical.xml b/linden/indra/newview/skins/default/xui/en-us/floater_chatterbox_vertical.xml
new file mode 100644
index 0000000..8b1f41b
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_chatterbox_vertical.xml
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<multi_floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
3 height="390" name="floater_chatterbox"
4 rect_control="ChatterboxRect" title="Communicate" width="392">
5 <tab_container bottom="2" follows="left|right|top|bottom" height="370" left="0"
6 name="chatterbox_tabs" tab_position="left" tab_width="126" width="395" />
7 <string name="unread_count_string_singular">
8 Unread IM
9 </string>
10 <string name="unread_count_string_plural">
11 Unread IMs
12 </string>
13</multi_floater>
14
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_directory.xml b/linden/indra/newview/skins/default/xui/en-us/floater_directory.xml
index fe04ad3..8591c1f 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_directory.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_directory.xml
@@ -70,7 +70,7 @@
70 <panel border="true" bottom="-569" follows="left|top|right|bottom" height="553" 70 <panel border="true" bottom="-569" follows="left|top|right|bottom" height="553"
71 label="Classifieds" left="1" left_delta="68" mouse_opaque="false" 71 label="Classifieds" left="1" left_delta="68" mouse_opaque="false"
72 name="classified_panel" width="778"> 72 name="classified_panel" width="778">
73 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" 73 <button bottom="-553" follows="left|bottom" font="SansSerif" halign="center"
74 height="20" label="Next &gt;" label_selected="Next &gt;" 74 height="20" label="Next &gt;" label_selected="Next &gt;"
75 mouse_opaque="true" name="Next &gt;" right="344" width="80" /> 75 mouse_opaque="true" name="Next &gt;" right="344" width="80" />
76 <string name="searching_text"> 76 <string name="searching_text">
@@ -265,7 +265,7 @@
265 bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom" 265 bottom_delta="-20" drop_shadow_visible="true" follows="left|bottom"
266 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4" 266 font="SansSerifSmall" h_pad="0" halign="left" height="16" left="4"
267 mouse_opaque="true" name="result_text" v_pad="0" width="328" /> 267 mouse_opaque="true" name="result_text" v_pad="0" width="328" />
268 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" 268 <button bottom="-553" follows="left|bottom" font="SansSerif" halign="center"
269 height="20" label="Next &gt;" label_selected="Next &gt;" 269 height="20" label="Next &gt;" label_selected="Next &gt;"
270 mouse_opaque="true" name="Next &gt;" right="344" width="80" /> 270 mouse_opaque="true" name="Next &gt;" right="344" width="80" />
271 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" 271 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center"
@@ -313,7 +313,7 @@
313 <string name="not_found_text"> 313 <string name="not_found_text">
314 None Found. 314 None Found.
315 </string> 315 </string>
316 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" 316 <button bottom="-553" follows="left|bottom" font="SansSerif" halign="center"
317 height="20" label="Next &gt;" label_selected="Next &gt;" 317 height="20" label="Next &gt;" label_selected="Next &gt;"
318 mouse_opaque="true" name="Next &gt;" right="390" width="80" /> 318 mouse_opaque="true" name="Next &gt;" right="390" width="80" />
319 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" 319 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center"
@@ -394,7 +394,7 @@ To buy direct, visit the land and click on the place name in the title bar.
394 <string name="not_found_text"> 394 <string name="not_found_text">
395 None Found. 395 None Found.
396 </string> 396 </string>
397 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" 397 <button bottom="-553" follows="left|bottom" font="SansSerif" halign="center"
398 height="20" label="Next &gt;" label_selected="Next &gt;" 398 height="20" label="Next &gt;" label_selected="Next &gt;"
399 mouse_opaque="true" name="Next &gt;" right="344" width="80" /> 399 mouse_opaque="true" name="Next &gt;" right="344" width="80" />
400 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" 400 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center"
@@ -482,7 +482,7 @@ To buy direct, visit the land and click on the place name in the title bar.
482 <string name="not_found_text"> 482 <string name="not_found_text">
483 None Found. 483 None Found.
484 </string> 484 </string>
485 <button bottom="-533" follows="left|bottom" font="SansSerif" halign="center" 485 <button bottom="-553" follows="left|bottom" font="SansSerif" halign="center"
486 height="20" label="Next &gt;" label_selected="Next &gt;" 486 height="20" label="Next &gt;" label_selected="Next &gt;"
487 mouse_opaque="true" name="Next &gt;" right="330" width="80" /> 487 mouse_opaque="true" name="Next &gt;" right="330" width="80" />
488 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center" 488 <button bottom_delta="0" follows="left|bottom" font="SansSerif" halign="center"
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_mini_map.xml b/linden/indra/newview/skins/default/xui/en-us/floater_mini_map.xml
index 2cb46b7..3c860e9 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_mini_map.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_mini_map.xml
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater can_close="true" can_drag_on_left="false" can_minimize="false" can_resize="true" 2<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
3 can_tear_off="false" follows="top|right" height="455" min_height="400" min_width="240" 3 can_tear_off="false" follows="top|right" height="455" min_height="400" min_width="240"
4 name="minimap" rect_control="FloaterMiniMapRect" width="200"> 4 name="minimap" rect_control="FloaterMiniMapRect" width="200" short_title="Mini-Map">
5 5
6 <panel label="Mini Map" name="mini_mapview" 6 <panel label="Mini Map" name="mini_mapview"
7 top="-2" left="2" bottom="196" right="196" 7 top="-2" left="2" bottom="196" right="196"
@@ -92,10 +92,16 @@
92 <string name="no_one_near"> 92 <string name="no_one_near">
93 No avatars within range 93 No avatars within range
94 </string> 94 </string>
95 <string name="muted"> 95 <string name="is_muted">
96 (muted) 96 (muted)
97 </string> 97 </string>
98 <string name="is_typing">
99 (typing)
100 </string>
98 <string name="entering_chat_range"> 101 <string name="entering_chat_range">
99 [NAME] has entered chat range ([DISTANCE]m) 102 [NAME] has entered chat range ([DISTANCE]m)
100 </string> 103 </string>
104 <string name="entering_sim_range">
105 [NAME] has entered the sim ([DISTANCE]m)
106 </string>
101</floater> 107</floater>
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml b/linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml
index 631db0d..9cf7b5f 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml
@@ -43,7 +43,7 @@
43 <button bottom_delta="0" follows="right|bottom" height="20" label="Send" 43 <button bottom_delta="0" follows="right|bottom" height="20" label="Send"
44 left_delta="-106" name="send_btn" width="100" /> 44 left_delta="-106" name="send_btn" width="100" />
45 <string name="default_subject"> 45 <string name="default_subject">
46 Postcard from Second Life. 46 Postcard from a virtual world.
47 </string> 47 </string>
48 <string name="default_message"> 48 <string name="default_message">
49 Check this out! 49 Check this out!
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml b/linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml
index b83a6df..653c75b 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml
@@ -35,6 +35,12 @@
35 width="138" /> 35 width="138" />
36 <menu_item_call bottom_delta="-58" height="20" label="Revert All Changes" left="0" 36 <menu_item_call bottom_delta="-58" height="20" label="Revert All Changes" left="0"
37 mouse_opaque="true" name="Revert All Changes" width="138" /> 37 mouse_opaque="true" name="Revert All Changes" width="138" />
38 <menu_item_separator bottom_delta="-66" height="8" left="0" mouse_opaque="true" name="separator"
39 width="138" />
40 <menu_item_call bottom_delta="-76" height="20" label="Save to Disk" left="0"
41 mouse_opaque="true" name="Save to Disk" width="138" />
42 <menu_item_call bottom_delta="-96" height="20" label="Load from Disk" left="0"
43 mouse_opaque="true" name="Load from Disk" width="138" />
38 </menu> 44 </menu>
39 <menu bottom="665" drop_shadow="true" enabled="true" height="198" 45 <menu bottom="665" drop_shadow="true" enabled="true" height="198"
40 left="222" mouse_opaque="false" name="Edit" opaque="true" tear_off="false" 46 left="222" mouse_opaque="false" name="Edit" opaque="true" tear_off="false"
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_water.xml b/linden/indra/newview/skins/default/xui/en-us/floater_water.xml
index 9dcb96e..7038c93 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_water.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_water.xml
@@ -11,17 +11,23 @@
11 width="110"> 11 width="110">
12 Water Presets: 12 Water Presets:
13 </text> 13 </text>
14 <combo_box allow_text_entry="false" bottom="-50" follows="left|top" height="18" 14 <combo_box allow_text_entry="false" bottom="-52" follows="left|top" height="18"
15 left_delta="110" max_chars="20" mouse_opaque="true" 15 left_delta="120" max_chars="20" mouse_opaque="true"
16 name="WaterPresetsCombo" width="150" /> 16 name="WaterPresetsCombo" width="150" />
17 <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20"
18 label="" label_selected="" left_delta="-25" image_overlay="arrow_left.tga"
19 mouse_opaque="true" name="prev" scale_image="true" width="20" />
20 <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20"
21 label="" label_selected="" left_delta="180" image_overlay="arrow_right.tga"
22 mouse_opaque="true" name="next" scale_image="true" width="20" />
17 <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20" 23 <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20"
18 label="New" label_selected="New" left_delta="170" 24 label="New" label_selected="New" left_delta="40"
19 mouse_opaque="true" name="WaterNewPreset" scale_image="true" width="70" /> 25 mouse_opaque="true" name="WaterNewPreset" scale_image="true" width="70" />
20 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" 26 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
21 label="Save" label_selected="Save" left_delta="80" 27 label="Save" label_selected="Save" left_delta="70"
22 mouse_opaque="true" name="WaterSavePreset" scale_image="true" width="70" /> 28 mouse_opaque="true" name="WaterSavePreset" scale_image="true" width="70" />
23 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" 29 <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20"
24 label="Delete" label_selected="Delete" left_delta="80" 30 label="Delete" label_selected="Delete" left_delta="70"
25 mouse_opaque="true" name="WaterDeletePreset" scale_image="true" width="70" /> 31 mouse_opaque="true" name="WaterDeletePreset" scale_image="true" width="70" />
26 <tab_container bottom="-240" follows="left|top" height="180" left="0" 32 <tab_container bottom="-240" follows="left|top" height="180" left="0"
27 mouse_opaque="false" name="Water Tabs" tab_position="top" width="700"> 33 mouse_opaque="false" name="Water Tabs" tab_position="top" width="700">
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml
index 56bdb28..0c18a62 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml
@@ -77,11 +77,22 @@
77 follows="left|top" height="16" increment="1" initial_val="300" 77 follows="left|top" height="16" increment="1" initial_val="300"
78 label="Away Timeout:" label_width="141" left="10" max_val="600" 78 label="Away Timeout:" label_width="141" left="10" max_val="600"
79 min_val="30" mouse_opaque="true" name="afk_timeout_spinner" width="202" /> 79 min_val="30" mouse_opaque="true" name="afk_timeout_spinner" width="202" />
80 <check_box bottom_delta="-25" enabled="true" 80 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
81 bottom_delta="-25" drop_shadow_visible="true" enabled="true" follows="left|top"
82 font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10"
83 mouse_opaque="true" name="UI Size:" v_pad="0" width="128">
84 Mini-map notify:
85 </text>
86 <check_box bottom_delta="0" enabled="true"
81 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 87 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
82 label="Display mini-map messages in chat" left="151" 88 label="Entering chat range" left="151"
83 mouse_opaque="true" name="mini_map_notify" radio_style="false" 89 mouse_opaque="true" name="mini_map_notify_chat" radio_style="false"
84 width="256" /> 90 width="256" />
91 <check_box bottom_delta="0" enabled="true"
92 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
93 label="Entering sim" left="330"
94 mouse_opaque="true" name="mini_map_notify_sim" radio_style="false"
95 width="256" />
85 <check_box bottom="-304" enabled="true" 96 <check_box bottom="-304" enabled="true"
86 follows="left|top" font="SansSerifSmall" height="16" initial_value="false" 97 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
87 label="Notify when Linden dollars (L$) spent or received" left="151" 98 label="Notify when Linden dollars (L$) spent or received" left="151"
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml
index ee00455..9b18e11 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml
@@ -49,55 +49,59 @@
49 initial_value="false" label="Show online Friend notifications" left="148" 49 initial_value="false" label="Show online Friend notifications" left="148"
50 mouse_opaque="true" name="friends_online_notify_checkbox" 50 mouse_opaque="true" name="friends_online_notify_checkbox"
51 radio_style="false" width="256" /> 51 radio_style="false" width="256" />
52 <check_box bottom_delta="-20" enabled="true"
53 follows="left|top" font="SansSerifSmall" height="16" initial_value="false"
54 label="Vertical IM tabs (requires restart)" left_delta="0" mouse_opaque="true"
55 name="vertical-imtabs-toggle" radio_style="false" width="270" />
52 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 56 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
53 bottom="-125" drop_shadow_visible="true" enabled="true" follows="left|top" 57 bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
54 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" 58 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12"
55 mouse_opaque="false" name="text_box3" v_pad="0" width="128"> 59 mouse_opaque="false" name="text_box3" v_pad="0" width="128">
56 Busy Mode Response: 60 Busy Mode Response:
57 </text> 61 </text>
58 <text_editor type="string" length="1" bottom="-185" embedded_items="false" enabled="true" follows="left|top" 62 <text_editor type="string" length="1" bottom_delta="-60" embedded_items="false" enabled="true" follows="left|top"
59 font="SansSerifSmall" height="70" left="148" max_length="255" 63 font="SansSerifSmall" height="70" left="148" max_length="255"
60 mouse_opaque="true" name="busy_response" width="330" word_wrap="true" /> 64 mouse_opaque="true" name="busy_response" width="330" word_wrap="true" />
61 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 65 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
62 bottom="-218" drop_shadow_visible="true" enabled="true" follows="left|top" 66 bottom_delta="-33" drop_shadow_visible="true" enabled="true" follows="left|top"
63 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" 67 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12"
64 mouse_opaque="false" name="text_box4" v_pad="0" width="128"> 68 mouse_opaque="false" name="text_box4" v_pad="0" width="128">
65 Logging Options: 69 Logging Options:
66 </text> 70 </text>
67 <check_box bottom="-225" enabled="true" 71 <check_box bottom_delta="-7" enabled="true"
68 follows="left|top" font="SansSerifSmall" height="16" 72 follows="left|top" font="SansSerifSmall" height="16"
69 initial_value="false" label="Save a log of IM on my computer" left="148" 73 initial_value="false" label="Save a log of IM on my computer" left="148"
70 mouse_opaque="true" name="log_instant_messages" radio_style="false" 74 mouse_opaque="true" name="log_instant_messages" radio_style="false"
71 width="237" /> 75 width="237" />
72 <check_box bottom="-245" enabled="true" 76 <check_box bottom_delta="-20" enabled="true"
73 follows="left|top" font="SansSerifSmall" height="16" 77 follows="left|top" font="SansSerifSmall" height="16"
74 initial_value="false" label="Show timestamps in IM log" left="168" 78 initial_value="false" label="Show timestamps in IM log" left="168"
75 mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false" 79 mouse_opaque="true" name="log_instant_messages_timestamp" radio_style="false"
76 width="217" /> 80 width="217" />
77 <check_box bottom="-265" enabled="true" follows="left|top" 81 <check_box bottom_delta="-20" enabled="true" follows="left|top"
78 font="SansSerifSmall" height="16" initial_value="false" 82 font="SansSerifSmall" height="16" initial_value="false"
79 label="Show the end of last IM conversation" left="168" mouse_opaque="true" 83 label="Show the end of last IM conversation" left="168" mouse_opaque="true"
80 name="log_show_history" radio_style="false" width="217" /> 84 name="log_show_history" radio_style="false" width="217" />
81 <check_box bottom="-285" enabled="true" follows="left|top" 85 <check_box bottom_delta="-20" enabled="true" follows="left|top"
82 font="SansSerifSmall" height="16" initial_value="false" label="Save a log of Local Chat on my computer" 86 font="SansSerifSmall" height="16" initial_value="false" label="Save a log of Local Chat on my computer"
83 left="148" mouse_opaque="true" name="log_chat" radio_style="false" 87 left="148" mouse_opaque="true" name="log_chat" radio_style="false"
84 width="237" /> 88 width="237" />
85 <check_box bottom="-305" enabled="true" follows="left|top" 89 <check_box bottom_delta="-20" enabled="true" follows="left|top"
86 font="SansSerifSmall" height="16" initial_value="false" 90 font="SansSerifSmall" height="16" initial_value="false"
87 label="Show timestamps in Local Chat log" left="168" mouse_opaque="true" 91 label="Show timestamps in Local Chat log" left="168" mouse_opaque="true"
88 name="log_chat_timestamp" radio_style="false" width="217" /> 92 name="log_chat_timestamp" radio_style="false" width="217" />
89 <check_box bottom="-325" enabled="true" follows="left|top" 93 <check_box bottom_delta="-20" enabled="true" follows="left|top"
90 font="SansSerifSmall" height="16" initial_value="false" 94 font="SansSerifSmall" height="16" initial_value="false"
91 label="Show incoming IM in Local Chat log" left="168" mouse_opaque="true" 95 label="Show incoming IM in Local Chat log" left="168" mouse_opaque="true"
92 name="log_chat_IM" radio_style="false" width="217" /> 96 name="log_chat_IM" radio_style="false" width="217" />
93 <check_box bottom="-345" enabled="true" follows="left|top" 97 <check_box bottom_delta="-20" enabled="true" follows="left|top"
94 font="SansSerifSmall" height="16" initial_value="false" 98 font="SansSerifSmall" height="16" initial_value="false"
95 label="Include date with timestamps" left="148" mouse_opaque="true" 99 label="Include date with timestamps" left="148" mouse_opaque="true"
96 name="log_date_timestamp" radio_style="false" width="237" /> 100 name="log_date_timestamp" radio_style="false" width="237" />
97 <button bottom="-367" follows="right|bottom" font="SansSerif" halign="center" 101 <button bottom_delta="-22" follows="right|bottom" font="SansSerif" halign="center"
98 height="20" label="Change Path" label_selected="Change Path" left="170" 102 height="20" label="Change Path" label_selected="Change Path" left="170"
99 mouse_opaque="true" name="log_path_button" width="90" /> 103 mouse_opaque="true" name="log_path_button" width="90" />
100 <line_editor border_drop_shadow_visible="false" border_visible="false" bottom="-366" 104 <line_editor border_drop_shadow_visible="false" border_visible="false" bottom_delta="1"
101 drop_shadow_visible="true" enabled="false" follows="top|left|right" 105 drop_shadow_visible="true" enabled="false" follows="top|left|right"
102 font="SansSerifSmall" halign="right" height="19" left="248" 106 font="SansSerifSmall" halign="right" height="19" left="248"
103 max_length="254" mouse_opaque="false" name="log_path_string" right="-20" /> 107 max_length="254" mouse_opaque="false" name="log_path_string" right="-20" />
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml b/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml
index ead9ad7..8be72fc 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml
@@ -4,6 +4,18 @@
4 name="windlight_remote" use_bounding_rect="true" width="182"> 4 name="windlight_remote" use_bounding_rect="true" width="182">
5 <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="22" left="0" width="182" /> 5 <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="22" left="0" width="182" />
6 <panel bottom="3" filename="panel_windlight_controls.xml" name="panel_windlight_controls" height="20" left="0" width="182" /> 6 <panel bottom="3" filename="panel_windlight_controls.xml" name="panel_windlight_controls" height="20" left="0" width="182" />
7 <string name="atmosphere">
8 Atmosphere
9 </string>
10 <string name="lighting">
11 Lighting
12 </string>
13 <string name="clouds">
14 Clouds
15 </string>
16 <string name="advanced_water">
17 Advanced Water
18 </string>
7 <string name="sunrise"> 19 <string name="sunrise">
8 Sunrise 20 Sunrise
9 </string> 21 </string>
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml b/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml
index e7182fa..4cb49a3 100644
--- a/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml
@@ -1,13 +1,19 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel bg_visible="false" border="false" border_visible="false" bottom="0" 2<panel bg_visible="false" border="false" border_visible="false" bottom="0"
3 follows="right|bottom" height="47" left="0" mouse_opaque="true" 3 follows="right|bottom" height="67" left="0" mouse_opaque="true"
4 name="windlight_remote" use_bounding_rect="true" width="182"> 4 name="windlight_remote" use_bounding_rect="true" width="182">
5 <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="47" left="0" width="182" /> 5 <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="67" left="0" width="182" />
6 <slider bottom="-20" can_edit_text="false" control_name="RenderFarClip" 6 <slider bottom="-20" can_edit_text="false" control_name="RenderFarClip"
7 decimal_digits="0" enabled="true" height="18" 7 decimal_digits="0" enabled="true" height="18"
8 increment="8" initial_val="160" label="Draw Distance:" 8 increment="8" initial_val="160" label="Draw Distance:"
9 label_width="78" left="6" max_val="512" min_val="32" mouse_opaque="true" 9 label_width="78" left="6" max_val="512" min_val="32" mouse_opaque="true"
10 name="DrawDistance" show_text="true" width="170" /> 10 name="DrawDistance" show_text="true" width="170" />
11 <slider bottom_delta="-20" can_edit_text="false" control_name="RenderMaxPartCount"
12 decimal_digits="0" enabled="true" follows="left|top" height="18"
13 increment="256" initial_val="4096"
14 label="Max. Particles:" label_width="78" left_delta="0"
15 max_val="8192" min_val="0" mouse_opaque="true" name="MaxParticleCount"
16 show_text="true" width="176" />
11 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 17 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
12 bottom="-14" drop_shadow_visible="true" enabled="true" follows="left|top" 18 bottom="-14" drop_shadow_visible="true" enabled="true" follows="left|top"
13 font="SansSerifSmall" h_pad="0" halign="left" height="12" 19 font="SansSerifSmall" h_pad="0" halign="left" height="12"
@@ -16,6 +22,18 @@
16 m 22 m
17 </text> 23 </text>
18 <panel bottom="13" filename="panel_windlight_controls.xml" left="0" width="182" /> 24 <panel bottom="13" filename="panel_windlight_controls.xml" left="0" width="182" />
25 <string name="atmosphere">
26 Atmosphere
27 </string>
28 <string name="lighting">
29 Lighting
30 </string>
31 <string name="clouds">
32 Clouds
33 </string>
34 <string name="advanced_water">
35 Advanced Water
36 </string>
19 <string name="sunrise"> 37 <string name="sunrise">
20 Sunrise 38 Sunrise
21 </string> 39 </string>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_script_ed_panel.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_script_ed_panel.xml
deleted file mode 100644
index 12ae6dc..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_script_ed_panel.xml
+++ /dev/null
@@ -1,86 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<panel bottom="-550" enabled="true" follows="left|top|right|bottom" height="508"
3 left="0" mouse_opaque="true" name="script panel" width="500">
4 <text_editor type="string" length="1" bottom="-393"
5 embedded_items="false" enabled="true" follows="left|top|right|bottom"
6 font="Monospace" height="376" ignore_tab="false" left="4"
7 max_length="65536" mouse_opaque="true" name="Script Editor" width="492"
8 word_wrap="true" show_line_numbers="true">
9 Loading...
10 </text_editor>
11 <button bottom="-499" enabled="true" follows="right|bottom" font="SansSerif"
12 halign="center" height="20" label="Save" label_selected="Save" left="360"
13 mouse_opaque="true" name="Save_btn" width="128" />
14 <scroll_list background_visible="true" bottom="-457" column_padding="5" draw_border="true"
15 draw_heading="false" draw_stripes="true" enabled="true"
16 follows="left|right|bottom" height="60" left="4" mouse_opaque="true"
17 multi_select="false" name="lsl errors" width="492" />
18 <combo_box allow_text_entry="false" bottom="-499" enabled="true" follows="left|bottom"
19 height="20" label="Insert..." left="12" max_chars="20" mouse_opaque="true"
20 name="Insert..." width="128" />
21 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
22 bottom="-473" drop_shadow_visible="true" enabled="true"
23 follows="left|bottom" font="SansSerifSmall" h_pad="0" halign="left"
24 height="12" left="12" mouse_opaque="true" name="line_col" v_pad="0"
25 width="128" />
26 <menu_bar bottom="-15" drop_shadow="false" enabled="true" follows="left|top|right"
27 height="18" left="8" mouse_opaque="false" name="script_menu" opaque="false"
28 tear_off="false" width="476">
29 <menu bottom="0" drop_shadow="true" enabled="true" height="62"
30 left="0" mouse_opaque="false" name="File" opaque="true" tear_off="false"
31 width="138">
32 <menu_item_call bottom_delta="-30" height="20" label="Save" left="0" mouse_opaque="true"
33 name="Save" width="138" />
34 <menu_item_separator bottom_delta="-38" height="8" left="0" mouse_opaque="true" name="separator"
35 width="138" />
36 <menu_item_call bottom_delta="-58" height="20" label="Revert All Changes" left="0"
37 mouse_opaque="true" name="Revert All Changes" width="138" />
38 </menu>
39 <menu bottom="665" drop_shadow="true" enabled="true" height="198"
40 left="222" mouse_opaque="false" name="Edit" opaque="true" tear_off="false"
41 width="139">
42 <menu_item_call bottom_delta="-30" enabled="false" height="20" label="Undo" left="0"
43 mouse_opaque="true" name="Undo" width="139" />
44 <menu_item_call bottom_delta="-50" enabled="false" height="20" label="Redo" left="0"
45 mouse_opaque="true" name="Redo" width="139" />
46 <menu_item_separator bottom_delta="-58" enabled="true" height="8" label="-----------" left="0"
47 mouse_opaque="true" name="separator" width="139" />
48 <menu_item_call bottom_delta="-78" enabled="false" height="20" label="Cut" left="0"
49 mouse_opaque="true" name="Cut" width="139" />
50 <menu_item_call bottom_delta="-98" enabled="false" height="20" label="Copy" left="0"
51 mouse_opaque="true" name="Copy" width="139" />
52 <menu_item_call bottom_delta="-118" enabled="false" height="20" label="Paste" left="0"
53 mouse_opaque="true" name="Paste" width="139" />
54 <menu_item_separator bottom_delta="-126" enabled="true" height="8" label="-----------" left="0"
55 mouse_opaque="true" name="separator2" width="139" />
56 <menu_item_call bottom_delta="-146" enabled="true" height="20" label="Select All" left="0"
57 mouse_opaque="true" name="Select All" width="139" />
58 <menu_item_call bottom_delta="-166" enabled="false" height="20" label="Deselect" left="0"
59 mouse_opaque="true" name="Deselect" width="139" />
60 <menu_item_separator bottom_delta="-174" enabled="true" height="8" label="-----------" left="0"
61 mouse_opaque="true" name="separator3" width="139" />
62 <menu_item_call bottom_delta="-194" enabled="true" height="20" label="Search / Replace..."
63 left="0" mouse_opaque="true" name="Search / Replace..." width="139" />
64 </menu>
65 <menu bottom="-18" drop_shadow="true" enabled="true" height="34"
66 left="0" mouse_opaque="false" name="Help" opaque="true" tear_off="false"
67 width="112">
68 <menu_item_call bottom="-30" enabled="true" height="20" label="Help..." left="0"
69 mouse_opaque="true" name="Help..." width="112" />
70 <menu_item_call bottom="-30" enabled="true" height="20" label="LSL Wiki Help..." left="0"
71 mouse_opaque="true" name="LSL Wiki Help..." width="112" />
72 </menu>
73 </menu_bar>
74 <string name="loading">
75 Loading...
76 </string>
77 <string name="can_not_view">
78 You are not allowed to view this script.
79 </string>
80 <string name="public_objects_can_not_run">
81 Public Objects cannot run scripts
82 </string>
83 <string name="script_running">
84 Running
85 </string>
86</panel>
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_script_queue.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_script_queue.xml
deleted file mode 100644
index c44457c..0000000
--- a/linden/indra/newview/skins/silver/xui/en-us/floater_script_queue.xml
+++ /dev/null
@@ -1,13 +0,0 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater bottom="-763" can_close="true" can_drag_on_left="false" can_minimize="true"
3 can_resize="true" enabled="true" height="400" left="408" min_height="100"
4 min_width="100" mouse_opaque="true" name="queue" title="Reset Progress"
5 width="300">
6 <button bottom="-392" enabled="true" follows="right|bottom" font="SansSerif"
7 halign="center" height="24" label="Close" label_selected="Close" left="220"
8 mouse_opaque="true" name="close" width="64" />
9 <scroll_list background_visible="true" bottom="-364" column_padding="5" draw_border="true"
10 draw_heading="false" draw_stripes="true" enabled="true"
11 follows="left|top|right|bottom" height="344" left="4" mouse_opaque="true"
12 multi_select="false" name="queue output" width="292" />
13</floater>