diff options
Diffstat (limited to 'linden')
39 files changed, 465 insertions, 343 deletions
diff --git a/linden/indra/llaudio/audioengine.h b/linden/indra/llaudio/audioengine.h index e990eb7..e46091c 100644 --- a/linden/indra/llaudio/audioengine.h +++ b/linden/indra/llaudio/audioengine.h | |||
@@ -93,7 +93,8 @@ public: | |||
93 | AUDIO_TYPE_SFX = 1, | 93 | AUDIO_TYPE_SFX = 1, |
94 | AUDIO_TYPE_UI = 2, | 94 | AUDIO_TYPE_UI = 2, |
95 | AUDIO_TYPE_AMBIENT = 3, | 95 | AUDIO_TYPE_AMBIENT = 3, |
96 | AUDIO_TYPE_COUNT = 4 // last | 96 | AUDIO_TYPE_GESTURE = 4, |
97 | AUDIO_TYPE_COUNT = 5 // last | ||
97 | }; | 98 | }; |
98 | 99 | ||
99 | LLAudioEngine(); | 100 | LLAudioEngine(); |
diff --git a/linden/indra/llimage/llimage.cpp b/linden/indra/llimage/llimage.cpp index 0baa005..776c481 100644 --- a/linden/indra/llimage/llimage.cpp +++ b/linden/indra/llimage/llimage.cpp | |||
@@ -1547,6 +1547,7 @@ void LLImageFormatted::appendData(U8 *data, S32 size) | |||
1547 | S32 newsize = cursize + size; | 1547 | S32 newsize = cursize + size; |
1548 | reallocateData(newsize); | 1548 | reallocateData(newsize); |
1549 | memcpy(getData() + cursize, data, size); | 1549 | memcpy(getData() + cursize, data, size); |
1550 | delete[] data; | ||
1550 | } | 1551 | } |
1551 | } | 1552 | } |
1552 | } | 1553 | } |
diff --git a/linden/indra/llrender/llimagegl.cpp b/linden/indra/llrender/llimagegl.cpp index d6474f7..7cd4dd7 100644 --- a/linden/indra/llrender/llimagegl.cpp +++ b/linden/indra/llrender/llimagegl.cpp | |||
@@ -1231,7 +1231,9 @@ BOOL LLImageGL::readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compre | |||
1231 | 1231 | ||
1232 | if (width <= 0 || width > 2048 || height <= 0 || height > 2048 || ncomponents < 1 || ncomponents > 4) | 1232 | if (width <= 0 || width > 2048 || height <= 0 || height > 2048 || ncomponents < 1 || ncomponents > 4) |
1233 | { | 1233 | { |
1234 | llerrs << llformat("LLImageGL::readBackRaw: bogus params: %d x %d x %d",width,height,ncomponents) << llendl; | 1234 | //llerrs << llformat("LLImageGL::readBackRaw: bogus params: %d x %d x %d",width,height,ncomponents) << llendl; |
1235 | llwarns << llformat("LLImageGL::readBackRaw: bogus params: %d x %d x %d",width,height,ncomponents) << llendl; | ||
1236 | return FALSE; | ||
1235 | } | 1237 | } |
1236 | 1238 | ||
1237 | LLGLint is_compressed = 0; | 1239 | LLGLint is_compressed = 0; |
diff --git a/linden/indra/llui/CMakeLists.txt b/linden/indra/llui/CMakeLists.txt index f646e63..a0f80b4 100644 --- a/linden/indra/llui/CMakeLists.txt +++ b/linden/indra/llui/CMakeLists.txt | |||
@@ -63,7 +63,6 @@ set(llui_SOURCE_FILES | |||
63 | llspinctrl.cpp | 63 | llspinctrl.cpp |
64 | llstyle.cpp | 64 | llstyle.cpp |
65 | lltabcontainer.cpp | 65 | lltabcontainer.cpp |
66 | lltabcontainervertical.cpp | ||
67 | lltextbox.cpp | 66 | lltextbox.cpp |
68 | lltexteditor.cpp | 67 | lltexteditor.cpp |
69 | lltextparser.cpp | 68 | lltextparser.cpp |
@@ -119,7 +118,6 @@ set(llui_HEADER_FILES | |||
119 | llspinctrl.h | 118 | llspinctrl.h |
120 | llstyle.h | 119 | llstyle.h |
121 | lltabcontainer.h | 120 | lltabcontainer.h |
122 | lltabcontainervertical.h | ||
123 | lltextbox.h | 121 | lltextbox.h |
124 | lltexteditor.h | 122 | lltexteditor.h |
125 | lltextparser.h | 123 | lltextparser.h |
diff --git a/linden/indra/llui/lltabcontainer.cpp b/linden/indra/llui/lltabcontainer.cpp index 1f94191..4be779c 100644 --- a/linden/indra/llui/lltabcontainer.cpp +++ b/linden/indra/llui/lltabcontainer.cpp | |||
@@ -40,7 +40,6 @@ | |||
40 | #include "lltextbox.h" | 40 | #include "lltextbox.h" |
41 | #include "llcriticaldamp.h" | 41 | #include "llcriticaldamp.h" |
42 | #include "lluictrlfactory.h" | 42 | #include "lluictrlfactory.h" |
43 | #include "lltabcontainervertical.h" | ||
44 | #include "llrender.h" | 43 | #include "llrender.h" |
45 | 44 | ||
46 | const F32 SCROLL_STEP_TIME = 0.4f; | 45 | const F32 SCROLL_STEP_TIME = 0.4f; |
diff --git a/linden/indra/llui/lltabcontainervertical.cpp b/linden/indra/llui/lltabcontainervertical.cpp deleted file mode 100644 index a729c95..0000000 --- a/linden/indra/llui/lltabcontainervertical.cpp +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | /** | ||
2 | * @file lltabcontainervertical.cpp | ||
3 | * @brief LLTabContainerVertical base class | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2009, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at | ||
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | ||
23 | * By copying, modifying or distributing this software, you acknowledge | ||
24 | * that you have read and understood your obligations described above, | ||
25 | * and agree to abide by those obligations. | ||
26 | * | ||
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
29 | * COMPLETENESS OR PERFORMANCE. | ||
30 | * $/LicenseInfo$ | ||
31 | */ | ||
32 | |||
33 | // deprecated: see LLTabContainer | ||
diff --git a/linden/indra/llui/lltabcontainervertical.h b/linden/indra/llui/lltabcontainervertical.h deleted file mode 100644 index ce42367..0000000 --- a/linden/indra/llui/lltabcontainervertical.h +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | /** | ||
2 | * @file lltabcontainervertical.h | ||
3 | * @brief LLTabContainerVertical base class | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2001&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2001-2009, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at | ||
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | ||
23 | * By copying, modifying or distributing this software, you acknowledge | ||
24 | * that you have read and understood your obligations described above, | ||
25 | * and agree to abide by those obligations. | ||
26 | * | ||
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
29 | * COMPLETENESS OR PERFORMANCE. | ||
30 | * $/LicenseInfo$ | ||
31 | */ | ||
32 | |||
33 | // deprecated: see LLTabContainer | ||
diff --git a/linden/indra/llui/lluictrlfactory.cpp b/linden/indra/llui/lluictrlfactory.cpp index 07eb39b..5cfc3ee 100644 --- a/linden/indra/llui/lluictrlfactory.cpp +++ b/linden/indra/llui/lluictrlfactory.cpp | |||
@@ -64,7 +64,6 @@ | |||
64 | #include "llmultisliderctrl.h" | 64 | #include "llmultisliderctrl.h" |
65 | #include "llspinctrl.h" | 65 | #include "llspinctrl.h" |
66 | #include "lltabcontainer.h" | 66 | #include "lltabcontainer.h" |
67 | #include "lltabcontainervertical.h" | ||
68 | #include "lltextbox.h" | 67 | #include "lltextbox.h" |
69 | #include "lltexteditor.h" | 68 | #include "lltexteditor.h" |
70 | #include "llui.h" | 69 | #include "llui.h" |
diff --git a/linden/indra/llui/lluifwd.h b/linden/indra/llui/lluifwd.h index 32d5c9b..f99bb39 100644 --- a/linden/indra/llui/lluifwd.h +++ b/linden/indra/llui/lluifwd.h | |||
@@ -53,7 +53,6 @@ class LLSlider; | |||
53 | class LLSliderCtrl; | 53 | class LLSliderCtrl; |
54 | class LLSpinCtrl; | 54 | class LLSpinCtrl; |
55 | class LLTabContainer; | 55 | class LLTabContainer; |
56 | class LLTabContainerVertical; | ||
57 | class LLTextBox; | 56 | class LLTextBox; |
58 | class LLTextEditor; | 57 | class LLTextEditor; |
59 | class LLTextureCtrl; | 58 | class LLTextureCtrl; |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index aae182c..d71cf09 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -15,6 +15,17 @@ | |||
15 | <key>Value</key> | 15 | <key>Value</key> |
16 | <integer>0</integer> | 16 | <integer>0</integer> |
17 | </map> | 17 | </map> |
18 | <key>AudioLevelGestures</key> | ||
19 | <map> | ||
20 | <key>Comment</key> | ||
21 | <string>Audio level of environment gestures</string> | ||
22 | <key>Persist</key> | ||
23 | <integer>1</integer> | ||
24 | <key>Type</key> | ||
25 | <string>F32</string> | ||
26 | <key>Value</key> | ||
27 | <real>0.5</real> | ||
28 | </map> | ||
18 | <key>AutoCloseOOC</key> | 29 | <key>AutoCloseOOC</key> |
19 | <map> | 30 | <map> |
20 | <key>Comment</key> | 31 | <key>Comment</key> |
@@ -431,6 +442,17 @@ | |||
431 | <key>Value</key> | 442 | <key>Value</key> |
432 | <integer>1</integer> | 443 | <integer>1</integer> |
433 | </map> | 444 | </map> |
445 | <key>MuteGestures</key> | ||
446 | <map> | ||
447 | <key>Comment</key> | ||
448 | <string>Gesture sound effects, play at 0 volume</string> | ||
449 | <key>Persist</key> | ||
450 | <integer>1</integer> | ||
451 | <key>Type</key> | ||
452 | <string>Boolean</string> | ||
453 | <key>Value</key> | ||
454 | <integer>0</integer> | ||
455 | </map> | ||
434 | <key>MuteWind</key> | 456 | <key>MuteWind</key> |
435 | <map> | 457 | <map> |
436 | <key>Comment</key> | 458 | <key>Comment</key> |
diff --git a/linden/indra/newview/app_settings/settings_per_account.xml b/linden/indra/newview/app_settings/settings_per_account.xml index e965fe6..1a748f8 100644 --- a/linden/indra/newview/app_settings/settings_per_account.xml +++ b/linden/indra/newview/app_settings/settings_per_account.xml | |||
@@ -461,6 +461,17 @@ | |||
461 | 461 | ||
462 | <!-- Begin IM auto-response --> | 462 | <!-- Begin IM auto-response --> |
463 | 463 | ||
464 | <key>InstantMessageResponseEnabled</key> | ||
465 | <map> | ||
466 | <key>Comment</key> | ||
467 | <string>Toggles whether to auto-respond to instant messages or not</string> | ||
468 | <key>Persist</key> | ||
469 | <integer>1</integer> | ||
470 | <key>Type</key> | ||
471 | <string>Boolean</string> | ||
472 | <key>Value</key> | ||
473 | <integer>0</integer> | ||
474 | </map> | ||
464 | <key>InstantMessageResponseFriends</key> | 475 | <key>InstantMessageResponseFriends</key> |
465 | <map> | 476 | <map> |
466 | <key>Comment</key> | 477 | <key>Comment</key> |
diff --git a/linden/indra/newview/floaterbusy.cpp b/linden/indra/newview/floaterbusy.cpp index 9188ae1..6c49461 100644 --- a/linden/indra/newview/floaterbusy.cpp +++ b/linden/indra/newview/floaterbusy.cpp | |||
@@ -158,6 +158,7 @@ BOOL FloaterBusy::postBuild() | |||
158 | LLWStringUtil::replaceChar(auto_response, '%', ' '); | 158 | LLWStringUtil::replaceChar(auto_response, '%', ' '); |
159 | childSetText("im_response", wstring_to_utf8str(auto_response)); | 159 | childSetText("im_response", wstring_to_utf8str(auto_response)); |
160 | 160 | ||
161 | childSetValue("InstantMessageResponseEnabled", gSavedPerAccountSettings.getBOOL("InstantMessageResponseEnabled")); | ||
161 | childSetValue("InstantMessageResponseFriends", gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends")); | 162 | childSetValue("InstantMessageResponseFriends", gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends")); |
162 | childSetValue("InstantMessageResponseMuted", gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted")); | 163 | childSetValue("InstantMessageResponseMuted", gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted")); |
163 | childSetValue("InstantMessageResponseAnyone", gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone")); | 164 | childSetValue("InstantMessageResponseAnyone", gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone")); |
@@ -212,6 +213,7 @@ void FloaterBusy::apply() | |||
212 | LLWStringUtil::replaceChar(im_response, '\n', '^'); | 213 | LLWStringUtil::replaceChar(im_response, '\n', '^'); |
213 | LLWStringUtil::replaceChar(im_response, ' ', '%'); | 214 | LLWStringUtil::replaceChar(im_response, ' ', '%'); |
214 | gSavedPerAccountSettings.setString("InstantMessageResponse", std::string(wstring_to_utf8str(im_response))); | 215 | gSavedPerAccountSettings.setString("InstantMessageResponse", std::string(wstring_to_utf8str(im_response))); |
216 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseEnabled", childGetValue("InstantMessageResponseEnabled").asBoolean()); | ||
215 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseMuted", childGetValue("InstantMessageResponseMuted").asBoolean()); | 217 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseMuted", childGetValue("InstantMessageResponseMuted").asBoolean()); |
216 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseFriends", childGetValue("InstantMessageResponseFriends").asBoolean()); | 218 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseFriends", childGetValue("InstantMessageResponseFriends").asBoolean()); |
217 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseMuted", childGetValue("InstantMessageResponseMuted").asBoolean()); | 219 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseMuted", childGetValue("InstantMessageResponseMuted").asBoolean()); |
diff --git a/linden/indra/newview/jcfloaterareasearch.cpp b/linden/indra/newview/jcfloaterareasearch.cpp index 5b269fa..ed00447 100644 --- a/linden/indra/newview/jcfloaterareasearch.cpp +++ b/linden/indra/newview/jcfloaterareasearch.cpp | |||
@@ -16,7 +16,7 @@ | |||
16 | * may be used to endorse or promote products derived from this | 16 | * may be used to endorse or promote products derived from this |
17 | * software without specific prior written permission. | 17 | * software without specific prior written permission. |
18 | * | 18 | * |
19 | * THIS SOFTWARE IS PROVIDED BY MODULAR SYSTEMS LTD AND CONTRIBUTORS “AS IS” | 19 | * THIS SOFTWARE IS PROVIDED BY MODULAR SYSTEMS LTD AND CONTRIBUTORS "AS IS" |
20 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | 20 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
21 | * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 21 | * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MODULAR SYSTEMS OR CONTRIBUTORS | 22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MODULAR SYSTEMS OR CONTRIBUTORS |
diff --git a/linden/indra/newview/jcfloaterareasearch.h b/linden/indra/newview/jcfloaterareasearch.h index 9feb9aa..1512030 100644 --- a/linden/indra/newview/jcfloaterareasearch.h +++ b/linden/indra/newview/jcfloaterareasearch.h | |||
@@ -16,7 +16,7 @@ | |||
16 | * may be used to endorse or promote products derived from this | 16 | * may be used to endorse or promote products derived from this |
17 | * software without specific prior written permission. | 17 | * software without specific prior written permission. |
18 | * | 18 | * |
19 | * THIS SOFTWARE IS PROVIDED BY MODULAR SYSTEMS AND CONTRIBUTORS “AS IS” | 19 | * THIS SOFTWARE IS PROVIDED BY MODULAR SYSTEMS AND CONTRIBUTORS "AS IS" |
20 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | 20 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
21 | * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 21 | * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MODULAR SYSTEMS OR CONTRIBUTORS | 22 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MODULAR SYSTEMS OR CONTRIBUTORS |
diff --git a/linden/indra/newview/lightshare.cpp b/linden/indra/newview/lightshare.cpp index b422236..78d27b5 100644 --- a/linden/indra/newview/lightshare.cpp +++ b/linden/indra/newview/lightshare.cpp | |||
@@ -101,7 +101,7 @@ WindlightMessage::~WindlightMessage() | |||
101 | // static | 101 | // static |
102 | void WindlightMessage::processWindlight(LLMessageSystem* msg, void**) | 102 | void WindlightMessage::processWindlight(LLMessageSystem* msg, void**) |
103 | { | 103 | { |
104 | if( gSavedSettings.getU32("UseLightShare") <= LIGHTSHARE_NEVER ) | 104 | if( gSavedSettings.getU32("LightShareAllowed") <= LIGHTSHARE_NEVER ) |
105 | return; | 105 | return; |
106 | 106 | ||
107 | WindlightMessage* wl = new WindlightMessage(msg); | 107 | WindlightMessage* wl = new WindlightMessage(msg); |
@@ -114,7 +114,7 @@ void WindlightMessage::processWindlight(LLMessageSystem* msg, void**) | |||
114 | 114 | ||
115 | // If they are using region settings already, or LightShare is | 115 | // If they are using region settings already, or LightShare is |
116 | // always allowed, just apply the new settings, don't bother asking. | 116 | // always allowed, just apply the new settings, don't bother asking. |
117 | if( gSavedSettings.getU32("UseLightShare") == LIGHTSHARE_ALWAYS || | 117 | if( gSavedSettings.getU32("LightShareAllowed") == LIGHTSHARE_ALWAYS || |
118 | (sky == sSkyPresetName && water == sWaterPresetName) ) | 118 | (sky == sSkyPresetName && water == sWaterPresetName) ) |
119 | { | 119 | { |
120 | wl->apply(); | 120 | wl->apply(); |
@@ -138,7 +138,7 @@ void WindlightMessage::processWindlight(LLMessageSystem* msg, void**) | |||
138 | return; | 138 | return; |
139 | } | 139 | } |
140 | 140 | ||
141 | if( gSavedSettings.getU32("UseLightShare") == LIGHTSHARE_ASK && | 141 | if( gSavedSettings.getU32("LightShareAllowed") == LIGHTSHARE_ASK && |
142 | sMostRecent == NULL ) | 142 | sMostRecent == NULL ) |
143 | { | 143 | { |
144 | // No most recent, so store this and create notification | 144 | // No most recent, so store this and create notification |
diff --git a/linden/indra/newview/llfloatercustomize.cpp b/linden/indra/newview/llfloatercustomize.cpp index 74b58bd..db51556 100644 --- a/linden/indra/newview/llfloatercustomize.cpp +++ b/linden/indra/newview/llfloatercustomize.cpp | |||
@@ -48,7 +48,6 @@ | |||
48 | #include "llscrollcontainer.h" | 48 | #include "llscrollcontainer.h" |
49 | #include "llscrollingpanellist.h" | 49 | #include "llscrollingpanellist.h" |
50 | #include "llsliderctrl.h" | 50 | #include "llsliderctrl.h" |
51 | #include "lltabcontainervertical.h" | ||
52 | #include "llviewerwindow.h" | 51 | #include "llviewerwindow.h" |
53 | #include "llinventorymodel.h" | 52 | #include "llinventorymodel.h" |
54 | #include "llinventoryview.h" | 53 | #include "llinventoryview.h" |
diff --git a/linden/indra/newview/llfloatercustomize.h b/linden/indra/newview/llfloatercustomize.h index d0e558f..aa93606 100644 --- a/linden/indra/newview/llfloatercustomize.h +++ b/linden/indra/newview/llfloatercustomize.h | |||
@@ -55,7 +55,6 @@ class LLMakeOutfitDialog; | |||
55 | class LLRadioGroup; | 55 | class LLRadioGroup; |
56 | class LLScrollableContainerView; | 56 | class LLScrollableContainerView; |
57 | class LLScrollingPanelList; | 57 | class LLScrollingPanelList; |
58 | class LLTabContainerVertical; | ||
59 | class LLTextBox; | 58 | class LLTextBox; |
60 | class LLTextureCtrl; | 59 | class LLTextureCtrl; |
61 | class LLViewerJointMesh; | 60 | class LLViewerJointMesh; |
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp index c468a5e..744c179 100644 --- a/linden/indra/newview/llfloaterpreference.cpp +++ b/linden/indra/newview/llfloaterpreference.cpp | |||
@@ -49,7 +49,6 @@ | |||
49 | #include "message.h" | 49 | #include "message.h" |
50 | 50 | ||
51 | #include "llcommandhandler.h" | 51 | #include "llcommandhandler.h" |
52 | #include "llfloaterabout.h" | ||
53 | #include "llfloaterpreference.h" | 52 | #include "llfloaterpreference.h" |
54 | #include "llpanelnetwork.h" | 53 | #include "llpanelnetwork.h" |
55 | #include "llpanelaudioprefs.h" | 54 | #include "llpanelaudioprefs.h" |
@@ -353,7 +352,6 @@ LLFloaterPreference::LLFloaterPreference() | |||
353 | 352 | ||
354 | BOOL LLFloaterPreference::postBuild() | 353 | BOOL LLFloaterPreference::postBuild() |
355 | { | 354 | { |
356 | requires<LLButton>("About..."); | ||
357 | requires<LLButton>("OK"); | 355 | requires<LLButton>("OK"); |
358 | requires<LLButton>("Cancel"); | 356 | requires<LLButton>("Cancel"); |
359 | requires<LLButton>("Apply"); | 357 | requires<LLButton>("Apply"); |
@@ -363,9 +361,6 @@ BOOL LLFloaterPreference::postBuild() | |||
363 | { | 361 | { |
364 | return FALSE; | 362 | return FALSE; |
365 | } | 363 | } |
366 | |||
367 | mAboutBtn = getChild<LLButton>("About..."); | ||
368 | mAboutBtn->setClickedCallback(onClickAbout, this); | ||
369 | 364 | ||
370 | mApplyBtn = getChild<LLButton>("Apply"); | 365 | mApplyBtn = getChild<LLButton>("Apply"); |
371 | mApplyBtn->setClickedCallback(onBtnApply, this); | 366 | mApplyBtn->setClickedCallback(onBtnApply, this); |
@@ -430,13 +425,6 @@ void LLFloaterPreference::show(void*) | |||
430 | } | 425 | } |
431 | 426 | ||
432 | 427 | ||
433 | // static | ||
434 | void LLFloaterPreference::onClickAbout(void*) | ||
435 | { | ||
436 | LLFloaterAbout::show(NULL); | ||
437 | } | ||
438 | |||
439 | |||
440 | // static | 428 | // static |
441 | void LLFloaterPreference::onBtnOK( void* userdata ) | 429 | void LLFloaterPreference::onBtnOK( void* userdata ) |
442 | { | 430 | { |
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h index 894d242..1878280 100644 --- a/linden/indra/newview/llfloaterpreference.h +++ b/linden/indra/newview/llfloaterpreference.h | |||
@@ -40,7 +40,6 @@ | |||
40 | #define LL_LLFLOATERPREFERENCE_H | 40 | #define LL_LLFLOATERPREFERENCE_H |
41 | 41 | ||
42 | #include "llfloater.h" | 42 | #include "llfloater.h" |
43 | #include "lltabcontainervertical.h" | ||
44 | 43 | ||
45 | class LLPanelGeneral; | 44 | class LLPanelGeneral; |
46 | class LLPanelInput; | 45 | class LLPanelInput; |
@@ -119,12 +118,10 @@ protected: | |||
119 | 118 | ||
120 | /*virtual*/ void onClose(bool app_quitting); | 119 | /*virtual*/ void onClose(bool app_quitting); |
121 | 120 | ||
122 | LLButton* mAboutBtn; | ||
123 | LLButton *mOKBtn; | 121 | LLButton *mOKBtn; |
124 | LLButton *mCancelBtn; | 122 | LLButton *mCancelBtn; |
125 | LLButton *mApplyBtn; | 123 | LLButton *mApplyBtn; |
126 | 124 | ||
127 | static void onClickAbout(void*); | ||
128 | static void onBtnOK(void*); | 125 | static void onBtnOK(void*); |
129 | static void onBtnCancel(void*); | 126 | static void onBtnCancel(void*); |
130 | static void onBtnApply(void*); | 127 | static void onBtnApply(void*); |
diff --git a/linden/indra/newview/llpanelavatar.cpp b/linden/indra/newview/llpanelavatar.cpp index 6e0949f..bfcc04a 100644 --- a/linden/indra/newview/llpanelavatar.cpp +++ b/linden/indra/newview/llpanelavatar.cpp | |||
@@ -67,7 +67,6 @@ | |||
67 | #include "llscrolllistctrl.h" | 67 | #include "llscrolllistctrl.h" |
68 | #include "llstatusbar.h" | 68 | #include "llstatusbar.h" |
69 | #include "lltabcontainer.h" | 69 | #include "lltabcontainer.h" |
70 | #include "lltabcontainervertical.h" | ||
71 | #include "llimview.h" | 70 | #include "llimview.h" |
72 | #include "lltooldraganddrop.h" | 71 | #include "lltooldraganddrop.h" |
73 | #include "lluiconstants.h" | 72 | #include "lluiconstants.h" |
diff --git a/linden/indra/newview/llpanelclassified.cpp b/linden/indra/newview/llpanelclassified.cpp index c6f9b0c..36fc86d 100644 --- a/linden/indra/newview/llpanelclassified.cpp +++ b/linden/indra/newview/llpanelclassified.cpp | |||
@@ -54,7 +54,6 @@ | |||
54 | #include "lllineeditor.h" | 54 | #include "lllineeditor.h" |
55 | #include "llfloateravatarinfo.h" | 55 | #include "llfloateravatarinfo.h" |
56 | #include "llfloaterclassified.h" | 56 | #include "llfloaterclassified.h" |
57 | #include "lltabcontainervertical.h" | ||
58 | #include "lltextbox.h" | 57 | #include "lltextbox.h" |
59 | #include "llcombobox.h" | 58 | #include "llcombobox.h" |
60 | #include "llviewertexteditor.h" | 59 | #include "llviewertexteditor.h" |
diff --git a/linden/indra/newview/llpanelpick.cpp b/linden/indra/newview/llpanelpick.cpp index b26b51a..9c2638f 100644 --- a/linden/indra/newview/llpanelpick.cpp +++ b/linden/indra/newview/llpanelpick.cpp | |||
@@ -47,7 +47,6 @@ | |||
47 | #include "llcheckboxctrl.h" | 47 | #include "llcheckboxctrl.h" |
48 | #include "llviewercontrol.h" | 48 | #include "llviewercontrol.h" |
49 | #include "lllineeditor.h" | 49 | #include "lllineeditor.h" |
50 | #include "lltabcontainervertical.h" | ||
51 | #include "lltextbox.h" | 50 | #include "lltextbox.h" |
52 | #include "llviewertexteditor.h" | 51 | #include "llviewertexteditor.h" |
53 | #include "lltexturectrl.h" | 52 | #include "lltexturectrl.h" |
diff --git a/linden/indra/newview/llprefsadvanced.cpp b/linden/indra/newview/llprefsadvanced.cpp index 60c936a..56c72c4 100644 --- a/linden/indra/newview/llprefsadvanced.cpp +++ b/linden/indra/newview/llprefsadvanced.cpp | |||
@@ -69,6 +69,7 @@ BOOL LLPrefsAdvanced::postBuild() | |||
69 | childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic")); | 69 | childSetValue("language_is_public", gSavedSettings.getBOOL("LanguageIsPublic")); |
70 | childSetValue("allow_mupose", gSavedSettings.getBOOL("AllowMUpose")); | 70 | childSetValue("allow_mupose", gSavedSettings.getBOOL("AllowMUpose")); |
71 | childSetValue("auto_close_ooc", gSavedSettings.getBOOL("AutoCloseOOC")); | 71 | childSetValue("auto_close_ooc", gSavedSettings.getBOOL("AutoCloseOOC")); |
72 | childSetValue("shadows_check", gSavedSettings.getBOOL("ShadowsEnabled")); | ||
72 | 73 | ||
73 | childSetValue("lightshare_combo", | 74 | childSetValue("lightshare_combo", |
74 | LLSD((S32)gSavedSettings.getU32("LightShareAllowed"))); | 75 | LLSD((S32)gSavedSettings.getU32("LightShareAllowed"))); |
@@ -131,6 +132,7 @@ void LLPrefsAdvanced::apply() | |||
131 | childSetValue("shadows_check", FALSE); | 132 | childSetValue("shadows_check", FALSE); |
132 | LLNotifications::instance().add("NoShadows"); | 133 | LLNotifications::instance().add("NoShadows"); |
133 | llwarns << "Attempting to enable shadow rendering while graphics settings less than Ultra or shaders are missing!" << llendl; | 134 | llwarns << "Attempting to enable shadow rendering while graphics settings less than Ultra or shaders are missing!" << llendl; |
135 | gSavedSettings.setBOOL("ShadowsEnabled", FALSE); | ||
134 | } | 136 | } |
135 | else if ( (gSavedSettings.getBOOL("WindLightUseAtmosShaders") // If we do, toggle shadows in the correct order | 137 | else if ( (gSavedSettings.getBOOL("WindLightUseAtmosShaders") // If we do, toggle shadows in the correct order |
136 | && gSavedSettings.getBOOL("VertexShaderEnable")) ) | 138 | && gSavedSettings.getBOOL("VertexShaderEnable")) ) |
@@ -138,6 +140,7 @@ void LLPrefsAdvanced::apply() | |||
138 | gSavedSettings.setBOOL("RenderUseFBO", childGetValue("shadows_check").asBoolean()); | 140 | gSavedSettings.setBOOL("RenderUseFBO", childGetValue("shadows_check").asBoolean()); |
139 | gSavedSettings.setBOOL("RenderDeferred", childGetValue("shadows_check").asBoolean()); | 141 | gSavedSettings.setBOOL("RenderDeferred", childGetValue("shadows_check").asBoolean()); |
140 | llinfos << "Shadow rendering enabled" << llendl; | 142 | llinfos << "Shadow rendering enabled" << llendl; |
143 | gSavedSettings.setBOOL("ShadowsEnabled", TRUE); | ||
141 | } | 144 | } |
142 | } | 145 | } |
143 | else if (!childGetValue("shadows_check").asBoolean()) | 146 | else if (!childGetValue("shadows_check").asBoolean()) |
@@ -147,9 +150,9 @@ void LLPrefsAdvanced::apply() | |||
147 | gSavedSettings.setBOOL("RenderDeferred", childGetValue("shadows_check").asBoolean()); | 150 | gSavedSettings.setBOOL("RenderDeferred", childGetValue("shadows_check").asBoolean()); |
148 | gSavedSettings.setBOOL("RenderUseFBO", childGetValue("shadows_check").asBoolean()); | 151 | gSavedSettings.setBOOL("RenderUseFBO", childGetValue("shadows_check").asBoolean()); |
149 | llinfos << "Shadow rendering disabled" << llendl; | 152 | llinfos << "Shadow rendering disabled" << llendl; |
153 | gSavedSettings.setBOOL("ShadowsEnabled", FALSE); | ||
150 | } | 154 | } |
151 | } | 155 | } |
152 | gSavedSettings.setBOOL("ShadowsEnabled", childGetValue("shadows_check").asBoolean()); | ||
153 | 156 | ||
154 | if (gSavedSettings.getBOOL("LegacyPieEnabled") == !((BOOL)childGetValue("legacy_pie_menu_checkbox"))) | 157 | if (gSavedSettings.getBOOL("LegacyPieEnabled") == !((BOOL)childGetValue("legacy_pie_menu_checkbox"))) |
155 | { | 158 | { |
diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp index 3cedf73..c5c14b5 100644 --- a/linden/indra/newview/lltexturecache.cpp +++ b/linden/indra/newview/lltexturecache.cpp | |||
@@ -1063,6 +1063,13 @@ void LLTextureCache::writeEntryAndClose(S32 idx, Entry& entry) | |||
1063 | if (!mReadOnly) | 1063 | if (!mReadOnly) |
1064 | { | 1064 | { |
1065 | entry.mTime = time(NULL); | 1065 | entry.mTime = time(NULL); |
1066 | if(entry.mImageSize < entry.mBodySize) | ||
1067 | { | ||
1068 | // Just say no, due to my messing around to cache discards other than 0 we can end up here | ||
1069 | // after recalling an image from cache at a lower discard than cached. RC | ||
1070 | return; | ||
1071 | } | ||
1072 | |||
1066 | llassert_always(entry.mImageSize == 0 || entry.mImageSize == -1 || entry.mImageSize > entry.mBodySize); | 1073 | llassert_always(entry.mImageSize == 0 || entry.mImageSize == -1 || entry.mImageSize > entry.mBodySize); |
1067 | if (entry.mBodySize > 0) | 1074 | if (entry.mBodySize > 0) |
1068 | { | 1075 | { |
diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index 326a1b6..2184478 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp | |||
@@ -169,6 +169,9 @@ public: | |||
169 | mGetReason = reason; | 169 | mGetReason = reason; |
170 | } | 170 | } |
171 | 171 | ||
172 | void setCanUseHTTP(bool can_use_http) {mCanUseHTTP = can_use_http;} | ||
173 | bool getCanUseHTTP()const {return mCanUseHTTP ;} | ||
174 | |||
172 | protected: | 175 | protected: |
173 | LLTextureFetchWorker(LLTextureFetch* fetcher, const LLUUID& id, const LLHost& host, | 176 | LLTextureFetchWorker(LLTextureFetch* fetcher, const LLUUID& id, const LLHost& host, |
174 | F32 priority, S32 discard, S32 size); | 177 | F32 priority, S32 discard, S32 size); |
@@ -218,8 +221,15 @@ private: | |||
218 | QUEUED = 1, | 221 | QUEUED = 1, |
219 | SENT_SIM = 2 | 222 | SENT_SIM = 2 |
220 | }; | 223 | }; |
224 | enum e_write_to_cache_state //mWriteToCacheState | ||
225 | { | ||
226 | NOT_WRITE = 0, | ||
227 | CAN_WRITE = 1, | ||
228 | SHOULD_WRITE = 2 | ||
229 | }; | ||
221 | static const char* sStateDescs[]; | 230 | static const char* sStateDescs[]; |
222 | e_state mState; | 231 | e_state mState; |
232 | e_write_to_cache_state mWriteToCacheState; | ||
223 | LLTextureFetch* mFetcher; | 233 | LLTextureFetch* mFetcher; |
224 | LLPointer<LLImageFormatted> mFormattedImage; | 234 | LLPointer<LLImageFormatted> mFormattedImage; |
225 | LLPointer<LLImageRaw> mRawImage; | 235 | LLPointer<LLImageRaw> mRawImage; |
@@ -254,6 +264,8 @@ private: | |||
254 | BOOL mNeedsAux; | 264 | BOOL mNeedsAux; |
255 | BOOL mHaveAllData; | 265 | BOOL mHaveAllData; |
256 | BOOL mInLocalCache; | 266 | BOOL mInLocalCache; |
267 | bool mCanUseHTTP ; | ||
268 | bool mCanUseNET ; //can get from asset server. | ||
257 | S32 mHTTPFailCount; | 269 | S32 mHTTPFailCount; |
258 | S32 mRetryAttempt; | 270 | S32 mRetryAttempt; |
259 | S32 mActiveCount; | 271 | S32 mActiveCount; |
@@ -379,6 +391,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher, | |||
379 | S32 size) // Desired size | 391 | S32 size) // Desired size |
380 | : LLWorkerClass(fetcher, "TextureFetch"), | 392 | : LLWorkerClass(fetcher, "TextureFetch"), |
381 | mState(INIT), | 393 | mState(INIT), |
394 | mWriteToCacheState(NOT_WRITE), | ||
382 | mFetcher(fetcher), | 395 | mFetcher(fetcher), |
383 | mID(id), | 396 | mID(id), |
384 | mHost(host), | 397 | mHost(host), |
@@ -407,6 +420,7 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher, | |||
407 | mNeedsAux(FALSE), | 420 | mNeedsAux(FALSE), |
408 | mHaveAllData(FALSE), | 421 | mHaveAllData(FALSE), |
409 | mInLocalCache(FALSE), | 422 | mInLocalCache(FALSE), |
423 | mCanUseHTTP(true), | ||
410 | mHTTPFailCount(0), | 424 | mHTTPFailCount(0), |
411 | mRetryAttempt(0), | 425 | mRetryAttempt(0), |
412 | mActiveCount(0), | 426 | mActiveCount(0), |
@@ -417,6 +431,8 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher, | |||
417 | mTotalPackets(0), | 431 | mTotalPackets(0), |
418 | mImageCodec(IMG_CODEC_INVALID) | 432 | mImageCodec(IMG_CODEC_INVALID) |
419 | { | 433 | { |
434 | mCanUseNET = mUrl.empty() ; | ||
435 | |||
420 | calcWorkPriority(); | 436 | calcWorkPriority(); |
421 | mType = host.isOk() ? LLImageBase::TYPE_AVATAR_BAKE : LLImageBase::TYPE_NORMAL; | 437 | mType = host.isOk() ? LLImageBase::TYPE_AVATAR_BAKE : LLImageBase::TYPE_NORMAL; |
422 | // llinfos << "Create: " << mID << " mHost:" << host << " Discard=" << discard << llendl; | 438 | // llinfos << "Create: " << mID << " mHost:" << host << " Discard=" << discard << llendl; |
@@ -573,13 +589,25 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
573 | { | 589 | { |
574 | LLMutexLock lock(&mWorkMutex); | 590 | LLMutexLock lock(&mWorkMutex); |
575 | 591 | ||
576 | if ((mFetcher->isQuitting() || (mImagePriority <= 0.0f) || getFlags(LLWorkerClass::WCF_DELETE_REQUESTED))) | 592 | if ((mFetcher->isQuitting() || getFlags(LLWorkerClass::WCF_DELETE_REQUESTED))) |
577 | { | 593 | { |
578 | if (mState < WRITE_TO_CACHE) | 594 | if (mState < DECODE_IMAGE) |
579 | { | 595 | { |
580 | return true; // abort | 596 | return true; // abort |
581 | } | 597 | } |
582 | } | 598 | } |
599 | if (mImagePriority < 1.0f) | ||
600 | { | ||
601 | if (mState == INIT || mState == LOAD_FROM_NETWORK || mState == LOAD_FROM_SIMULATOR) | ||
602 | { | ||
603 | return true; // abort | ||
604 | } | ||
605 | } | ||
606 | if (mState > CACHE_POST && !mCanUseNET && !mCanUseHTTP) | ||
607 | { | ||
608 | //nowhere to get data, abort. | ||
609 | return true ; | ||
610 | } | ||
583 | 611 | ||
584 | if (mFetcher->mDebugPause|| gDisconnected) | 612 | if (mFetcher->mDebugPause|| gDisconnected) |
585 | { | 613 | { |
@@ -647,7 +675,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
647 | mCacheReadHandle = mFetcher->mTextureCache->readFromCache(mID, cache_priority, | 675 | mCacheReadHandle = mFetcher->mTextureCache->readFromCache(mID, cache_priority, |
648 | offset, size, responder); | 676 | offset, size, responder); |
649 | } | 677 | } |
650 | else | 678 | else if(mCanUseHTTP) |
651 | { | 679 | { |
652 | if (!(mUrl.compare(0, 7, "http://") == 0)) | 680 | if (!(mUrl.compare(0, 7, "http://") == 0)) |
653 | { | 681 | { |
@@ -657,6 +685,11 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
657 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); | 685 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); |
658 | mState = SEND_HTTP_REQ; | 686 | mState = SEND_HTTP_REQ; |
659 | } | 687 | } |
688 | else | ||
689 | { | ||
690 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); | ||
691 | mState = LOAD_FROM_NETWORK; | ||
692 | } | ||
660 | } | 693 | } |
661 | 694 | ||
662 | if (mLoaded) | 695 | if (mLoaded) |
@@ -689,6 +722,10 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
689 | // we have enough data, decode it | 722 | // we have enough data, decode it |
690 | llassert_always(mFormattedImage->getDataSize() > 0); | 723 | llassert_always(mFormattedImage->getDataSize() > 0); |
691 | mState = DECODE_IMAGE; | 724 | mState = DECODE_IMAGE; |
725 | mWriteToCacheState = NOT_WRITE ; | ||
726 | LL_DEBUGS("Texture") << mID << ": Cached. Bytes: " << mFormattedImage->getDataSize() | ||
727 | << " Size: " << llformat("%dx%d",mFormattedImage->getWidth(),mFormattedImage->getHeight()) | ||
728 | << " Desired Discard: " << mDesiredDiscard << " Desired Size: " << mDesiredSize << LL_ENDL; | ||
692 | // fall through | 729 | // fall through |
693 | } | 730 | } |
694 | else | 731 | else |
@@ -716,7 +753,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
716 | bool get_url = gSavedSettings.getBOOL("ImagePipelineUseHTTP"); | 753 | bool get_url = gSavedSettings.getBOOL("ImagePipelineUseHTTP"); |
717 | if (!mUrl.empty()) get_url = false; | 754 | if (!mUrl.empty()) get_url = false; |
718 | // if (mHost != LLHost::invalid) get_url = false; | 755 | // if (mHost != LLHost::invalid) get_url = false; |
719 | if ( get_url ) | 756 | if ( get_url && mCanUseHTTP && mUrl.empty())//get http url. |
720 | { | 757 | { |
721 | LLViewerRegion* region = NULL; | 758 | LLViewerRegion* region = NULL; |
722 | if (mHost == LLHost::invalid) | 759 | if (mHost == LLHost::invalid) |
@@ -730,23 +767,35 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
730 | if (!http_url.empty()) | 767 | if (!http_url.empty()) |
731 | { | 768 | { |
732 | mUrl = http_url + "/?texture_id=" + mID.asString().c_str(); | 769 | mUrl = http_url + "/?texture_id=" + mID.asString().c_str(); |
770 | mWriteToCacheState = CAN_WRITE ; //because this texture has a fixed texture id. | ||
771 | } | ||
772 | else | ||
773 | { | ||
774 | mCanUseHTTP = false ; | ||
733 | } | 775 | } |
734 | } | 776 | } |
735 | else | 777 | else |
736 | { | 778 | { |
737 | llwarns << "Region not found for host: " << mHost << llendl; | 779 | // This will happen if not logged in or if a region deoes not have HTTP Texture enabled |
780 | //llwarns << "Region not found for host: " << mHost << llendl; | ||
781 | mCanUseHTTP = false; | ||
738 | } | 782 | } |
739 | } | 783 | } |
740 | if (!mUrl.empty()) | 784 | if (mCanUseHTTP && !mUrl.empty()) |
741 | { | 785 | { |
742 | mState = LLTextureFetchWorker::SEND_HTTP_REQ; | 786 | mState = LLTextureFetchWorker::SEND_HTTP_REQ; |
743 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); | 787 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); |
788 | if(mWriteToCacheState != NOT_WRITE) | ||
789 | { | ||
790 | mWriteToCacheState = CAN_WRITE ; | ||
791 | } | ||
744 | // don't return, fall through to next state | 792 | // don't return, fall through to next state |
745 | } | 793 | } |
746 | else if (mSentRequest == UNSENT) | 794 | else if (mSentRequest == UNSENT) |
747 | { | 795 | { |
748 | // Add this to the network queue and sit here. | 796 | // Add this to the network queue and sit here. |
749 | // LLTextureFetch::update() will send off a request which will change our state | 797 | // LLTextureFetch::update() will send off a request which will change our state |
798 | mWriteToCacheState = CAN_WRITE ; | ||
750 | mRequestedSize = mDesiredSize; | 799 | mRequestedSize = mDesiredSize; |
751 | mRequestedDiscard = mDesiredDiscard; | 800 | mRequestedDiscard = mDesiredDiscard; |
752 | mSentRequest = QUEUED; | 801 | mSentRequest = QUEUED; |
@@ -778,6 +827,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
778 | } | 827 | } |
779 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); | 828 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); |
780 | mState = DECODE_IMAGE; | 829 | mState = DECODE_IMAGE; |
830 | mWriteToCacheState = SHOULD_WRITE ; | ||
781 | } | 831 | } |
782 | else | 832 | else |
783 | { | 833 | { |
@@ -788,6 +838,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
788 | 838 | ||
789 | if (mState == SEND_HTTP_REQ) | 839 | if (mState == SEND_HTTP_REQ) |
790 | { | 840 | { |
841 | if(mCanUseHTTP) | ||
791 | { | 842 | { |
792 | const S32 HTTP_QUEUE_MAX_SIZE = 8; | 843 | const S32 HTTP_QUEUE_MAX_SIZE = 8; |
793 | // *TODO: Integrate this with llviewerthrottle | 844 | // *TODO: Integrate this with llviewerthrottle |
@@ -861,28 +912,78 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
861 | S32 cur_size = mFormattedImage.notNull() ? mFormattedImage->getDataSize() : 0; | 912 | S32 cur_size = mFormattedImage.notNull() ? mFormattedImage->getDataSize() : 0; |
862 | if (mRequestedSize < 0) | 913 | if (mRequestedSize < 0) |
863 | { | 914 | { |
864 | const S32 HTTP_MAX_RETRY_COUNT = 4; | 915 | S32 max_attempts; |
865 | llinfos << "HTTP GET failed for: " << mUrl | 916 | if (mGetStatus == HTTP_NOT_FOUND) |
866 | << " Status: " << mGetStatus << " Reason: " << mGetReason | ||
867 | << " Try:" << mHTTPFailCount+1 << "/" << HTTP_MAX_RETRY_COUNT << llendl; | ||
868 | if (cur_size == 0) | ||
869 | { | 917 | { |
870 | ++mHTTPFailCount; | 918 | mHTTPFailCount = max_attempts = 1; // Don't retry |
871 | if (mGetStatus == HTTP_NOT_FOUND || mHTTPFailCount >= HTTP_MAX_RETRY_COUNT) | 919 | llwarns << "Texture missing from server (404): " << mUrl << llendl; |
920 | |||
921 | //roll back to try UDP | ||
922 | if(mCanUseNET) | ||
923 | { | ||
924 | mState = INIT ; | ||
925 | mCanUseHTTP = false ; | ||
926 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); | ||
927 | return false ; | ||
928 | } | ||
929 | else | ||
872 | { | 930 | { |
931 | // UDP is not an option, we are dead | ||
873 | resetFormattedData(); | 932 | resetFormattedData(); |
874 | return true; // failed | 933 | return true; // failed |
875 | } | 934 | } |
935 | } | ||
936 | else if (mGetStatus == HTTP_SERVICE_UNAVAILABLE) | ||
937 | { | ||
938 | // *TODO: Should probably introduce a timer here to delay future HTTP requsts | ||
939 | // for a short time (~1s) to ease server load? Ideally the server would queue | ||
940 | // requests instead of returning 503... we already limit the number pending. | ||
941 | ++mHTTPFailCount; | ||
942 | max_attempts = mHTTPFailCount+1; // Keep retrying | ||
943 | LL_INFOS_ONCE("Texture") << "Texture server busy (503): " << mUrl << LL_ENDL; | ||
944 | } | ||
945 | else | ||
946 | { | ||
947 | const S32 HTTP_MAX_RETRY_COUNT = 3; | ||
948 | max_attempts = HTTP_MAX_RETRY_COUNT + 1; | ||
949 | ++mHTTPFailCount; | ||
950 | llinfos << "HTTP GET failed for: " << mUrl | ||
951 | << " Status: " << mGetStatus << " Reason: '" << mGetReason << "'" | ||
952 | << " Attempt:" << mHTTPFailCount+1 << "/" << max_attempts << llendl; | ||
953 | } | ||
954 | |||
955 | if (mHTTPFailCount >= max_attempts) | ||
956 | { | ||
957 | // Make max_attempts attempt at decoding what data we have, then bail forever on this image | ||
958 | if (cur_size > 0 && (mHTTPFailCount < (max_attempts+1)) ) | ||
959 | { | ||
960 | // Use available data | ||
961 | mLoadedDiscard = mFormattedImage->getDiscardLevel(); | ||
962 | mState = DECODE_IMAGE; | ||
963 | return false; | ||
964 | } | ||
876 | else | 965 | else |
877 | { | 966 | { |
878 | mState = SEND_HTTP_REQ; | 967 | //roll back to try UDP |
879 | return false; // retry | 968 | if(mCanUseNET) |
969 | { | ||
970 | mState = INIT ; | ||
971 | mCanUseHTTP = false ; | ||
972 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); | ||
973 | return false ; | ||
974 | } | ||
975 | else | ||
976 | { | ||
977 | // UDP is not an option, we are dead | ||
978 | resetFormattedData(); | ||
979 | return true; // failed | ||
980 | } | ||
880 | } | 981 | } |
881 | } | 982 | } |
882 | else | 983 | else |
883 | { | 984 | { |
884 | mState = DECODE_IMAGE; | 985 | mState = SEND_HTTP_REQ; |
885 | return false; // use what we have | 986 | return false; // retry |
886 | } | 987 | } |
887 | } | 988 | } |
888 | 989 | ||
@@ -898,10 +999,15 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
898 | } | 999 | } |
899 | 1000 | ||
900 | llassert_always(mBufferSize == cur_size + mRequestedSize); | 1001 | llassert_always(mBufferSize == cur_size + mRequestedSize); |
901 | if (mHaveAllData) | 1002 | if (mHaveAllData && mRequestedDiscard == 0) //the image file is fully loaded. |
902 | { | 1003 | { |
903 | mFileSize = mBufferSize; | 1004 | mFileSize = mBufferSize; |
904 | } | 1005 | } |
1006 | else //the file size is unknown. | ||
1007 | { | ||
1008 | mFileSize = mBufferSize + 1 ; //flag the file is not fully loaded. | ||
1009 | } | ||
1010 | |||
905 | U8* buffer = new U8[mBufferSize]; | 1011 | U8* buffer = new U8[mBufferSize]; |
906 | if (cur_size > 0) | 1012 | if (cur_size > 0) |
907 | { | 1013 | { |
@@ -916,6 +1022,10 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
916 | mBufferSize = 0; | 1022 | mBufferSize = 0; |
917 | mLoadedDiscard = mRequestedDiscard; | 1023 | mLoadedDiscard = mRequestedDiscard; |
918 | mState = DECODE_IMAGE; | 1024 | mState = DECODE_IMAGE; |
1025 | if(mWriteToCacheState != NOT_WRITE) | ||
1026 | { | ||
1027 | mWriteToCacheState = SHOULD_WRITE ; | ||
1028 | } | ||
919 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); | 1029 | setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority); |
920 | return false; | 1030 | return false; |
921 | } | 1031 | } |
@@ -980,7 +1090,7 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
980 | 1090 | ||
981 | if (mState == WRITE_TO_CACHE) | 1091 | if (mState == WRITE_TO_CACHE) |
982 | { | 1092 | { |
983 | if (mInLocalCache || mSentRequest == UNSENT || mFormattedImage.isNull()) | 1093 | if (mWriteToCacheState != SHOULD_WRITE || mFormattedImage.isNull()) |
984 | { | 1094 | { |
985 | // If we're in a local cache or we didn't actually receive any new data, | 1095 | // If we're in a local cache or we didn't actually receive any new data, |
986 | // or we failed to load anything, skip | 1096 | // or we failed to load anything, skip |
@@ -1032,7 +1142,15 @@ bool LLTextureFetchWorker::doWork(S32 param) | |||
1032 | else | 1142 | else |
1033 | { | 1143 | { |
1034 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); | 1144 | setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority); |
1035 | return true; | 1145 | |
1146 | if(mDecodedDiscard<=0) | ||
1147 | { | ||
1148 | return true; | ||
1149 | } | ||
1150 | else | ||
1151 | { | ||
1152 | return false; | ||
1153 | } | ||
1036 | } | 1154 | } |
1037 | } | 1155 | } |
1038 | 1156 | ||
diff --git a/linden/indra/newview/llvieweraudio.cpp b/linden/indra/newview/llvieweraudio.cpp index 999e5dc..f043fb5 100644 --- a/linden/indra/newview/llvieweraudio.cpp +++ b/linden/indra/newview/llvieweraudio.cpp | |||
@@ -150,6 +150,8 @@ void audio_update_volume(bool force_update) | |||
150 | gSavedSettings.getBOOL("MuteUI") ? 0.f : gSavedSettings.getF32("AudioLevelUI")); | 150 | gSavedSettings.getBOOL("MuteUI") ? 0.f : gSavedSettings.getF32("AudioLevelUI")); |
151 | gAudiop->setSecondaryGain(LLAudioEngine::AUDIO_TYPE_AMBIENT, | 151 | gAudiop->setSecondaryGain(LLAudioEngine::AUDIO_TYPE_AMBIENT, |
152 | gSavedSettings.getBOOL("MuteAmbient") ? 0.f : gSavedSettings.getF32("AudioLevelAmbient")); | 152 | gSavedSettings.getBOOL("MuteAmbient") ? 0.f : gSavedSettings.getF32("AudioLevelAmbient")); |
153 | gAudiop->setSecondaryGain(LLAudioEngine::AUDIO_TYPE_GESTURE, | ||
154 | gSavedSettings.getBOOL("MuteGestures") ? 0.f : gSavedSettings.getF32("AudioLevelGestures")); | ||
153 | } | 155 | } |
154 | 156 | ||
155 | // Streaming Music | 157 | // Streaming Music |
diff --git a/linden/indra/newview/llviewercontrol.cpp b/linden/indra/newview/llviewercontrol.cpp index cca737c..0edb2c4 100644 --- a/linden/indra/newview/llviewercontrol.cpp +++ b/linden/indra/newview/llviewercontrol.cpp | |||
@@ -582,6 +582,7 @@ void settings_setup_listeners() | |||
582 | gSavedSettings.getControl("AudioLevelMusic")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 582 | gSavedSettings.getControl("AudioLevelMusic")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
583 | gSavedSettings.getControl("AudioLevelMedia")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 583 | gSavedSettings.getControl("AudioLevelMedia")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
584 | gSavedSettings.getControl("AudioLevelVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 584 | gSavedSettings.getControl("AudioLevelVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
585 | gSavedSettings.getControl("AudioLevelGestures")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | ||
585 | gSavedSettings.getControl("AudioLevelDistance")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 586 | gSavedSettings.getControl("AudioLevelDistance")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
586 | gSavedSettings.getControl("AudioLevelDoppler")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 587 | gSavedSettings.getControl("AudioLevelDoppler")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
587 | gSavedSettings.getControl("AudioLevelRolloff")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 588 | gSavedSettings.getControl("AudioLevelRolloff")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
@@ -593,6 +594,7 @@ void settings_setup_listeners() | |||
593 | gSavedSettings.getControl("MuteVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 594 | gSavedSettings.getControl("MuteVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
594 | gSavedSettings.getControl("MuteAmbient")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 595 | gSavedSettings.getControl("MuteAmbient")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
595 | gSavedSettings.getControl("MuteUI")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | 596 | gSavedSettings.getControl("MuteUI")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); |
597 | gSavedSettings.getControl("MuteGestures")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1)); | ||
596 | gSavedSettings.getControl("RenderVBOEnable")->getSignal()->connect(boost::bind(&handleRenderUseVBOChanged, _1)); | 598 | gSavedSettings.getControl("RenderVBOEnable")->getSignal()->connect(boost::bind(&handleRenderUseVBOChanged, _1)); |
597 | gSavedSettings.getControl("WLSkyDetail")->getSignal()->connect(boost::bind(&handleWLSkyDetailChanged, _1)); | 599 | gSavedSettings.getControl("WLSkyDetail")->getSignal()->connect(boost::bind(&handleWLSkyDetailChanged, _1)); |
598 | gSavedSettings.getControl("RenderLightingDetail")->getSignal()->connect(boost::bind(&handleRenderLightingDetailChanged, _1)); | 600 | gSavedSettings.getControl("RenderLightingDetail")->getSignal()->connect(boost::bind(&handleRenderLightingDetailChanged, _1)); |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index fb69389..9e2cc3d 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -5443,6 +5443,24 @@ class LLWorldSetBusy : public view_listener_t | |||
5443 | } | 5443 | } |
5444 | }; | 5444 | }; |
5445 | 5445 | ||
5446 | class LLWorldToggleAutoResponse: public view_listener_t | ||
5447 | { | ||
5448 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
5449 | { | ||
5450 | gSavedPerAccountSettings.setBOOL("InstantMessageResponseEnabled", !gSavedPerAccountSettings.getBOOL("InstantMessageResponseEnabled")); | ||
5451 | return true; | ||
5452 | } | ||
5453 | |||
5454 | }; | ||
5455 | |||
5456 | class LLWorldCheckAutoResponse: public view_listener_t | ||
5457 | { | ||
5458 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
5459 | { | ||
5460 | gMenuHolder->findControl(userdata["control"].asString())->setValue(gSavedPerAccountSettings.getBOOL("InstantMessageResponseEnabled")); | ||
5461 | return true; | ||
5462 | } | ||
5463 | }; | ||
5446 | 5464 | ||
5447 | class LLWorldCreateLandmark : public view_listener_t | 5465 | class LLWorldCreateLandmark : public view_listener_t |
5448 | { | 5466 | { |
@@ -10947,6 +10965,8 @@ void initialize_menus() | |||
10947 | addMenu(new LLWorldTeleportHome(), "World.TeleportHome"); | 10965 | addMenu(new LLWorldTeleportHome(), "World.TeleportHome"); |
10948 | addMenu(new LLWorldSetAway(), "World.SetAway"); | 10966 | addMenu(new LLWorldSetAway(), "World.SetAway"); |
10949 | addMenu(new LLWorldSetBusy(), "World.SetBusy"); | 10967 | addMenu(new LLWorldSetBusy(), "World.SetBusy"); |
10968 | addMenu(new LLWorldToggleAutoResponse(), "World.ToggleAutoResponse"); | ||
10969 | addMenu(new LLWorldCheckAutoResponse(), "World.CheckAutoResponse"); | ||
10950 | 10970 | ||
10951 | addMenu(new LLWorldEnableCreateLandmark(), "World.EnableCreateLandmark"); | 10971 | addMenu(new LLWorldEnableCreateLandmark(), "World.EnableCreateLandmark"); |
10952 | addMenu(new LLWorldEnableSetHomeLocation(), "World.EnableSetHomeLocation"); | 10972 | addMenu(new LLWorldEnableSetHomeLocation(), "World.EnableSetHomeLocation"); |
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index bc1aedb..b243e34 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp | |||
@@ -1566,195 +1566,198 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) | |||
1566 | } | 1566 | } |
1567 | } | 1567 | } |
1568 | }*/ | 1568 | }*/ |
1569 | bool typing_init = false; | 1569 | if (gSavedPerAccountSettings.getBOOL("InstantMessageResponseEnabled")) |
1570 | if( dialog == IM_TYPING_START && !is_muted ) | ||
1571 | { | 1570 | { |
1572 | if(!gIMMgr->hasSession(computed_session_id) && gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceIncoming")) | 1571 | bool typing_init = false; |
1572 | if( dialog == IM_TYPING_START && !is_muted ) | ||
1573 | { | 1573 | { |
1574 | typing_init = true; | 1574 | if(!gIMMgr->hasSession(computed_session_id) && gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceIncoming")) |
1575 | if( gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceStealFocus") ) | ||
1576 | { | 1575 | { |
1577 | /*LLUUID sess =*/ gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); | 1576 | typing_init = true; |
1578 | make_ui_sound("UISndNewIncomingIMSession"); | 1577 | if( gSavedPerAccountSettings.getBOOL("InstantMessageAnnounceStealFocus") ) |
1578 | { | ||
1579 | /*LLUUID sess =*/ gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); | ||
1580 | make_ui_sound("UISndNewIncomingIMSession"); | ||
1581 | } | ||
1582 | gIMMgr->addMessage( | ||
1583 | computed_session_id, | ||
1584 | from_id, | ||
1585 | name, | ||
1586 | llformat("You sense a disturbance in the force... (%s is typing)",name.c_str()), | ||
1587 | name, | ||
1588 | IM_NOTHING_SPECIAL, | ||
1589 | parent_estate_id, | ||
1590 | region_id, | ||
1591 | position, | ||
1592 | false); | ||
1579 | } | 1593 | } |
1580 | gIMMgr->addMessage( | ||
1581 | computed_session_id, | ||
1582 | from_id, | ||
1583 | name, | ||
1584 | llformat("You sense a disturbance in the force... (%s is typing)",name.c_str()), | ||
1585 | name, | ||
1586 | IM_NOTHING_SPECIAL, | ||
1587 | parent_estate_id, | ||
1588 | region_id, | ||
1589 | position, | ||
1590 | false); | ||
1591 | } | 1594 | } |
1592 | } | ||
1593 | 1595 | ||
1594 | bool is_auto_response = false; | 1596 | bool is_auto_response = false; |
1595 | if(dialog == IM_NOTHING_SPECIAL) { | 1597 | if(dialog == IM_NOTHING_SPECIAL) { |
1596 | // detect auto responses from GreenLife and compatible viewers | 1598 | // detect auto responses from compatible viewers |
1597 | is_auto_response = ( message.substr(0, 21) == "/me (auto-response): " ); | 1599 | is_auto_response = ( message.substr(0, 21) == "/me (auto-response): " ); |
1598 | } | 1600 | } |
1599 | 1601 | ||
1600 | bool do_auto_response = false; | 1602 | bool do_auto_response = false; |
1601 | if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone" ) ) | 1603 | if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseAnyone" ) ) |
1602 | do_auto_response = true; | 1604 | do_auto_response = true; |
1603 | 1605 | ||
1604 | // odd name for auto respond to non-friends | 1606 | // odd name for auto respond to non-friends |
1605 | if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends") && | 1607 | if( gSavedPerAccountSettings.getBOOL("InstantMessageResponseFriends") && |
1606 | LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL ) | 1608 | LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL ) |
1607 | do_auto_response = true; | 1609 | do_auto_response = true; |
1608 | 1610 | ||
1609 | if( is_muted && !gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted") ) | 1611 | if( is_muted && !gSavedPerAccountSettings.getBOOL("InstantMessageResponseMuted") ) |
1610 | do_auto_response = false; | 1612 | do_auto_response = false; |
1611 | 1613 | ||
1612 | if( offline != IM_ONLINE ) | 1614 | if( offline != IM_ONLINE ) |
1613 | do_auto_response = false; | 1615 | do_auto_response = false; |
1614 | 1616 | ||
1615 | if( is_auto_response ) | 1617 | if( is_auto_response ) |
1616 | do_auto_response = false; | 1618 | do_auto_response = false; |
1617 | 1619 | ||
1618 | // handle cases where IM_NOTHING_SPECIAL is not an IM | 1620 | // handle cases where IM_NOTHING_SPECIAL is not an IM |
1619 | if( name == SYSTEM_FROM || | 1621 | if( name == SYSTEM_FROM || |
1620 | from_id.isNull() || | 1622 | from_id.isNull() || |
1621 | to_id.isNull() ) | 1623 | to_id.isNull() ) |
1622 | do_auto_response = false; | 1624 | do_auto_response = false; |
1623 | 1625 | ||
1624 | // if( do_auto_response ) | 1626 | // if( do_auto_response ) |
1625 | // [RLVa:KB] - Alternate: Emerald-370 | 1627 | // [RLVa:KB] - Alternate: Emerald-370 |
1626 | // Emerald specific: auto-response should be blocked if the avie is RLV @sendim=n restricted and the recipient is not an exception | 1628 | // Emerald specific: auto-response should be blocked if the avie is RLV @sendim=n restricted and the recipient is not an exception |
1627 | if ( (do_auto_response) && ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.isException(RLV_BHVR_SENDIM, from_id)) ) ) | 1629 | if ( (do_auto_response) && ( (!gRlvHandler.hasBehaviour(RLV_BHVR_SENDIM)) || (gRlvHandler.isException(RLV_BHVR_SENDIM, from_id)) ) ) |
1628 | // [/RLVa:KB] | 1630 | // [/RLVa:KB] |
1629 | { | ||
1630 | if((dialog == IM_NOTHING_SPECIAL && !is_auto_response) || | ||
1631 | (dialog == IM_TYPING_START && gSavedPerAccountSettings.getBOOL("InstantMessageShowOnTyping")) | ||
1632 | ) | ||
1633 | { | 1631 | { |
1634 | BOOL has = gIMMgr->hasSession(computed_session_id); | 1632 | if((dialog == IM_NOTHING_SPECIAL && !is_auto_response) || |
1635 | if(!has || gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") || typing_init) | 1633 | (dialog == IM_TYPING_START && gSavedPerAccountSettings.getBOOL("InstantMessageShowOnTyping")) |
1634 | ) | ||
1636 | { | 1635 | { |
1637 | BOOL show = !gSavedPerAccountSettings.getBOOL("InstantMessageShowResponded"); | 1636 | BOOL has = gIMMgr->hasSession(computed_session_id); |
1638 | if(!has && show) | 1637 | if(!has || gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") || typing_init) |
1639 | { | ||
1640 | gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); | ||
1641 | } | ||
1642 | if(show) | ||
1643 | { | ||
1644 | gIMMgr->addMessage( | ||
1645 | computed_session_id, | ||
1646 | from_id, | ||
1647 | SYSTEM_FROM, | ||
1648 | llformat("Autoresponse sent to %s.",name.c_str()), | ||
1649 | LLStringUtil::null, | ||
1650 | IM_NOTHING_SPECIAL, | ||
1651 | parent_estate_id, | ||
1652 | region_id, | ||
1653 | position, | ||
1654 | false); | ||
1655 | } | ||
1656 | std::string my_name; | ||
1657 | gAgent.buildFullname(my_name); | ||
1658 | |||
1659 | //<-- Personalized Autoresponse by Madgeek | ||
1660 | std::string autoresponse = gSavedPerAccountSettings.getText("InstantMessageResponse"); | ||
1661 | //Define Wildcards | ||
1662 | std::string fname_wildcard = "#f"; | ||
1663 | std::string lname_wildcard = "#l"; | ||
1664 | std::string time_wildcard = "#t"; | ||
1665 | //Extract Name | ||
1666 | std::string f_name, l_name; | ||
1667 | std::istringstream inname(name); | ||
1668 | inname >> f_name >> l_name; | ||
1669 | //Generate a Timestamp | ||
1670 | time_t rawtime; | ||
1671 | time(&rawtime); | ||
1672 | char * timestamp_chars; | ||
1673 | timestamp_chars = asctime(localtime(&rawtime)); | ||
1674 | std::string timestamp; | ||
1675 | timestamp.assign(timestamp_chars); | ||
1676 | timestamp = timestamp.substr(0, timestamp.find('\n')); | ||
1677 | //Handle Replacements | ||
1678 | size_t found = autoresponse.find(fname_wildcard); | ||
1679 | while(found != std::string::npos) | ||
1680 | { | 1638 | { |
1681 | autoresponse.replace(found, 2, f_name); | 1639 | BOOL show = !gSavedPerAccountSettings.getBOOL("InstantMessageShowResponded"); |
1682 | found = autoresponse.find(fname_wildcard); | 1640 | if(!has && show) |
1683 | } | 1641 | { |
1684 | found = autoresponse.find(lname_wildcard); | 1642 | gIMMgr->addSession(name, IM_NOTHING_SPECIAL, from_id); |
1685 | while(found != std::string::npos) | 1643 | } |
1686 | { | 1644 | if(show) |
1687 | autoresponse.replace(found, 2, l_name); | 1645 | { |
1646 | gIMMgr->addMessage( | ||
1647 | computed_session_id, | ||
1648 | from_id, | ||
1649 | SYSTEM_FROM, | ||
1650 | llformat("Autoresponse sent to %s.",name.c_str()), | ||
1651 | LLStringUtil::null, | ||
1652 | IM_NOTHING_SPECIAL, | ||
1653 | parent_estate_id, | ||
1654 | region_id, | ||
1655 | position, | ||
1656 | false); | ||
1657 | } | ||
1658 | std::string my_name; | ||
1659 | gAgent.buildFullname(my_name); | ||
1660 | |||
1661 | //<-- Personalized Autoresponse by Madgeek | ||
1662 | std::string autoresponse = gSavedPerAccountSettings.getText("InstantMessageResponse"); | ||
1663 | //Define Wildcards | ||
1664 | std::string fname_wildcard = "#f"; | ||
1665 | std::string lname_wildcard = "#l"; | ||
1666 | std::string time_wildcard = "#t"; | ||
1667 | //Extract Name | ||
1668 | std::string f_name, l_name; | ||
1669 | std::istringstream inname(name); | ||
1670 | inname >> f_name >> l_name; | ||
1671 | //Generate a Timestamp | ||
1672 | time_t rawtime; | ||
1673 | time(&rawtime); | ||
1674 | char * timestamp_chars; | ||
1675 | timestamp_chars = asctime(localtime(&rawtime)); | ||
1676 | std::string timestamp; | ||
1677 | timestamp.assign(timestamp_chars); | ||
1678 | timestamp = timestamp.substr(0, timestamp.find('\n')); | ||
1679 | //Handle Replacements | ||
1680 | size_t found = autoresponse.find(fname_wildcard); | ||
1681 | while(found != std::string::npos) | ||
1682 | { | ||
1683 | autoresponse.replace(found, 2, f_name); | ||
1684 | found = autoresponse.find(fname_wildcard); | ||
1685 | } | ||
1688 | found = autoresponse.find(lname_wildcard); | 1686 | found = autoresponse.find(lname_wildcard); |
1689 | } | 1687 | while(found != std::string::npos) |
1690 | found = autoresponse.find(time_wildcard); | 1688 | { |
1691 | while(found != std::string::npos) | 1689 | autoresponse.replace(found, 2, l_name); |
1692 | { | 1690 | found = autoresponse.find(lname_wildcard); |
1693 | autoresponse.replace(found, 2, timestamp); | 1691 | } |
1694 | found = autoresponse.find(time_wildcard); | 1692 | found = autoresponse.find(time_wildcard); |
1695 | } | 1693 | while(found != std::string::npos) |
1696 | //--> Personalized Autoresponse | 1694 | { |
1697 | 1695 | autoresponse.replace(found, 2, timestamp); | |
1698 | if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") && has && !typing_init) { | 1696 | found = autoresponse.find(time_wildcard); |
1699 | // send as busy auto response instead to prevent endless repeating replies | 1697 | } |
1700 | // when other end is a bot or broken client that answers to every usual IM | 1698 | //--> Personalized Autoresponse |
1701 | // reasoning for this decision can be found in RFC2812 3.3.2 Notices | 1699 | |
1702 | // where PRIVMSG can be seen as IM_NOTHING_SPECIAL and NOTICE can be seen as | 1700 | if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseRepeat") && has && !typing_init) { |
1703 | // IM_BUSY_AUTO_RESPONSE. The assumption here is that no existing client | 1701 | // send as busy auto response instead to prevent endless repeating replies |
1704 | // responds to IM_BUSY_AUTO_RESPONSE. --TS | 1702 | // when other end is a bot or broken client that answers to every usual IM |
1705 | std::string response = autoresponse; | 1703 | // reasoning for this decision can be found in RFC2812 3.3.2 Notices |
1706 | pack_instant_message( | 1704 | // where PRIVMSG can be seen as IM_NOTHING_SPECIAL and NOTICE can be seen as |
1707 | gMessageSystem, | 1705 | // IM_BUSY_AUTO_RESPONSE. The assumption here is that no existing client |
1708 | gAgent.getID(), | 1706 | // responds to IM_BUSY_AUTO_RESPONSE. --TS |
1709 | FALSE, | 1707 | std::string response = autoresponse; |
1710 | gAgent.getSessionID(), | 1708 | pack_instant_message( |
1711 | from_id, | 1709 | gMessageSystem, |
1712 | my_name, | 1710 | gAgent.getID(), |
1713 | response, | 1711 | FALSE, |
1714 | IM_OFFLINE, | 1712 | gAgent.getSessionID(), |
1715 | IM_BUSY_AUTO_RESPONSE, | 1713 | from_id, |
1716 | session_id); | 1714 | my_name, |
1717 | } else { | 1715 | response, |
1718 | std::string response = "/me (auto-response): "+autoresponse; | 1716 | IM_OFFLINE, |
1719 | pack_instant_message( | 1717 | IM_BUSY_AUTO_RESPONSE, |
1720 | gMessageSystem, | 1718 | session_id); |
1721 | gAgent.getID(), | 1719 | } else { |
1722 | FALSE, | 1720 | std::string response = "/me (auto-response): "+autoresponse; |
1723 | gAgent.getSessionID(), | 1721 | pack_instant_message( |
1724 | from_id, | 1722 | gMessageSystem, |
1725 | my_name, | 1723 | gAgent.getID(), |
1726 | response, | 1724 | FALSE, |
1727 | IM_OFFLINE, | 1725 | gAgent.getSessionID(), |
1728 | IM_NOTHING_SPECIAL, | 1726 | from_id, |
1729 | session_id); | 1727 | my_name, |
1730 | } | 1728 | response, |
1731 | gAgent.sendReliableMessage(); | 1729 | IM_OFFLINE, |
1732 | if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseItem") && (!has || typing_init)) | 1730 | IM_NOTHING_SPECIAL, |
1733 | { | 1731 | session_id); |
1734 | LLUUID itemid = (LLUUID)gSavedPerAccountSettings.getString("InstantMessageResponseItemData"); | 1732 | } |
1735 | LLViewerInventoryItem* item = gInventory.getItem(itemid); | 1733 | gAgent.sendReliableMessage(); |
1736 | if(item) | 1734 | if(gSavedPerAccountSettings.getBOOL("InstantMessageResponseItem") && (!has || typing_init)) |
1737 | { | 1735 | { |
1738 | //childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); | 1736 | LLUUID itemid = (LLUUID)gSavedPerAccountSettings.getString("InstantMessageResponseItemData"); |
1739 | if(show) | 1737 | LLViewerInventoryItem* item = gInventory.getItem(itemid); |
1738 | if(item) | ||
1740 | { | 1739 | { |
1741 | gIMMgr->addMessage( | 1740 | //childSetValue("im_give_disp_rect_txt","Currently set to: "+item->getName()); |
1742 | computed_session_id, | 1741 | if(show) |
1743 | from_id, | 1742 | { |
1744 | SYSTEM_FROM, | 1743 | gIMMgr->addMessage( |
1745 | llformat("Sent %s auto-response item \"%s\"",name.c_str(),item->getName().c_str()), | 1744 | computed_session_id, |
1746 | LLStringUtil::null, | 1745 | from_id, |
1747 | IM_NOTHING_SPECIAL, | 1746 | SYSTEM_FROM, |
1748 | parent_estate_id, | 1747 | llformat("Sent %s auto-response item \"%s\"",name.c_str(),item->getName().c_str()), |
1749 | region_id, | 1748 | LLStringUtil::null, |
1750 | position, | 1749 | IM_NOTHING_SPECIAL, |
1751 | false); | 1750 | parent_estate_id, |
1751 | region_id, | ||
1752 | position, | ||
1753 | false); | ||
1754 | } | ||
1755 | LLToolDragAndDrop::giveInventory(from_id, item); | ||
1752 | } | 1756 | } |
1753 | LLToolDragAndDrop::giveInventory(from_id, item); | ||
1754 | } | 1757 | } |
1758 | //InstantMessageResponseItem< | ||
1759 | |||
1755 | } | 1760 | } |
1756 | //InstantMessageResponseItem< | ||
1757 | |||
1758 | } | 1761 | } |
1759 | } | 1762 | } |
1760 | } | 1763 | } |
@@ -3931,8 +3934,10 @@ void process_sound_trigger(LLMessageSystem *msg, void **) | |||
3931 | msg->getF32Fast(_PREHASH_SoundData, _PREHASH_Gain, gain); | 3934 | msg->getF32Fast(_PREHASH_SoundData, _PREHASH_Gain, gain); |
3932 | 3935 | ||
3933 | //If we have sounds muted, don't even try to load or trigger the sound. | 3936 | //If we have sounds muted, don't even try to load or trigger the sound. |
3934 | if(gSavedSettings.getBOOL("MuteSounds") || gain == 0.0) | 3937 | if (gSavedSettings.getBOOL("MuteSounds") || gain == 0.0) |
3938 | { | ||
3935 | return; | 3939 | return; |
3940 | } | ||
3936 | 3941 | ||
3937 | // adjust sound location to true global coords | 3942 | // adjust sound location to true global coords |
3938 | LLVector3d pos_global = from_region_handle(region_handle); | 3943 | LLVector3d pos_global = from_region_handle(region_handle); |
@@ -3940,9 +3945,6 @@ void process_sound_trigger(LLMessageSystem *msg, void **) | |||
3940 | pos_global.mdV[VY] += pos_local.mV[VY]; | 3945 | pos_global.mdV[VY] += pos_local.mV[VY]; |
3941 | pos_global.mdV[VZ] += pos_local.mV[VZ]; | 3946 | pos_global.mdV[VZ] += pos_local.mV[VZ]; |
3942 | 3947 | ||
3943 | // Don't play sounds if sound settings are muted. | ||
3944 | if (gSavedSettings.getBOOL("MuteSounds")) return; | ||
3945 | |||
3946 | // Don't play a trigger sound if you can't hear it due | 3948 | // Don't play a trigger sound if you can't hear it due |
3947 | // to parcel "local audio only" settings. | 3949 | // to parcel "local audio only" settings. |
3948 | if (!LLViewerParcelMgr::getInstance()->canHearSound(pos_global)) return; | 3950 | if (!LLViewerParcelMgr::getInstance()->canHearSound(pos_global)) return; |
@@ -3960,11 +3962,25 @@ void process_sound_trigger(LLMessageSystem *msg, void **) | |||
3960 | return; | 3962 | return; |
3961 | } | 3963 | } |
3962 | 3964 | ||
3965 | // Don't load sounds if we have gestures muted -- MC | ||
3966 | if ((owner_id != gAgent.getID()) && (object_id == owner_id)) | ||
3967 | { | ||
3968 | if (gSavedSettings.getBOOL("MuteGestures")) | ||
3969 | { | ||
3970 | return; | ||
3971 | } | ||
3972 | else | ||
3973 | { | ||
3974 | gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_GESTURE, pos_global); | ||
3975 | } | ||
3976 | } | ||
3977 | |||
3963 | // Don't play sounds from a region with maturity above current agent maturity | 3978 | // Don't play sounds from a region with maturity above current agent maturity |
3964 | if( !gAgent.canAccessMaturityInRegion( region_handle ) ) | 3979 | // Actually, let's -- MC |
3980 | /*if( !gAgent.canAccessMaturityInRegion( region_handle ) ) | ||
3965 | { | 3981 | { |
3966 | return; | 3982 | return; |
3967 | } | 3983 | }*/ |
3968 | 3984 | ||
3969 | gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global); | 3985 | gAudiop->triggerSound(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX, pos_global); |
3970 | } | 3986 | } |
@@ -4000,11 +4016,12 @@ void process_preload_sound(LLMessageSystem *msg, void **user_data) | |||
4000 | // help us out. | 4016 | // help us out. |
4001 | 4017 | ||
4002 | // Don't play sounds from a region with maturity above current agent maturity | 4018 | // Don't play sounds from a region with maturity above current agent maturity |
4003 | LLVector3d pos_global = objectp->getPositionGlobal(); | 4019 | // Actually, let's -- MC |
4020 | /*LLVector3d pos_global = objectp->getPositionGlobal(); | ||
4004 | if( !gAgent.canAccessMaturityAtGlobal( pos_global ) ) | 4021 | if( !gAgent.canAccessMaturityAtGlobal( pos_global ) ) |
4005 | { | 4022 | { |
4006 | return; | 4023 | return; |
4007 | } | 4024 | }*/ |
4008 | 4025 | ||
4009 | // Add audioData starts a transfer internally. | 4026 | // Add audioData starts a transfer internally. |
4010 | sourcep->addAudioData(datap, FALSE); | 4027 | sourcep->addAudioData(datap, FALSE); |
@@ -4040,11 +4057,12 @@ void process_attached_sound(LLMessageSystem *msg, void **user_data) | |||
4040 | 4057 | ||
4041 | 4058 | ||
4042 | // Don't play sounds from a region with maturity above current agent maturity | 4059 | // Don't play sounds from a region with maturity above current agent maturity |
4043 | LLVector3d pos = objectp->getPositionGlobal(); | 4060 | // Actually, let's -- MC |
4061 | /*LLVector3d pos = objectp->getPositionGlobal(); | ||
4044 | if( !gAgent.canAccessMaturityAtGlobal(pos) ) | 4062 | if( !gAgent.canAccessMaturityAtGlobal(pos) ) |
4045 | { | 4063 | { |
4046 | return; | 4064 | return; |
4047 | } | 4065 | }*/ |
4048 | 4066 | ||
4049 | objectp->setAttachedSound(sound_id, owner_id, gain, flags); | 4067 | objectp->setAttachedSound(sound_id, owner_id, gain, flags); |
4050 | } | 4068 | } |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 2732d48..f3eec54 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -3428,7 +3428,7 @@ void LLVOAvatar::resolveClient(LLColor4& avatar_name_color, std::string& client, | |||
3428 | } | 3428 | } |
3429 | if(avatar->getTE(5)->getID() != avatar->getTE(6)->getID() && !client.empty()) | 3429 | if(avatar->getTE(5)->getID() != avatar->getTE(6)->getID() && !client.empty()) |
3430 | { | 3430 | { |
3431 | client = "Failure"; | 3431 | client = "Unknown"; |
3432 | avatar_name_color = LLColor4::grey; | 3432 | avatar_name_color = LLColor4::grey; |
3433 | } | 3433 | } |
3434 | if(client.empty() && LLVOAvatar::sClientResolutionList.has("default")) | 3434 | if(client.empty() && LLVOAvatar::sClientResolutionList.has("default")) |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml b/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml index a9bd613..6d74882 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_busy.xml | |||
@@ -1,11 +1,14 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater name="busy" title="IM Response Options" | 2 | <floater name="busy" title="IM Response Options" |
3 | height="446" width="255" min_height="446" min_width="255" | 3 | height="476" width="265" min_height="476" min_width="265" |
4 | follows="top|right" can_close="true" can_drag_on_left="false" | 4 | follows="top|right" can_close="true" can_drag_on_left="false" |
5 | can_minimize="true" can_resize="false" can_tear_off="false"> | 5 | can_minimize="true" can_resize="false" can_tear_off="false"> |
6 | 6 | ||
7 | <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 7 | <check_box bottom="-40" enabled="true" follows="left|top" font="SansSerifSmall" height="16" |
8 | initial_value="false" label="Announce incoming instant messages" left="10" mouse_opaque="true" | 8 | initial_value="false" label="Auto-respond to incoming IMs" left="10" mouse_opaque="true" |
9 | name="InstantMessageResponseEnabled" radio_style="false" width="270"/> | ||
10 | <check_box bottom_delta="-30" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | ||
11 | initial_value="false" label="Announce incoming IMs" left="10" mouse_opaque="true" | ||
9 | name="InstantMessageAnnounceIncoming" radio_style="false" width="270"/> | 12 | name="InstantMessageAnnounceIncoming" radio_style="false" width="270"/> |
10 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 13 | <check_box bottom_delta="-20" enabled="true" follows="left|top" font="SansSerifSmall" height="16" |
11 | initial_value="false" label="Steal focus" left_delta="10" mouse_opaque="true" name="InstantMessageAnnounceStealFocus" | 14 | initial_value="false" label="Steal focus" left_delta="10" mouse_opaque="true" name="InstantMessageAnnounceStealFocus" |
@@ -58,7 +61,7 @@ | |||
58 | 61 | ||
59 | <text_editor type="string" length="1" bottom_delta="-85" embedded_items="false" enabled="true" | 62 | <text_editor type="string" length="1" bottom_delta="-85" embedded_items="false" enabled="true" |
60 | follows="left|top" font="SansSerifSmall" height="75" left_delta="-15" max_length="1100" | 63 | follows="left|top" font="SansSerifSmall" height="75" left_delta="-15" max_length="1100" |
61 | mouse_opaque="true" name="im_response" width="230" word_wrap="true"/> | 64 | mouse_opaque="true" name="im_response" width="245" word_wrap="true"/> |
62 | 65 | ||
63 | <check_box bottom_delta="-30" enabled="true" follows="left|top" font="SansSerifSmall" height="16" | 66 | <check_box bottom_delta="-30" enabled="true" follows="left|top" font="SansSerifSmall" height="16" |
64 | initial_value="false" label="Send an item along with the response" left_delta="0" | 67 | initial_value="false" label="Send an item along with the response" left_delta="0" |
@@ -66,28 +69,28 @@ | |||
66 | width="270"/> | 69 | width="270"/> |
67 | 70 | ||
68 | <view_border blevel_style="in" bottom_delta="-20" follows="left|top" height="16" left_delta="0" | 71 | <view_border blevel_style="in" bottom_delta="-20" follows="left|top" height="16" left_delta="0" |
69 | mouse_opaque="false" name="im_give_drop_target_rect" width="230"/> | 72 | mouse_opaque="false" name="im_give_drop_target_rect" width="245"/> |
70 | 73 | ||
71 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom_delta="0" | 74 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom_delta="0" |
72 | drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="center" | 75 | drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="center" |
73 | height="16" left_delta="0" mouse_opaque="true" name="Give inventory" tool_tip="Drop an inventory item here to have it given along with the auto-response." | 76 | height="16" left_delta="0" mouse_opaque="true" name="Give inventory" tool_tip="Drop an inventory item here to have it given along with the auto-response." |
74 | v_pad="2" width="230"> | 77 | v_pad="2" width="245"> |
75 | Drop an inventory item here | 78 | Drop an inventory item here |
76 | </text> | 79 | </text> |
77 | 80 | ||
78 | <view_border blevel_style="in" bottom_delta="-18" follows="left|top" height="16" left_delta="0" | 81 | <view_border blevel_style="in" bottom_delta="-18" follows="left|top" height="16" left_delta="0" |
79 | mouse_opaque="false" name="im_give_disp_rect" width="230"/> | 82 | mouse_opaque="false" name="im_give_disp_rect" width="245"/> |
80 | 83 | ||
81 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom_delta="0" | 84 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" bottom_delta="0" |
82 | drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="center" | 85 | drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="center" |
83 | height="16" left_delta="0" mouse_opaque="true" name="im_give_disp_rect_txt" tool_tip="" | 86 | height="16" left_delta="0" mouse_opaque="true" name="im_give_disp_rect_txt" tool_tip="" |
84 | v_pad="2" width="230"> | 87 | v_pad="2" width="245"> |
85 | Currently set to: ITEM | 88 | Currently set to: ITEM |
86 | </text> | 89 | </text> |
87 | 90 | ||
88 | <button bottom_delta="-26" follows="top|right" height="22" label="Cancel" | 91 | <button bottom_delta="-26" follows="top|right" height="22" label="Cancel" |
89 | right="-10" name="btn_cancel" tool_tip="" enagled="true" width="80" /> | 92 | right="-4" name="btn_cancel" tool_tip="" enagled="true" width="80" /> |
90 | <button bottom_delta="0" follows="top|right" height="22" label="OK" | 93 | <button bottom_delta="0" follows="top|right" height="22" label="OK" |
91 | right="-90" name="btn_ok" tool_tip="" enabled="true" width="80" /> | 94 | right="-85" name="btn_ok" tool_tip="" enabled="true" width="80" /> |
92 | 95 | ||
93 | </floater> \ No newline at end of file | 96 | </floater> \ No newline at end of file |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_preferences.xml b/linden/indra/newview/skins/default/xui/en-us/floater_preferences.xml index 81168be..214db25 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_preferences.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_preferences.xml | |||
@@ -15,12 +15,9 @@ | |||
15 | left_delta="93" mouse_opaque="true" name="Apply" scale_image="true" | 15 | left_delta="93" mouse_opaque="true" name="Apply" scale_image="true" |
16 | width="90" /> | 16 | width="90" /> |
17 | <button bottom="-455" enabled="true" follows="left|bottom" font="SansSerif" | 17 | <button bottom="-455" enabled="true" follows="left|bottom" font="SansSerif" |
18 | halign="center" height="20" label="About" label_selected="About" left="9" | ||
19 | mouse_opaque="true" name="About..." scale_image="true" width="90" /> | ||
20 | <button bottom="-455" enabled="true" follows="left|bottom" font="SansSerif" | ||
21 | halign="center" height="20" | 18 | halign="center" height="20" |
22 | help_url="http://secondlife.com/app/help/technical/preferences.php" | 19 | help_url="http://secondlife.com/app/help/technical/preferences.php" |
23 | label="Help" label_selected="Help" left_delta="93" mouse_opaque="true" | 20 | label="Help" label_selected="Help" left="9" mouse_opaque="true" |
24 | name="Help" scale_image="true" width="90" /> | 21 | name="Help" scale_image="true" width="90" /> |
25 | <tab_container bottom="-431" enabled="true" follows="left|top|right|bottom" height="410" | 22 | <tab_container bottom="-431" enabled="true" follows="left|top|right|bottom" height="410" |
26 | left="0" mouse_opaque="false" name="pref core" tab_group="1" | 23 | left="0" mouse_opaque="false" name="pref core" tab_group="1" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 8033ba7..836c4dd 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | |||
@@ -503,6 +503,11 @@ | |||
503 | <menu_item_call name="Set Busy" label="Set Busy"> | 503 | <menu_item_call name="Set Busy" label="Set Busy"> |
504 | <on_click function="World.SetBusy" userdata="" /> | 504 | <on_click function="World.SetBusy" userdata="" /> |
505 | </menu_item_call> | 505 | </menu_item_call> |
506 | <menu_item_check name="Auto-Respond to IMs" label="Auto-Respond to IMs"> | ||
507 | <on_click function="World.ToggleAutoResponse" userdata="" /> | ||
508 | <on_check function="World.CheckAutoResponse" userdata="" /> | ||
509 | </menu_item_check> | ||
510 | <menu_item_separator /> | ||
506 | <menu_item_call name="Stop Animating My Avatar" enabled="false" | 511 | <menu_item_call name="Stop Animating My Avatar" enabled="false" |
507 | label="Stop Animating My Avatar"> | 512 | label="Stop Animating My Avatar"> |
508 | <on_click function="Tools.StopAllAnimations" userdata="" /> | 513 | <on_click function="Tools.StopAllAnimations" userdata="" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_audio.xml b/linden/indra/newview/skins/default/xui/en-us/panel_audio.xml index ee9695e..c6e75fc 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_audio.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_audio.xml | |||
@@ -49,6 +49,14 @@ | |||
49 | image_selected="icn_speaker-muted_dark.tga" | 49 | image_selected="icn_speaker-muted_dark.tga" |
50 | image_unselected="icn_speaker_dark.tga" label="" label_width="55" | 50 | image_unselected="icn_speaker_dark.tga" label="" label_width="55" |
51 | left="150" name="mute_wind" tab_stop="false" toggle="true" width="25" /> | 51 | left="150" name="mute_wind" tab_stop="false" toggle="true" width="25" /> |
52 | <slider bottom_delta="-20" control_name="AudioLevelGestures" follows="left|top|right" | ||
53 | height="15" increment="0.05" initial_val="0.5" label="Gestures:" | ||
54 | label_width="55" left="10" max_val="1" min_val="0" name="Gestures" | ||
55 | show_text="false" volume="true" width="180" /> | ||
56 | <button bottom_delta="0" control_name="MuteGestures" follows="top|right" height="16" | ||
57 | image_selected="icn_speaker-muted_dark.tga" | ||
58 | image_unselected="icn_speaker_dark.tga" label="" label_width="55" | ||
59 | left="150" name="mute_gestures" tab_stop="false" toggle="true" width="25" /> | ||
52 | <slider bottom_delta="-20" control_name="AudioLevelUI" follows="left|top|right" | 60 | <slider bottom_delta="-20" control_name="AudioLevelUI" follows="left|top|right" |
53 | height="15" increment="0.05" initial_val="0.5" label="Interface:" label_width="55" | 61 | height="15" increment="0.05" initial_val="0.5" label="Interface:" label_width="55" |
54 | left="10" max_val="1" min_val="0" name="UI Volume" show_text="false" | 62 | left="10" max_val="1" min_val="0" name="UI Volume" show_text="false" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_media_remote_expanded.xml b/linden/indra/newview/skins/default/xui/en-us/panel_media_remote_expanded.xml index 7266536..3fdea5e 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_media_remote_expanded.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_media_remote_expanded.xml | |||
@@ -2,8 +2,8 @@ | |||
2 | <panel bg_visible="false" border="false" border_visible="false" bottom="1" | 2 | <panel bg_visible="false" border="false" border_visible="false" bottom="1" |
3 | follows="right|bottom" height="185" left="0" name="media_remote" | 3 | follows="right|bottom" height="185" left="0" name="media_remote" |
4 | use_bounding_rect="true" width="220"> | 4 | use_bounding_rect="true" width="220"> |
5 | <panel bottom="0" filename="panel_bg_tab.xml" height="187" left="0" width="220" /> | 5 | <panel bottom="0" filename="panel_bg_tab.xml" height="197" left="0" width="220" /> |
6 | <panel border="false" bottom="22" filename="panel_audio.xml" height="160" | 6 | <panel border="false" bottom="22" filename="panel_audio.xml" height="174" |
7 | label="Audio & Video" name="Volume Panel" width="220" /> | 7 | label="Audio & Video" name="Volume Panel" width="220" /> |
8 | <panel bottom_delta="-10" filename="panel_media_controls.xml" left="0" /> | 8 | <panel bottom_delta="-10" filename="panel_media_controls.xml" left="0" /> |
9 | <string name="play_label"> | 9 | <string name="play_label"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml index ce2bbc1..310e056 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml | |||
@@ -14,40 +14,33 @@ | |||
14 | font="SansSerifSmall" height="16" initial_value="false" | 14 | font="SansSerifSmall" height="16" initial_value="false" |
15 | label="Disable teleport screen" left="12" mouse_opaque="true" | 15 | label="Disable teleport screen" left="12" mouse_opaque="true" |
16 | name="disable_tp_screen_check" radio_style="false" width="217" /> | 16 | name="disable_tp_screen_check" radio_style="false" width="217" /> |
17 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 17 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
18 | bottom_delta="-25" drop_shadow_visible="true" follows="left|top" | ||
19 | font="SansSerifsmall" h_pad="0" halign="left" height="16" left="16" | ||
20 | mouse_opaque="true" name="online_no" v_pad="0" width="200"> | ||
21 | Show client names: | ||
22 | </text> | ||
23 | <check_box bottom_delta="0" enabled="true" follows="left|top" | ||
24 | font="SansSerifSmall" height="16" initial_value="false" | 18 | font="SansSerifSmall" height="16" initial_value="false" |
25 | label="in nametag" left_delta="100" mouse_opaque="true" | 19 | label="Show client names in nametags" left="12" mouse_opaque="true" |
26 | name="client_name_tag_check" radio_style="false" width="160" /> | 20 | name="client_name_tag_check" radio_style="false" width="160" /> |
27 | <check_box bottom_delta="0" enabled="true" follows="left|top" | 21 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
28 | font="SansSerifSmall" height="16" initial_value="false" | 22 | font="SansSerifSmall" height="16" initial_value="false" |
29 | label="changing nametag color" left_delta="80" mouse_opaque="true" | 23 | label="Show client names with color" left_delta="0" mouse_opaque="true" |
30 | name="client_name_color_check" radio_style="false" width="160" /> | 24 | name="client_name_color_check" radio_style="false" width="160" /> |
31 | <check_box bottom_delta="0" enabled="true" follows="left|top" | 25 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
32 | font="SansSerifSmall" height="16" initial_value="false" | 26 | font="SansSerifSmall" height="16" initial_value="false" |
33 | label="in tooltip" left_delta="140" mouse_opaque="true" | 27 | label="Show client names in hovertip" left_delta="0" mouse_opaque="true" |
34 | name="client_name_hover_check" radio_style="false" width="160" /> | 28 | name="client_name_hover_check" radio_style="false" width="160" /> |
35 | <check_box bottom_delta="-18" enabled="true" follows="left|top" | 29 | <check_box bottom_delta="-18" enabled="true" follows="left|top" |
36 | font="SansSerifSmall" height="16" initial_value="false" | 30 | font="SansSerifSmall" height="16" initial_value="false" |
37 | label="Broadcast your client name to others" left="12" mouse_opaque="true" | 31 | label="Show your client name to others" left_delta="0" mouse_opaque="true" |
38 | name="client_name_tag_broadcast_check" radio_style="false" width="217" /> | 32 | name="client_name_tag_broadcast_check" radio_style="false" width="217" /> |
39 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | 33 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
40 | font="SansSerifSmall" height="16" initial_value="false" | 34 | font="SansSerifSmall" height="16" initial_value="false" |
41 | label="Enable shadows (WARNING: unstable and requires Ultra graphics)" left="12" mouse_opaque="true" | 35 | label="Enable shadows (WARNING: unstable and requires Ultra graphics)" left="12" mouse_opaque="true" |
42 | name="shadows_check" radio_style="false" width="217" /> | 36 | name="shadows_check" radio_style="false" width="217" /> |
43 | 37 | ||
44 | 38 | <text bottom_delta="-25" left="16" height="15" width="300" | |
45 | <text bottom_delta="-25" left="16" height="15" width="220" | ||
46 | follows="top|left"> | 39 | follows="top|left"> |
47 | Allow region Windlight settings (LightShare): | 40 | Allow region WindLight settings (LightShare): |
48 | </text> | 41 | </text> |
49 | <combo_box name="lightshare_combo" | 42 | <combo_box name="lightshare_combo" |
50 | bottom_delta="-2" left="240" height="18" width="120" | 43 | bottom_delta="-2" left_delta="250" height="18" width="120" |
51 | allow_text_entry="false" follows="left|top"> | 44 | allow_text_entry="false" follows="left|top"> |
52 | <combo_item type="string" name="never" value="0"> | 45 | <combo_item type="string" name="never" value="0"> |
53 | Never | 46 | Never |
@@ -60,7 +53,6 @@ | |||
60 | </combo_item> | 53 | </combo_item> |
61 | </combo_box> | 54 | </combo_box> |
62 | 55 | ||
63 | |||
64 | <check_box bottom_delta="-25" enabled="true" follows="left|top" | 56 | <check_box bottom_delta="-25" enabled="true" follows="left|top" |
65 | font="SansSerifSmall" height="16" initial_value="false" | 57 | font="SansSerifSmall" height="16" initial_value="false" |
66 | label="Use HTTP texture fetching" left="12" mouse_opaque="true" | 58 | label="Use HTTP texture fetching" left="12" mouse_opaque="true" |
@@ -94,7 +86,6 @@ | |||
94 | mouse_opaque="true" name="language_is_public" | 86 | mouse_opaque="true" name="language_is_public" |
95 | radio_style="false" tool_tip="This lets in-world objects know your preferred language." | 87 | radio_style="false" tool_tip="This lets in-world objects know your preferred language." |
96 | width="256" /> | 88 | width="256" /> |
97 | |||
98 | <check_box bottom_delta="-25" enabled="true" | 89 | <check_box bottom_delta="-25" enabled="true" |
99 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | 90 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" |
100 | initial_value="false" label="Use MU* pose style chat and IM" left="12" | 91 | initial_value="false" label="Use MU* pose style chat and IM" left="12" |
@@ -103,7 +94,7 @@ | |||
103 | width="256" /> | 94 | width="256" /> |
104 | <check_box bottom_delta="0" enabled="true" | 95 | <check_box bottom_delta="0" enabled="true" |
105 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" | 96 | follows="left|top" font="SansSerifSmall" height="16" hidden="false" |
106 | initial_value="false" label="Auto-close OOC chat" left_delta="180" | 97 | initial_value="false" label="Auto-close OOC (( )) chat" left_delta="250" |
107 | mouse_opaque="true" name="auto_close_ooc" | 98 | mouse_opaque="true" name="auto_close_ooc" |
108 | radio_style="false" tool_tip="Auto-close OOC chat (i.e. add )) if not found and (( was used)." | 99 | radio_style="false" tool_tip="Auto-close OOC chat (i.e. add )) if not found and (( was used)." |
109 | width="256" /> | 100 | width="256" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml index 400da56..c6bb938 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml | |||
@@ -20,10 +20,10 @@ | |||
20 | mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> | 20 | mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> |
21 | Audio: | 21 | Audio: |
22 | </text> | 22 | </text> |
23 | <panel border="true" bottom="-195" enabled="true" filename="panel_audio.xml" | 23 | <panel border="true" bottom="-187" enabled="true" filename="panel_audio.xml" |
24 | follows="left|top|right|bottom" height="180" label="Volume" left="148" | 24 | follows="left|top|right|bottom" height="180" label="Volume" left="148" |
25 | mouse_opaque="true" name="Volume Panel" width="260" /> | 25 | mouse_opaque="true" name="Volume Panel" width="260" /> |
26 | <check_box bottom="-195" control_name="AudioStreamingMusic" enabled="true" | 26 | <check_box bottom="-205" control_name="AudioStreamingMusic" enabled="true" |
27 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 27 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
28 | label="Play streaming music when available (uses more bandwidth)" | 28 | label="Play streaming music when available (uses more bandwidth)" |
29 | left="142" mouse_opaque="true" name="streaming_music" radio_style="false" | 29 | left="142" mouse_opaque="true" name="streaming_music" radio_style="false" |
@@ -42,7 +42,7 @@ | |||
42 | initial_value="true" label="Automatically play media" left="162" | 42 | initial_value="true" label="Automatically play media" left="162" |
43 | mouse_opaque="true" name="auto_streaming_video" radio_style="false" | 43 | mouse_opaque="true" name="auto_streaming_video" radio_style="false" |
44 | width="338" /> | 44 | width="338" /> |
45 | <check_box bottom_delta="-34" control_name="MuteWhenMinimized" enabled="true" | 45 | <check_box bottom_delta="-27" control_name="MuteWhenMinimized" enabled="true" |
46 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 46 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
47 | label="Mute audio when window minimized" left="142" mouse_opaque="true" | 47 | label="Mute audio when window minimized" left="142" mouse_opaque="true" |
48 | name="mute_when_minimized" radio_style="false" width="215" /> | 48 | name="mute_when_minimized" radio_style="false" width="215" /> |
@@ -57,7 +57,7 @@ | |||
57 | label_width="158" left="148" max_val="10000" min_val="0" | 57 | label_width="158" left="148" max_val="10000" min_val="0" |
58 | mouse_opaque="true" name="Health change threshold" width="212" /> | 58 | mouse_opaque="true" name="Health change threshold" width="212" /> |
59 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 59 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
60 | bottom_delta="-30" drop_shadow_visible="true" enabled="true" follows="left|top" | 60 | bottom_delta="-27" drop_shadow_visible="true" enabled="true" follows="left|top" |
61 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 61 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" |
62 | mouse_opaque="true" name="ambient_prefs_text" v_pad="0" width="128"> | 62 | mouse_opaque="true" name="ambient_prefs_text" v_pad="0" width="128"> |
63 | Ambient: | 63 | Ambient: |
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 199f2a8..1357eb5 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 | |||
@@ -183,14 +183,14 @@ | |||
183 | <combo_box allow_text_entry="false" bottom="-352" enabled="true" follows="left|top" | 183 | <combo_box allow_text_entry="false" bottom="-352" enabled="true" follows="left|top" |
184 | height="18" left="153" max_chars="20" mouse_opaque="true" | 184 | height="18" left="153" max_chars="20" mouse_opaque="true" |
185 | name="time_combobox" width="146"> | 185 | name="time_combobox" width="146"> |
186 | <combo_item type="string" length="1" enabled="true" name="12HourTime" value="Use 12 Hour Sim Time"> | 186 | <combo_item type="string" name="12HourTime" value="PST 12"> |
187 | Use 12 Hour Sim Time | 187 | 12-hour PST/PDT |
188 | </combo_item> | 188 | </combo_item> |
189 | <combo_item type="string" length="1" enabled="true" name="24HourTime" value="Use 24 Hour Sim Time"> | 189 | <combo_item type="string" name="24HourTime" value="PST 24"> |
190 | Use 24 Hour Sim Time | 190 | 24-hour PST/PDT |
191 | </combo_item> | 191 | </combo_item> |
192 | <combo_item type="string" length="1" enabled="true" name="UTCTime" value="Use UTC Time"> | 192 | <combo_item type="string" name="UTCTime" value="UTC"> |
193 | Use UTC Time | 193 | UTC |
194 | </combo_item> | 194 | </combo_item> |
195 | </combo_box> | 195 | </combo_box> |
196 | <combo_box allow_text_entry="true" bottom="-382" enabled="true" | 196 | <combo_box allow_text_entry="true" bottom="-382" enabled="true" |
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 58845ad..0904815 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 | |||
@@ -63,7 +63,7 @@ | |||
63 | font="SansSerifSmall" height="70" left="148" max_length="255" | 63 | font="SansSerifSmall" height="70" left="148" max_length="255" |
64 | mouse_opaque="true" name="busy_response" width="330" word_wrap="true" /> | 64 | mouse_opaque="true" name="busy_response" width="330" word_wrap="true" /> |
65 | <button bottom_delta="-25" follows="top|right" height="22" label="IM Response Options" | 65 | <button bottom_delta="-25" follows="top|right" height="22" label="IM Response Options" |
66 | left="164" name="busy_adv_btn" tool_tip="Auto response options" | 66 | left="164" name="busy_adv_btn" tool_tip="Instant message Auto-Response options" |
67 | width="180" /> | 67 | width="180" /> |
68 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 68 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
69 | bottom_delta="-23" drop_shadow_visible="true" enabled="true" follows="left|top" | 69 | bottom_delta="-23" drop_shadow_visible="true" enabled="true" follows="left|top" |