diff options
Diffstat (limited to 'linden')
-rw-r--r-- | linden/indra/newview/Info-Imprudence.plist | 78 | ||||
-rw-r--r-- | linden/indra/newview/llagent.cpp | 41 | ||||
-rw-r--r-- | linden/indra/newview/llagent.h | 12 | ||||
-rw-r--r-- | linden/indra/newview/llfloaterworldmap.cpp | 3 | ||||
-rw-r--r-- | linden/indra/newview/llinventorybridge.cpp | 21 | ||||
-rw-r--r-- | linden/indra/newview/llinventorybridge.h | 4 | ||||
-rw-r--r-- | linden/indra/newview/llmutelist.cpp | 38 | ||||
-rw-r--r-- | linden/indra/newview/llmutelist.h | 5 | ||||
-rw-r--r-- | linden/indra/newview/llpanelavatar.cpp | 4 | ||||
-rw-r--r-- | linden/indra/newview/llpanellogin.cpp | 2 | ||||
-rw-r--r-- | linden/indra/newview/llviewermenu.cpp | 18 | ||||
-rw-r--r-- | linden/indra/newview/llviewerwindow.cpp | 21 | ||||
-rw-r--r-- | linden/indra/newview/llviewerwindow.h | 2 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/xui/en-us/alerts.xml | 100 | ||||
-rw-r--r-- | linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml | 10 |
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 | |||
5930 | void LLAgent::teleportHome() | ||
5931 | { | ||
5932 | teleportViaLandmark(LLUUID::null); | ||
5933 | } | ||
5934 | |||
5935 | void LLAgent::teleportHomeConfirm() | ||
5936 | { | ||
5937 | gViewerWindow->alertXml("ConfirmTeleportHome", LLAgent::teleportHomeCallback, (void *)this); | ||
5938 | } | ||
5939 | |||
5940 | // static | ||
5941 | void 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 | |||
5929 | void LLAgent::setTeleportState(ETeleportState state) | 5951 | void 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 | ||
7437 | void LLAgent::userRemoveAllClothesConfirm() | ||
7438 | { | ||
7439 | gViewerWindow->alertXml("ConfirmRemoveAllClothes", | ||
7440 | LLAgent::userRemoveAllClothesCallback, NULL); | ||
7441 | } | ||
7442 | |||
7443 | // static | ||
7444 | void 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 | |||
7413 | void LLAgent::userRemoveAllClothes( void* userdata ) | 7454 | void 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 |
1053 | void LLFloaterWorldMap::onGoHome(void*) | 1053 | void 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 | ||
821 | void LLItemBridge::restoreToWorldConfirm() | ||
822 | { | ||
823 | gViewerWindow->alertXml("ConfirmRestoreToWorld", LLItemBridge::restoreToWorldCallback, (void *)this); | ||
824 | } | ||
825 | |||
826 | // static | ||
827 | void 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 | ||
819 | void LLItemBridge::restoreToWorld() | 837 | void 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 | ||
249 | void 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 | |||
261 | void 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 | ||
274 | void 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 | |||
248 | BOOL LLMuteList::add(const LLMute& mute, U32 flags) | 286 | BOOL 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 | |||
4617 | void LLViewerWindow::toggleFullscreenConfirm() | ||
4618 | { | ||
4619 | gViewerWindow->alertXml("ConfirmToggleFullscreen", | ||
4620 | LLViewerWindow::toggleFullscreenCallback, | ||
4621 | (void *)this); | ||
4622 | } | ||
4623 | |||
4624 | |||
4625 | // static | ||
4626 | void 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 | |||
4615 | void LLViewerWindow::toggleFullscreen(BOOL show_progress) | 4636 | void 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 | |||
5098 | WARNING: 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" /> |