aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden
diff options
context:
space:
mode:
Diffstat (limited to 'linden')
-rw-r--r--linden/indra/newview/Info-Imprudence.plist78
-rw-r--r--linden/indra/newview/llagent.cpp41
-rw-r--r--linden/indra/newview/llagent.h12
-rw-r--r--linden/indra/newview/llfloaterworldmap.cpp3
-rw-r--r--linden/indra/newview/llinventorybridge.cpp21
-rw-r--r--linden/indra/newview/llinventorybridge.h4
-rw-r--r--linden/indra/newview/llmutelist.cpp38
-rw-r--r--linden/indra/newview/llmutelist.h5
-rw-r--r--linden/indra/newview/llpanelavatar.cpp4
-rw-r--r--linden/indra/newview/llpanellogin.cpp2
-rw-r--r--linden/indra/newview/llviewermenu.cpp18
-rw-r--r--linden/indra/newview/llviewerwindow.cpp21
-rw-r--r--linden/indra/newview/llviewerwindow.h2
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/alerts.xml100
-rw-r--r--linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml10
15 files changed, 301 insertions, 58 deletions
diff --git a/linden/indra/newview/Info-Imprudence.plist b/linden/indra/newview/Info-Imprudence.plist
index 357d171..49aa2a7 100644
--- a/linden/indra/newview/Info-Imprudence.plist
+++ b/linden/indra/newview/Info-Imprudence.plist
@@ -1,39 +1,39 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 2<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3<plist version="1.0"> 3<plist version="1.0">
4<dict> 4<dict>
5 <key>CFBundleDevelopmentRegion</key> 5 <key>CFBundleDevelopmentRegion</key>
6 <string>English</string> 6 <string>English</string>
7 <key>CFBundleExecutable</key> 7 <key>CFBundleExecutable</key>
8 <string>Imprudence</string> 8 <string>Imprudence</string>
9 <key>CFBundleIconFile</key> 9 <key>CFBundleIconFile</key>
10 <string>viewer.icns</string> 10 <string>viewer.icns</string>
11 <key>CFBundleIdentifier</key> 11 <key>CFBundleIdentifier</key>
12 <string>com.secondlife.indra.viewer</string> 12 <string>com.secondlife.indra.viewer</string>
13 <key>CFBundleInfoDictionaryVersion</key> 13 <key>CFBundleInfoDictionaryVersion</key>
14 <string>6.0</string> 14 <string>6.0</string>
15 <key>CFBundleName</key> 15 <key>CFBundleName</key>
16 <string>Imprudence</string> 16 <string>Imprudence</string>
17 <key>CFBundlePackageType</key> 17 <key>CFBundlePackageType</key>
18 <string>APPL</string> 18 <string>APPL</string>
19 <key>CFBundleSignature</key> 19 <key>CFBundleSignature</key>
20 <string>????</string> 20 <string>????</string>
21 <key>CFBundleURLTypes</key> 21 <key>CFBundleURLTypes</key>
22 <array> 22 <array>
23 <dict> 23 <dict>
24 <key>CFBundleURLName</key> 24 <key>CFBundleURLName</key>
25 <string>Second Life URL</string> 25 <string>Second Life URL</string>
26 <key>CFBundleURLSchemes</key> 26 <key>CFBundleURLSchemes</key>
27 <array> 27 <array>
28 <string>secondlife</string> 28 <string>secondlife</string>
29 </array> 29 </array>
30 <key>LSIsAppleDefaultForScheme</key> 30 <key>LSIsAppleDefaultForScheme</key>
31 <true/> 31 <true/>
32 </dict> 32 </dict>
33 </array> 33 </array>
34 <key>CFBundleVersion</key> 34 <key>CFBundleVersion</key>
35 <string>1.0.0</string> 35 <string>1.0.0</string>
36 <key>CSResourcesFileMapped</key> 36 <key>CSResourcesFileMapped</key>
37 <true/> 37 <true/>
38</dict> 38</dict>
39</plist> 39</plist>
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp
index d268397..8c4e8b3 100644
--- a/linden/indra/newview/llagent.cpp
+++ b/linden/indra/newview/llagent.cpp
@@ -5926,6 +5926,28 @@ void LLAgent::teleportViaLocation(const LLVector3d& pos_global)
5926 } 5926 }
5927} 5927}
5928 5928
5929
5930void LLAgent::teleportHome()
5931{
5932 teleportViaLandmark(LLUUID::null);
5933}
5934
5935void LLAgent::teleportHomeConfirm()
5936{
5937 gViewerWindow->alertXml("ConfirmTeleportHome", LLAgent::teleportHomeCallback, (void *)this);
5938}
5939
5940// static
5941void LLAgent::teleportHomeCallback(S32 option, void *userdata)
5942{
5943 if( option == 0 )
5944 {
5945 // They confirmed it. Here we go!
5946 ((LLAgent *) userdata)->teleportHome();
5947 }
5948}
5949
5950
5929void LLAgent::setTeleportState(ETeleportState state) 5951void LLAgent::setTeleportState(ETeleportState state)
5930{ 5952{
5931 mTeleportState = state; 5953 mTeleportState = state;
@@ -7410,6 +7432,25 @@ void LLAgent::userRemoveWearable( void* userdata )
7410 } 7432 }
7411} 7433}
7412 7434
7435
7436// static
7437void LLAgent::userRemoveAllClothesConfirm()
7438{
7439 gViewerWindow->alertXml("ConfirmRemoveAllClothes",
7440 LLAgent::userRemoveAllClothesCallback, NULL);
7441}
7442
7443// static
7444void LLAgent::userRemoveAllClothesCallback(S32 option, void *userdata)
7445{
7446 if( option == 0 )
7447 {
7448 // They confirmed it. Here we go!
7449 LLAgent::userRemoveAllClothes(NULL);
7450 }
7451}
7452
7453
7413void LLAgent::userRemoveAllClothes( void* userdata ) 7454void LLAgent::userRemoveAllClothes( void* userdata )
7414{ 7455{
7415 // We have to do this up front to avoid having to deal with the case of multiple wearables being dirty. 7456 // We have to do this up front to avoid having to deal with the case of multiple wearables being dirty.
diff --git a/linden/indra/newview/llagent.h b/linden/indra/newview/llagent.h
index 97f9aed..4d24aee 100644
--- a/linden/indra/newview/llagent.h
+++ b/linden/indra/newview/llagent.h
@@ -462,7 +462,9 @@ public:
462 void teleportViaLandmark(const LLUUID& landmark_id); 462 void teleportViaLandmark(const LLUUID& landmark_id);
463 463
464 // go home 464 // go home
465 void teleportHome() { teleportViaLandmark(LLUUID::null); } 465 void teleportHome();
466 void teleportHomeConfirm();
467 static void teleportHomeCallback(S32 option, void *userdata);
466 468
467 // to an invited location 469 // to an invited location
468 void teleportViaLure(const LLUUID& lure_id, BOOL godlike); 470 void teleportViaLure(const LLUUID& lure_id, BOOL godlike);
@@ -666,8 +668,12 @@ public:
666 static void stopFidget(); 668 static void stopFidget();
667 static void processAgentInitialWearablesUpdate(LLMessageSystem* mesgsys, void** user_data); 669 static void processAgentInitialWearablesUpdate(LLMessageSystem* mesgsys, void** user_data);
668 static void userRemoveWearable( void* userdata ); // userdata is EWearableType 670 static void userRemoveWearable( void* userdata ); // userdata is EWearableType
669 static void userRemoveAllClothes( void* userdata ); // userdata is NULL 671
670 static void userRemoveAllClothesStep2(BOOL proceed, void* userdata ); // userdata is NULL 672 static void userRemoveAllClothesConfirm();
673 static void userRemoveAllClothesCallback(S32 option, void *userdata);
674 static void userRemoveAllClothes( void* userdata ); // userdata is NULL
675 static void userRemoveAllClothesStep2(BOOL proceed, void* userdata ); // userdata is NULL
676
671 static void userRemoveAllAttachments( void* userdata); // userdata is NULL 677 static void userRemoveAllAttachments( void* userdata); // userdata is NULL
672 static BOOL selfHasWearable( void* userdata ); // userdata is EWearableType 678 static BOOL selfHasWearable( void* userdata ); // userdata is EWearableType
673 679
diff --git a/linden/indra/newview/llfloaterworldmap.cpp b/linden/indra/newview/llfloaterworldmap.cpp
index 8396454..66b2813 100644
--- a/linden/indra/newview/llfloaterworldmap.cpp
+++ b/linden/indra/newview/llfloaterworldmap.cpp
@@ -1052,8 +1052,7 @@ void LLFloaterWorldMap::onPanBtn( void* userdata )
1052// static 1052// static
1053void LLFloaterWorldMap::onGoHome(void*) 1053void LLFloaterWorldMap::onGoHome(void*)
1054{ 1054{
1055 gAgent.teleportHome(); 1055 gAgent.teleportHomeConfirm();
1056 gFloaterWorldMap->close();
1057} 1056}
1058 1057
1059 1058
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp
index 34277f7..7af8c89 100644
--- a/linden/indra/newview/llinventorybridge.cpp
+++ b/linden/indra/newview/llinventorybridge.cpp
@@ -758,7 +758,7 @@ void LLItemBridge::performAction(LLFolderView* folder, LLInventoryModel* model,
758 } 758 }
759 else if ("restoreToWorld" == action) 759 else if ("restoreToWorld" == action)
760 { 760 {
761 restoreToWorld(); 761 restoreToWorldConfirm();
762 } 762 }
763 else if ("restore" == action) 763 else if ("restore" == action)
764 { 764 {
@@ -816,6 +816,24 @@ void LLItemBridge::restoreItem()
816 } 816 }
817} 817}
818 818
819
820// virtual
821void LLItemBridge::restoreToWorldConfirm()
822{
823 gViewerWindow->alertXml("ConfirmRestoreToWorld", LLItemBridge::restoreToWorldCallback, (void *)this);
824}
825
826// static
827void LLItemBridge::restoreToWorldCallback(S32 option, void *userdata)
828{
829 if( option == 0 )
830 {
831 // They confirmed it. Here we go!
832 ((LLItemBridge *) userdata)->restoreToWorld();
833 }
834}
835
836// virtual
819void LLItemBridge::restoreToWorld() 837void LLItemBridge::restoreToWorld()
820{ 838{
821 LLViewerInventoryItem* itemp = (LLViewerInventoryItem*)getItem(); 839 LLViewerInventoryItem* itemp = (LLViewerInventoryItem*)getItem();
@@ -3421,6 +3439,7 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
3421 items.push_back(std::string("Object Wear")); 3439 items.push_back(std::string("Object Wear"));
3422 items.push_back(std::string("Attach To")); 3440 items.push_back(std::string("Attach To"));
3423 items.push_back(std::string("Attach To HUD")); 3441 items.push_back(std::string("Attach To HUD"));
3442 items.push_back(std::string("RestoreToWorld Separator"));
3424 items.push_back(std::string("Restore to Last Position")); 3443 items.push_back(std::string("Restore to Last Position"));
3425 3444
3426 LLMenuGL* attach_menu = menu.getChildMenuByName("Attach To", TRUE); 3445 LLMenuGL* attach_menu = menu.getChildMenuByName("Attach To", TRUE);
diff --git a/linden/indra/newview/llinventorybridge.h b/linden/indra/newview/llinventorybridge.h
index eb17432..a4f59fe 100644
--- a/linden/indra/newview/llinventorybridge.h
+++ b/linden/indra/newview/llinventorybridge.h
@@ -244,7 +244,11 @@ public:
244 244
245 virtual void selectItem(); 245 virtual void selectItem();
246 virtual void restoreItem(); 246 virtual void restoreItem();
247
247 virtual void restoreToWorld(); 248 virtual void restoreToWorld();
249 virtual void restoreToWorldConfirm();
250 static void restoreToWorldCallback(S32 option, void *userdata);
251
248 252
249 virtual LLUIImagePtr getIcon() const; 253 virtual LLUIImagePtr getIcon() const;
250 virtual const std::string& getDisplayName() const; 254 virtual const std::string& getDisplayName() const;
diff --git a/linden/indra/newview/llmutelist.cpp b/linden/indra/newview/llmutelist.cpp
index 0cdfe83..00ef9c3 100644
--- a/linden/indra/newview/llmutelist.cpp
+++ b/linden/indra/newview/llmutelist.cpp
@@ -64,6 +64,7 @@
64#include "llworld.h" //for particle system banning 64#include "llworld.h" //for particle system banning
65#include "llchat.h" 65#include "llchat.h"
66#include "llfloaterchat.h" 66#include "llfloaterchat.h"
67#include "llfloatermute.h"
67#include "llimpanel.h" 68#include "llimpanel.h"
68#include "llimview.h" 69#include "llimview.h"
69#include "llnotify.h" 70#include "llnotify.h"
@@ -245,6 +246,43 @@ BOOL LLMuteList::isLinden(const std::string& name) const
245} 246}
246 247
247 248
249void LLMuteList::addMuteAgentConfirm( const LLMute &mute )
250{
251 LLMute *newmute = new LLMute(mute);
252
253 LLStringUtil::format_map_t args;
254 args["[NAME]"] = newmute->mName;
255
256 gViewerWindow->alertXml("ConfirmMuteAgent", args,
257 LLMuteList::addMuteCallback,
258 static_cast<void*>(newmute));
259}
260
261void LLMuteList::addMuteObjectConfirm( const LLMute &mute )
262{
263 LLMute *newmute = new LLMute(mute);
264
265 LLStringUtil::format_map_t args;
266 args["[NAME]"] = newmute->mName;
267
268 gViewerWindow->alertXml("ConfirmMuteObject", args,
269 LLMuteList::addMuteCallback,
270 static_cast<void*>(newmute));
271}
272
273// static
274void LLMuteList::addMuteCallback(S32 option, void *userdata)
275{
276 LLMute *mute = static_cast<LLMute*>(userdata);
277 if( option == 0 )
278 {
279 // They confirmed it. Here we go!
280 LLMuteList::getInstance()->add( *mute );
281 LLFloaterMute::showInstance();
282 }
283 delete mute;
284}
285
248BOOL LLMuteList::add(const LLMute& mute, U32 flags) 286BOOL LLMuteList::add(const LLMute& mute, U32 flags)
249{ 287{
250 // Can't mute text from Lindens 288 // Can't mute text from Lindens
diff --git a/linden/indra/newview/llmutelist.h b/linden/indra/newview/llmutelist.h
index 400f13e..d66dd17 100644
--- a/linden/indra/newview/llmutelist.h
+++ b/linden/indra/newview/llmutelist.h
@@ -102,6 +102,11 @@ public:
102 void addObserver(LLMuteListObserver* observer); 102 void addObserver(LLMuteListObserver* observer);
103 void removeObserver(LLMuteListObserver* observer); 103 void removeObserver(LLMuteListObserver* observer);
104 104
105
106 void addMuteAgentConfirm( const LLMute &mute );
107 void addMuteObjectConfirm( const LLMute &mute );
108 static void addMuteCallback(S32 option, void *userdata);
109
105 // Add either a normal or a BY_NAME mute, for any or all properties. 110 // Add either a normal or a BY_NAME mute, for any or all properties.
106 BOOL add(const LLMute& mute, U32 flags = 0); 111 BOOL add(const LLMute& mute, U32 flags = 0);
107 112
diff --git a/linden/indra/newview/llpanelavatar.cpp b/linden/indra/newview/llpanelavatar.cpp
index 76dbd1f..82d9054 100644
--- a/linden/indra/newview/llpanelavatar.cpp
+++ b/linden/indra/newview/llpanelavatar.cpp
@@ -1590,16 +1590,16 @@ void LLPanelAvatar::onClickMute(void *userdata)
1590 if (name_edit) 1590 if (name_edit)
1591 { 1591 {
1592 std::string agent_name = name_edit->getText(); 1592 std::string agent_name = name_edit->getText();
1593 LLFloaterMute::showInstance();
1594 1593
1595 if (LLMuteList::getInstance()->isMuted(agent_id)) 1594 if (LLMuteList::getInstance()->isMuted(agent_id))
1596 { 1595 {
1597 LLFloaterMute::getInstance()->selectMute(agent_id); 1596 LLFloaterMute::getInstance()->selectMute(agent_id);
1597 LLFloaterMute::showInstance();
1598 } 1598 }
1599 else 1599 else
1600 { 1600 {
1601 LLMute mute(agent_id, agent_name, LLMute::AGENT); 1601 LLMute mute(agent_id, agent_name, LLMute::AGENT);
1602 LLMuteList::getInstance()->add(mute); 1602 LLMuteList::getInstance()->addMuteAgentConfirm(mute);
1603 } 1603 }
1604 } 1604 }
1605} 1605}
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp
index aeb3b2d..7f654bb 100644
--- a/linden/indra/newview/llpanellogin.cpp
+++ b/linden/indra/newview/llpanellogin.cpp
@@ -538,7 +538,7 @@ BOOL LLPanelLogin::handleKeyHere(KEY key, MASK mask)
538{ 538{
539 if (( KEY_RETURN == key ) && (MASK_ALT == mask)) 539 if (( KEY_RETURN == key ) && (MASK_ALT == mask))
540 { 540 {
541 gViewerWindow->toggleFullscreen(FALSE); 541 gViewerWindow->toggleFullscreenConfirm();
542 return TRUE; 542 return TRUE;
543 } 543 }
544 544
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 486e4f1..4081e97 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -2087,10 +2087,16 @@ class LLObjectMute : public view_listener_t
2087 } 2087 }
2088 else 2088 else
2089 { 2089 {
2090 LLMuteList::getInstance()->add(mute); 2090 if( LLMute::AGENT == type )
2091 LLFloaterMute::showInstance(); 2091 {
2092 LLMuteList::getInstance()->addMuteAgentConfirm(mute);
2093 }
2094 else
2095 {
2096 // must be an object.
2097 LLMuteList::getInstance()->addMuteObjectConfirm(mute);
2098 }
2092 } 2099 }
2093
2094 return true; 2100 return true;
2095 } 2101 }
2096}; 2102};
@@ -3262,7 +3268,7 @@ class LLViewFullscreen : public view_listener_t
3262{ 3268{
3263 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 3269 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
3264 { 3270 {
3265 gViewerWindow->toggleFullscreen(TRUE); 3271 gViewerWindow->toggleFullscreenConfirm();
3266 return true; 3272 return true;
3267 } 3273 }
3268}; 3274};
@@ -4686,7 +4692,7 @@ class LLWorldTeleportHome : public view_listener_t
4686{ 4692{
4687 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) 4693 bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
4688 { 4694 {
4689 gAgent.teleportHome(); 4695 gAgent.teleportHomeConfirm();
4690 return true; 4696 return true;
4691 } 4697 }
4692}; 4698};
@@ -7352,7 +7358,7 @@ class LLEditTakeOff : public view_listener_t
7352 } 7358 }
7353 else if (clothing == "all") 7359 else if (clothing == "all")
7354 { 7360 {
7355 LLAgent::userRemoveAllClothes(NULL); 7361 LLAgent::userRemoveAllClothesConfirm();
7356 } 7362 }
7357 return true; 7363 return true;
7358 } 7364 }
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp
index 854d757..0c43b59 100644
--- a/linden/indra/newview/llviewerwindow.cpp
+++ b/linden/indra/newview/llviewerwindow.cpp
@@ -4612,6 +4612,27 @@ void LLViewerWindow::initFonts(F32 zoom_factor)
4612 gDirUtilp->getAppRODataDir() 4612 gDirUtilp->getAppRODataDir()
4613 ); 4613 );
4614} 4614}
4615
4616
4617void LLViewerWindow::toggleFullscreenConfirm()
4618{
4619 gViewerWindow->alertXml("ConfirmToggleFullscreen",
4620 LLViewerWindow::toggleFullscreenCallback,
4621 (void *)this);
4622}
4623
4624
4625// static
4626void LLViewerWindow::toggleFullscreenCallback(S32 option, void *userdata)
4627{
4628 if( option == 0 )
4629 {
4630 // User confirmed it. Here we go!
4631 ((LLViewerWindow *)userdata)->toggleFullscreen( TRUE );
4632 }
4633}
4634
4635
4615void LLViewerWindow::toggleFullscreen(BOOL show_progress) 4636void LLViewerWindow::toggleFullscreen(BOOL show_progress)
4616{ 4637{
4617 if (mWindow) 4638 if (mWindow)
diff --git a/linden/indra/newview/llviewerwindow.h b/linden/indra/newview/llviewerwindow.h
index 21df0d5..d562d0f 100644
--- a/linden/indra/newview/llviewerwindow.h
+++ b/linden/indra/newview/llviewerwindow.h
@@ -338,6 +338,8 @@ public:
338 338
339 // Request display setting changes 339 // Request display setting changes
340 void toggleFullscreen(BOOL show_progress); 340 void toggleFullscreen(BOOL show_progress);
341 void toggleFullscreenConfirm();
342 static void toggleFullscreenCallback(S32 option, void *userdata);
341 343
342 // handle shutting down GL and bringing it back up 344 // handle shutting down GL and bringing it back up
343 BOOL checkSettings(); 345 BOOL checkSettings();
diff --git a/linden/indra/newview/skins/default/xui/en-us/alerts.xml b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
index 92e2014..25d3a84 100644
--- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml
@@ -5060,5 +5060,105 @@ Would you like to visit the Second Life website to set this up?
5060 The string [STRING_NAME] is missing from strings.xml 5060 The string [STRING_NAME] is missing from strings.xml
5061 </message> 5061 </message>
5062 </alert> 5062 </alert>
5063
5064 <alert modal="true" name="ConfirmTeleportHome">
5065 <message name="message">
5066 Are you sure you want to teleport home?
5067 </message>
5068 <ignore name="ignore">
5069 When teleporting home
5070 </ignore>
5071 <option name="Teleport">
5072 Teleport
5073 </option>
5074 <option name="Cancel">
5075 Cancel
5076 </option>
5077 </alert>
5078
5079 <alert modal="true" name="ConfirmToggleFullscreen">
5080 <message name="message">
5081 Are you sure you want to toggle fullscreen mode?
5082 </message>
5083 <ignore name="ignore">
5084 When toggling fullscreen mode
5085 </ignore>
5086 <option name="Toggle">
5087 Toggle
5088 </option>
5089 <option name="Cancel">
5090 Cancel
5091 </option>
5092 </alert>
5093
5094 <alert modal="true" name="ConfirmRestoreToWorld">
5095 <message name="message">
5096 Are you sure you want to restore the object to its last position?
5097
5098WARNING: Don't restore if you aren't sure where the object will go!
5099 </message>
5100 <ignore name="ignore">
5101 When restoring objects to their last positions
5102 </ignore>
5103 <option name="Restore">
5104 Restore
5105 </option>
5106 <option name="MoreInfo">
5107 More Info
5108 </option>
5109 <option name="Cancel">
5110 Cancel
5111 </option>
5112 <url option="1">
5113 http://imprudenceviewer.org/wiki/Restore_to_Last_Position
5114 </url>
5115
5116 </alert>
5117
5118 <alert modal="true" name="ConfirmRemoveAllClothes">
5119 <message name="message">
5120 Are you sure you want to take off all clothes?
5121 </message>
5122 <ignore name="ignore">
5123 When taking off all clothes
5124 </ignore>
5125 <option name="Take Off">
5126 Take Off
5127 </option>
5128 <option name="Cancel">
5129 Cancel
5130 </option>
5131 </alert>
5132
5133 <alert modal="true" name="ConfirmMuteAgent">
5134 <message name="message">
5135 Are you sure you want to mute [NAME] (resident)?
5136 </message>
5137 <ignore name="ignore">
5138 When muting a Resident
5139 </ignore>
5140 <option name="Mute">
5141 Mute
5142 </option>
5143 <option name="Cancel">
5144 Cancel
5145 </option>
5146 </alert>
5147
5148 <alert modal="true" name="ConfirmMuteObject">
5149 <message name="message">
5150 Are you sure you want to mute [NAME] (object)?
5151 </message>
5152 <ignore name="ignore">
5153 When muting an object
5154 </ignore>
5155 <option name="Mute">
5156 Mute
5157 </option>
5158 <option name="Cancel">
5159 Cancel
5160 </option>
5161 </alert>
5162
5063</alerts> 5163</alerts>
5064 5164
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
index aa61e77..ff3b8ce 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
@@ -218,15 +218,17 @@
218 name="Deactivate" width="128"> 218 name="Deactivate" width="128">
219 <on_click filter="" function="Inventory.DoToSelected" userdata="deactivate" /> 219 <on_click filter="" function="Inventory.DoToSelected" userdata="deactivate" />
220 </menu_item_call> 220 </menu_item_call>
221 <menu_item_separator name="RestoreToWorld Separator" />
222 <menu_item_call name="Restore to Last Position"
223 label="Restore to Last Position">
224 <on_click filter="" function="Inventory.DoToSelected"
225 userdata="restoreToWorld" />
226 </menu_item_call>
221 <menu_item_separator name="Attach Separator" /> 227 <menu_item_separator name="Attach Separator" />
222 <menu_item_call bottom_delta="-18" height="18" label="Detach From Yourself" left="0" 228 <menu_item_call bottom_delta="-18" height="18" label="Detach From Yourself" left="0"
223 mouse_opaque="true" name="Detach From Yourself" width="128"> 229 mouse_opaque="true" name="Detach From Yourself" width="128">
224 <on_click filter="" function="Inventory.DoToSelected" userdata="detach" /> 230 <on_click filter="" function="Inventory.DoToSelected" userdata="detach" />
225 </menu_item_call> 231 </menu_item_call>
226 <menu_item_call bottom_delta="-18" height="18" label="Restore to Last Position" left="0" mouse_opaque="true"
227 name="Restore to Last Position" width="128">
228 <on_click filter="" function="Inventory.DoToSelected" userdata="restoreToWorld" />
229 </menu_item_call>
230 <menu_item_call bottom_delta="-18" height="18" label="Wear" left="0" mouse_opaque="true" 232 <menu_item_call bottom_delta="-18" height="18" label="Wear" left="0" mouse_opaque="true"
231 name="Object Wear" width="128"> 233 name="Object Wear" width="128">
232 <on_click filter="" function="Inventory.DoToSelected" userdata="attach" /> 234 <on_click filter="" function="Inventory.DoToSelected" userdata="attach" />