aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid Seikel2011-04-19 12:53:32 +1000
committerDavid Seikel2011-04-19 12:53:32 +1000
commitff2e6b18e238ca58ff21e9c36c339a7794708ec3 (patch)
tree321528e7b608b7939cd8f2dc0ab045cec36cd618
parentApparently there is a wrong client tag for Firestorm out in the wild. (diff)
downloadmeta-impy-ff2e6b18e238ca58ff21e9c36c339a7794708ec3.zip
meta-impy-ff2e6b18e238ca58ff21e9c36c339a7794708ec3.tar.gz
meta-impy-ff2e6b18e238ca58ff21e9c36c339a7794708ec3.tar.bz2
meta-impy-ff2e6b18e238ca58ff21e9c36c339a7794708ec3.tar.xz
Move tho OTR preferences to their own floater, with a button in the IM tab.
This brings that part in line with the general impy look and feel.
-rw-r--r--linden/indra/newview/CMakeLists.txt2
-rw-r--r--linden/indra/newview/floaterotr.cpp102
-rw-r--r--linden/indra/newview/floaterotr.h57
-rw-r--r--linden/indra/newview/llfloaterpreference.cpp17
-rw-r--r--linden/indra/newview/llprefsadvanced.cpp18
-rw-r--r--linden/indra/newview/llprefsadvanced.h4
-rw-r--r--linden/indra/newview/llprefsim.cpp10
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/floater_otr_options.xml44
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml42
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/panel_preferences_im.xml3
10 files changed, 218 insertions, 81 deletions
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index 299164d..a68b745 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -104,6 +104,7 @@ set(viewer_SOURCE_FILES
104 floatergriddefault.cpp 104 floatergriddefault.cpp
105 floatergridmanager.cpp 105 floatergridmanager.cpp
106 floaterlocalassetbrowse.cpp 106 floaterlocalassetbrowse.cpp
107 floaterotr.cpp
107 floatervoicelicense.cpp 108 floatervoicelicense.cpp
108 hbfloatergrouptitles.cpp 109 hbfloatergrouptitles.cpp
109 hippogridmanager.cpp 110 hippogridmanager.cpp
@@ -566,6 +567,7 @@ set(viewer_HEADER_FILES
566 floatergriddefault.h 567 floatergriddefault.h
567 floatergridmanager.h 568 floatergridmanager.h
568 floaterlocalassetbrowse.h 569 floaterlocalassetbrowse.h
570 floaterotr.h
569 floatervoicelicense.h 571 floatervoicelicense.h
570 hbfloatergrouptitles.h 572 hbfloatergrouptitles.h
571 hippogridmanager.h 573 hippogridmanager.h
diff --git a/linden/indra/newview/floaterotr.cpp b/linden/indra/newview/floaterotr.cpp
new file mode 100644
index 0000000..a655fd7
--- /dev/null
+++ b/linden/indra/newview/floaterotr.cpp
@@ -0,0 +1,102 @@
1/**
2* @file floaterotr.cpp
3* @brief Custom OTR settings for meta-impy
4*
5* $LicenseInfo:firstyear=2009&license=viewergpl$
6*
7* Copyright (c) 2011, David Seikel
8*
9* meta-impy Viewer Source Code
10* The source code in this file ("Source Code") is provided to you
11* under the terms of the GNU General Public License, version 2.0
12* ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in
13* this distribution, or online at
14* http://secondlifegrid.net/programs/open_source/licensing/gplv2
15*
16* There are special exceptions to the terms and conditions of the GPL as
17* it is applied to this Source Code. View the full text of the exception
18* in the file doc/FLOSS-exception.txt in this software distribution, or
19* online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
20*
21* By copying, modifying or distributing this software, you acknowledge
22* that you have read and understood your obligations described above,
23* and agree to abide by those obligations.
24*
25* ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO
26* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
27* COMPLETENESS OR PERFORMANCE.
28* $/LicenseInfo$
29*
30* Copied from floaterbusy.cpp, originally by McCabe Maxsted from Imprudence.
31*/
32
33#include "llviewerprecompiledheaders.h"
34
35#include "floaterotr.h"
36
37#include "llinventorymodel.h"
38#include "llstartup.h"
39#include "lltexteditor.h"
40#include "lluictrlfactory.h"
41#include "llviewercontrol.h"
42#include "llviewerinventory.h"
43#include "llweb.h"
44#include "otr_wrapper.h"
45
46FloaterOTR::FloaterOTR(const LLSD& seed) : LLFloater("floater_busy")
47{
48 LLUICtrlFactory::getInstance()->buildFloater(this, "floater_otr_options.xml");
49}
50
51BOOL FloaterOTR::postBuild()
52{
53 childSetAction("btn_ok", onClickOK, this);
54 childSetAction("btn_cancel", onClickCancel, this);
55
56 childSetValue("EmeraldUseOTR", LLSD((S32)gSavedSettings.getU32("EmeraldUseOTR")));
57 childSetValue("EmeraldUseOTRInTypingStop", gSavedSettings.getBOOL("EmeraldUseOTRInTypingStop"));
58 getChild<LLButton>("otr_help_btn")->setClickedCallback(onClickOtrHelp, this);
59
60 return TRUE;
61}
62
63FloaterOTR::~FloaterOTR()
64{
65}
66
67// static
68void FloaterOTR::onClickOK(void* userdata)
69{
70 FloaterOTR* self = (FloaterOTR*)userdata;
71 self->apply();
72 self->close();
73}
74
75// static
76void FloaterOTR::onClickCancel(void* userdata)
77{
78 FloaterOTR* self = (FloaterOTR*)userdata;
79 self->cancel();
80}
81
82void FloaterOTR::cancel()
83{
84 close();
85}
86
87void FloaterOTR::apply()
88{
89 U32 otrpref = childGetValue("EmeraldUseOTR").asReal();
90
91 gSavedSettings.setU32("EmeraldUseOTR", otrpref);
92 gSavedSettings.setBOOL("EmeraldUseOTRInTypingStop", childGetValue("EmeraldUseOTRInTypingStop").asBoolean());
93 // otrpref: 0 == Require OTR, 1 == Request OTR, 2 == Accept OTR, 3 == Decline OTR
94 if (3 == otrpref)
95 OTR_Wrapper::stopAll();
96}
97
98void FloaterOTR::onClickOtrHelp(void* userdata)
99{
100 LLWeb::loadURL("http://www.cypherpunks.ca/otr/");
101}
102
diff --git a/linden/indra/newview/floaterotr.h b/linden/indra/newview/floaterotr.h
new file mode 100644
index 0000000..a42700f
--- /dev/null
+++ b/linden/indra/newview/floaterotr.h
@@ -0,0 +1,57 @@
1/**
2* @file floaterotr.h
3* @brief Custom OTR settings for meta-impy
4*
5* $LicenseInfo:firstyear=2009&license=viewergpl$
6*
7* Copyright (c) 2011, David Seikel
8*
9* meta-impy Viewer Source Code
10* The source code in this file ("Source Code") is provided to you
11* under the terms of the GNU General Public License, version 2.0
12* ("GPL"). Terms of the GPL can be found in doc/GPL-license.txt in
13* this distribution, or online at
14* http://secondlifegrid.net/programs/open_source/licensing/gplv2
15*
16* There are special exceptions to the terms and conditions of the GPL as
17* it is applied to this Source Code. View the full text of the exception
18* in the file doc/FLOSS-exception.txt in this software distribution, or
19* online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
20*
21* By copying, modifying or distributing this software, you acknowledge
22* that you have read and understood your obligations described above,
23* and agree to abide by those obligations.
24*
25* ALL SOURCE CODE IS PROVIDED "AS IS." THE AUTHOR MAKES NO
26* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
27* COMPLETENESS OR PERFORMANCE.
28* $/LicenseInfo$
29*
30* Copied from floaterbusy.h, originally by McCabe Maxsted from Imprudence.
31*/
32
33#ifndef FLOATEROTR_H
34#define FLOATEROTR_H
35
36#include "llfloater.h"
37
38class LLViewerInventoryItem;
39
40class FloaterOTR : public LLFloater, public LLFloaterSingleton<FloaterOTR>
41{
42public:
43 FloaterOTR(const LLSD& seed);
44 virtual ~FloaterOTR();
45
46 BOOL postBuild();
47
48 void apply();
49 void cancel();
50
51private:
52 static void onClickOK(void* userdata);
53 static void onClickCancel(void* userdata);
54 static void onClickOtrHelp(void* userdata);
55};
56
57#endif // FLOATEROTR_H
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp
index 40f18e8..6a97c38 100644
--- a/linden/indra/newview/llfloaterpreference.cpp
+++ b/linden/indra/newview/llfloaterpreference.cpp
@@ -427,11 +427,6 @@ LLFloaterPreference::~LLFloaterPreference()
427void LLFloaterPreference::apply() 427void LLFloaterPreference::apply()
428{ 428{
429 this->mPreferenceCore->apply(); 429 this->mPreferenceCore->apply();
430#if USE_OTR // [$PLOTR$]
431 U32 otrpref = gSavedSettings.getU32("EmeraldUseOTR");
432 // otrpref: 0 == Require OTR, 1 == Request OTR, 2 == Accept OTR, 3 == Decline OTR
433 if (3 == otrpref) OTR_Wrapper::stopAll();
434#endif // USE_OTR // [/$PLOTR$]
435} 430}
436 431
437 432
@@ -502,13 +497,6 @@ void LLFloaterPreference::onBtnOK( void* userdata )
502 if (fp->canClose()) 497 if (fp->canClose())
503 { 498 {
504 fp->apply(); 499 fp->apply();
505
506#if USE_OTR // [$PLOTR$]
507 U32 otrpref = gSavedSettings.getU32("EmeraldUseOTR");
508 // otrpref: 0 == Require OTR, 1 == Request OTR, 2 == Accept OTR, 3 == Decline OTR
509 if (3 == otrpref) OTR_Wrapper::stopAll();
510#endif // USE_OTR // [/$PLOTR$]
511
512 fp->close(false); 500 fp->close(false);
513 501
514 gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile"), TRUE ); 502 gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile"), TRUE );
@@ -540,11 +528,6 @@ void LLFloaterPreference::onBtnApply( void* userdata )
540 } 528 }
541 } 529 }
542 fp->apply(); 530 fp->apply();
543#if USE_OTR // [$PLOTR$]
544 U32 otrpref = gSavedSettings.getU32("EmeraldUseOTR");
545 // otrpref: 0 == Require OTR, 1 == Request OTR, 2 == Accept OTR, 3 == Decline OTR
546 if (3 == otrpref) OTR_Wrapper::stopAll();
547#endif // USE_OTR // [/$PLOTR$]
548 531
549 LLPanelLogin::refreshLocation( false ); 532 LLPanelLogin::refreshLocation( false );
550} 533}
diff --git a/linden/indra/newview/llprefsadvanced.cpp b/linden/indra/newview/llprefsadvanced.cpp
index 38e6745..49dd058 100644
--- a/linden/indra/newview/llprefsadvanced.cpp
+++ b/linden/indra/newview/llprefsadvanced.cpp
@@ -47,10 +47,6 @@
47 47
48#include "boost/algorithm/string.hpp" 48#include "boost/algorithm/string.hpp"
49 49
50#if USE_OTR // [$PLOTR$]
51#include "llweb.h"
52#endif // USE_OTR // [/$PLOTR$]
53
54LLPrefsAdvanced* LLPrefsAdvanced::sInstance; 50LLPrefsAdvanced* LLPrefsAdvanced::sInstance;
55 51
56LLPrefsAdvanced::LLPrefsAdvanced() 52LLPrefsAdvanced::LLPrefsAdvanced()
@@ -119,10 +115,6 @@ BOOL LLPrefsAdvanced::postBuild()
119 115
120 initHelpBtn("EmeraldHelp_SpellCheck", "EmeraldHelp_SpellCheck"); 116 initHelpBtn("EmeraldHelp_SpellCheck", "EmeraldHelp_SpellCheck");
121 117
122#if USE_OTR // [$PLOTR$]
123 childSetValue("EmeraldUseOTR", LLSD((S32)gSavedSettings.getU32("EmeraldUseOTR")));
124 getChild<LLButton>("otr_help_btn")->setClickedCallback(onClickOtrHelp, this);
125#endif // USE_OTR // [/$PLOTR$]
126 118
127 refresh(); 119 refresh();
128 120
@@ -210,9 +202,6 @@ void LLPrefsAdvanced::apply()
210 202
211 LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox"); 203 LLComboBox* crash_behavior_combobox = getChild<LLComboBox>("crash_behavior_combobox");
212 gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, crash_behavior_combobox->getCurrentIndex()); 204 gCrashSettings.setS32(CRASH_BEHAVIOR_SETTING, crash_behavior_combobox->getCurrentIndex());
213#if USE_OTR // [$PLOTR$]
214 gSavedSettings.setU32("EmeraldUseOTR", (U32)childGetValue("EmeraldUseOTR").asReal());
215#endif // USE_OTR // [/$PLOTR$]
216} 205}
217 206
218void LLPrefsAdvanced::cancel() 207void LLPrefsAdvanced::cancel()
@@ -342,10 +331,3 @@ void LLPrefsAdvanced::onClickCommandLine(void* data)
342 FloaterCommandLine::getInstance()->open(); 331 FloaterCommandLine::getInstance()->open();
343 FloaterCommandLine::getInstance()->center(); 332 FloaterCommandLine::getInstance()->center();
344} 333}
345
346#if USE_OTR // [$PLOTR$]
347void LLPrefsAdvanced::onClickOtrHelp(void* data)
348{
349 LLWeb::loadURL("http://www.cypherpunks.ca/otr/");
350}
351#endif // USE_OTR // [/$PLOTR$]
diff --git a/linden/indra/newview/llprefsadvanced.h b/linden/indra/newview/llprefsadvanced.h
index d75dcd3..d76e602 100644
--- a/linden/indra/newview/llprefsadvanced.h
+++ b/linden/indra/newview/llprefsadvanced.h
@@ -59,10 +59,6 @@ private:
59 static void onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata); 59 static void onSpellBaseComboBoxCommit(LLUICtrl* ctrl, void* userdata);
60 static void onAutoCorrectButton(void * data); 60 static void onAutoCorrectButton(void * data);
61 61
62#if USE_OTR // [$PLOTR$]
63 static void onClickOtrHelp(void* data);
64#endif // USE_OTR // [/$PLOTR$]
65
66protected: 62protected:
67 void initHelpBtn(const std::string& name, const std::string& xml_alert); 63 void initHelpBtn(const std::string& name, const std::string& xml_alert);
68 static void onClickHelp(void* data); 64 static void onClickHelp(void* data);
diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp
index 5ac2bb2..c2659b8 100644
--- a/linden/indra/newview/llprefsim.cpp
+++ b/linden/indra/newview/llprefsim.cpp
@@ -36,6 +36,7 @@
36#include "llprefsim.h" 36#include "llprefsim.h"
37 37
38#include "floaterbusy.h" 38#include "floaterbusy.h"
39#include "floaterotr.h"
39#include "llpanel.h" 40#include "llpanel.h"
40#include "llcheckboxctrl.h" 41#include "llcheckboxctrl.h"
41#include "llstring.h" 42#include "llstring.h"
@@ -73,6 +74,7 @@ public:
73 static void onCommitLogging(LLUICtrl* ctrl, void* user_data); 74 static void onCommitLogging(LLUICtrl* ctrl, void* user_data);
74 75
75 static void onClickBusyAdvanced(void* user_data); 76 static void onClickBusyAdvanced(void* user_data);
77 static void onClickOTRAdvanced(void* user_data);
76 78
77protected: 79protected:
78 80
@@ -131,6 +133,7 @@ BOOL LLPrefsIMImpl::postBuild()
131 childSetCommitCallback("log_instant_messages",onCommitLogging,this); 133 childSetCommitCallback("log_instant_messages",onCommitLogging,this);
132 134
133 childSetAction("busy_adv_btn", onClickBusyAdvanced, this); 135 childSetAction("busy_adv_btn", onClickBusyAdvanced, this);
136 childSetAction("otr_adv_btn", onClickOTRAdvanced, this);
134 137
135 preparePerAccountPrefs(LLStartUp::isLoggedIn()); 138 preparePerAccountPrefs(LLStartUp::isLoggedIn());
136 139
@@ -328,6 +331,13 @@ void LLPrefsIMImpl::onClickBusyAdvanced(void* user_data)
328} 331}
329 332
330// static 333// static
334void LLPrefsIMImpl::onClickOTRAdvanced(void* user_data)
335{
336 FloaterOTR::getInstance()->open();
337 FloaterOTR::getInstance()->center();
338}
339
340// static
331void LLPrefsIMImpl::onClickLogPath(void* user_data) 341void LLPrefsIMImpl::onClickLogPath(void* user_data)
332{ 342{
333 LLPrefsIMImpl* self=(LLPrefsIMImpl*)user_data; 343 LLPrefsIMImpl* self=(LLPrefsIMImpl*)user_data;
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_otr_options.xml b/linden/indra/newview/skins/default/xui/en-us/floater_otr_options.xml
new file mode 100644
index 0000000..9f0d798
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_otr_options.xml
@@ -0,0 +1,44 @@
1<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2<floater name="busy" title="OTR Options"
3 height="175" width="180" min_height="175" min_width="180"
4 follows="top|right" can_close="true" can_drag_on_left="false"
5 can_minimize="true" can_resize="false" can_tear_off="false">
6
7 <button bottom="-40" follows="left|top" font="SansSerifSmall"
8 height="18" right="-10"
9 name="otr_help_btn" width="98" label="What is OTR?"/>
10 <radio_group bottom="-120" draw_border="false" enabled="true" follows="left|top"
11 height="80"
12 left="10" mouse_opaque="true" name="EmeraldUseOTR" width="160">
13 <radio_item type="string" length="1" bottom_delta="-10" enabled="true" height="16"
14 left_delta="0" mouse_opaque="true" name="0" width="98"
15 tool_tip="Require use of OTR in IMs"
16 >Require use of OTR in IMs</radio_item>
17 <radio_item type="string" length="1" bottom_delta="-10" enabled="true" height="16"
18 left_delta="0" mouse_opaque="true" name="1" width="98"
19 tool_tip="Request OTR if available."
20 >Request OTR if available</radio_item>
21 <radio_item type="string" length="1" bottom_delta="-10" enabled="true" height="16"
22 left_delta="0" mouse_opaque="true" name="2" width="98"
23 tool_tip="Accept OTR requests."
24 >Accept OTR requests</radio_item>
25 <radio_item type="string" length="1" bottom_delta="-10" enabled="true" height="16"
26 left_delta="0" mouse_opaque="true" name="3" width="98"
27 tool_tip="Decline use of OTR."
28 >Decline use of OTR</radio_item>
29 </radio_group>
30 <check_box follows="left|top" left="10" bottom_delta="-20" enabled="true"
31 font="SansSerifSmall"
32 height="16" initial_value="false" mouse_opaque="true"
33 name="EmeraldOTRInTypingStop-toggle"
34 radio_style="false" width="98"
35 control_name="EmeraldOTRInTypingStop"
36 tool_tip="Put all OTR encrypted messages into IM_TYPING_STOP packets to prevent encrypted IM's from going to email."
37 label="Use typing_stop for OTR"/>
38
39 <button bottom_delta="-26" follows="top|right" height="22" label="Cancel"
40 right="-10" name="btn_cancel" tool_tip="" enagled="true" width="80" />
41 <button bottom_delta="0" follows="top|right" height="22" label="OK"
42 right="-95" name="btn_ok" tool_tip="" enabled="true" width="80" />
43
44</floater> \ No newline at end of file
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 a3961bb..a8ecedc 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
@@ -178,47 +178,5 @@ To use spellcheck, right-click a misspelled word
178 bottom_delta="-50" width="180" height="20" font="SansSerifSmall" follows="left|top"/> 178 bottom_delta="-50" width="180" height="20" font="SansSerifSmall" follows="left|top"/>
179 </panel> 179 </panel>
180 180
181 <!--[$PLOTR$]-->
182 <panel border="true" bottom="-580" follows="left|top|right|bottom"
183 height="525" label="OTR"
184 left="1" mouse_opaque="true" name="OTR" width="418">
185 <button bottom="-25" follows="left|top" font="SansSerifSmall"
186 height="18" right="490"
187 name="otr_help_btn" width="98" label="What is OTR?"/>
188 <radio_group bottom="-120" draw_border="false" enabled="true" follows="left|top"
189 height="80"
190 left="270" mouse_opaque="true" name="EmeraldUseOTR" width="160">
191 <radio_item type="string" length="1" bottom_delta="-10" enabled="true" height="16"
192 left_delta="0" mouse_opaque="true" name="0" width="98"
193 tool_tip="Require use of OTR in IMs"
194 >Require use of OTR in IMs</radio_item>
195 <radio_item type="string" length="1" bottom_delta="-10" enabled="true" height="16"
196 left_delta="0" mouse_opaque="true" name="1" width="98"
197 tool_tip="Request OTR if available."
198 >Request OTR if available</radio_item>
199 <radio_item type="string" length="1" bottom_delta="-10" enabled="true" height="16"
200 left_delta="0" mouse_opaque="true" name="2" width="98"
201 tool_tip="Accept OTR requests."
202 >Accept OTR requests</radio_item>
203 <radio_item type="string" length="1" bottom_delta="-10" enabled="true" height="16"
204 left_delta="0" mouse_opaque="true" name="3" width="98"
205 tool_tip="Decline use of OTR."
206 >Decline use of OTR</radio_item>
207 </radio_group>
208 <check_box follows="left|top" left="270" bottom_delta="-20" enabled="true"
209 font="SansSerifSmall"
210 height="16" initial_value="false" mouse_opaque="true"
211 name="EmeraldOTRInTypingStop-toggle"
212 radio_style="false" width="98"
213 control_name="EmeraldOTRInTypingStop"
214 tool_tip="Put all OTR encrypted messages into IM_TYPING_STOP packets to prevent encrypted IM's from going to email."
215 label="Use typing_stop for OTR"/>
216 <!--<view_border bevel_style="none" border_thickness="1" bottom_delta="40"
217 follows="top|left" height="100"
218 left="260" name="OTRBorder" width="0"/>-->
219
220 </panel>
221 <!--[/$PLOTR$]-->
222
223 </tab_container> 181 </tab_container>
224</panel> 182</panel>
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 fe17e7a..2c71998 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
@@ -68,6 +68,9 @@
68 <button bottom_delta="-25" follows="top|right" height="22" label="IM Response Options" 68 <button bottom_delta="-25" follows="top|right" height="22" label="IM Response Options"
69 left="164" name="busy_adv_btn" tool_tip="Instant message Auto-Response options" 69 left="164" name="busy_adv_btn" tool_tip="Instant message Auto-Response options"
70 width="180" /> 70 width="180" />
71 <button bottom_delta="0" follows="left|top" height="22" label="OTR Options"
72 left="330" name="otr_adv_btn" tool_tip="Off The Record options"
73 width="120" />
71 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" 74 <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
72 bottom_delta="-23" drop_shadow_visible="true" enabled="true" follows="left|top" 75 bottom_delta="-23" drop_shadow_visible="true" enabled="true" follows="left|top"
73 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12" 76 font="SansSerifSmall" h_pad="0" halign="left" height="10" left="12"