From 2195052d1a245ef4d374cfe49829022b54dee9bb Mon Sep 17 00:00:00 2001 From: Ansariel Date: Thu, 5 Feb 2015 13:36:22 +0100 Subject: [PATCH] FIRE-15489: Add confirmation when unlinking objects --- indra/newview/llfloatertools.cpp | 21 ++++++++++++++++++- indra/newview/llviewermenu.cpp | 6 +++++- .../skins/default/xui/de/notifications.xml | 6 +++++- .../skins/default/xui/en/notifications.xml | 13 ++++++++++++ 4 files changed, 43 insertions(+), 3 deletions(-) diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index eec3137e18..23eb9c2714 100755 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -369,6 +369,22 @@ void LLFloaterTools::changePrecision(S32 decimal_precision) mPanelFace->changePrecision(decimal_precision); } +// FIRE-15489: Confirm before unlinking objects +void cb_confirm_unlink_objects(const LLSD& notification, const LLSD& response) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + if (option == 0) + { + LLSelectMgr::getInstance()->unlinkObjects(); + } +} + +void confirm_unlink_objects() +{ + LLNotificationsUtil::add("ConfirmUnlinkObjects", LLSD(), LLSD(), boost::bind(&cb_confirm_unlink_objects, _1, _2)); +} +// + // Create the popupview with a dummy center. It will be moved into place // during LLViewerWindow's per-frame hover processing. LLFloaterTools::LLFloaterTools(const LLSD& key) @@ -469,7 +485,10 @@ LLFloaterTools::LLFloaterTools(const LLSD& key) mCommitCallbackRegistrar.add("BuildTool.EditMedia", boost::bind(&LLFloaterTools::onClickBtnEditMedia,this)); mCommitCallbackRegistrar.add("BuildTool.LinkObjects", boost::bind(&LLSelectMgr::linkObjects, LLSelectMgr::getInstance())); - mCommitCallbackRegistrar.add("BuildTool.UnlinkObjects", boost::bind(&LLSelectMgr::unlinkObjects, LLSelectMgr::getInstance())); + // FIRE-15489: Confirm before unlinking objects + //mCommitCallbackRegistrar.add("BuildTool.UnlinkObjects", boost::bind(&LLSelectMgr::unlinkObjects, LLSelectMgr::getInstance())); + mCommitCallbackRegistrar.add("BuildTool.UnlinkObjects", boost::bind(&confirm_unlink_objects)); + // // mCommitCallbackRegistrar.add("BuildTool.CopyKeys", boost::bind(&LLFloaterTools::onClickBtnCopyKeys,this)); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 89ecfcc509..821d3d2e48 100755 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -10680,7 +10680,11 @@ void initialize_menus() view_listener_t::addMenu(new LLToolsUseSelectionForGrid(), "Tools.UseSelectionForGrid"); view_listener_t::addMenu(new LLToolsSelectNextPart(), "Tools.SelectNextPart"); commit.add("Tools.Link", boost::bind(&LLSelectMgr::linkObjects, LLSelectMgr::getInstance())); - commit.add("Tools.Unlink", boost::bind(&LLSelectMgr::unlinkObjects, LLSelectMgr::getInstance())); + // FIRE-15489: Confirm before unlinking objects + //commit.add("Tools.Unlink", boost::bind(&LLSelectMgr::unlinkObjects, LLSelectMgr::getInstance())); + void confirm_unlink_objects(); + commit.add("Tools.Unlink", boost::bind(&confirm_unlink_objects)); + // view_listener_t::addMenu(new LLToolsStopAllAnimations(), "Tools.StopAllAnimations"); view_listener_t::addMenu(new LLToolsReleaseKeys(), "Tools.ReleaseKeys"); view_listener_t::addMenu(new LLToolsEnableReleaseKeys(), "Tools.EnableReleaseKeys"); diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 9ae49571ef..e7db098015 100755 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -2220,7 +2220,7 @@ Inventarobjekt(e) verschieben? Bestätigen Sie, dass sie L$[AMOUNT] an [TARGET] zahlen möchten. - + Sie haben keine Berechtigung zum Kopieren von Elementen in diesem Objekt. @@ -4886,4 +4886,8 @@ Welche Bezeichnung soll für die Region