MAINT-4904 FIXED Show confirmation pop-up before unlinking an object.

master
Mnikolenko ProductEngine 2015-02-26 12:12:08 +02:00
parent 2ea45ee2c9
commit 22ea223ddd
4 changed files with 59 additions and 1 deletions

View File

@ -3444,6 +3444,17 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>MinObjectsForUnlinkConfirm</key>
<map>
<key>Comment</key>
<string>Minimum amount of objects in linkset for showing confirmation dialog</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>6</integer>
</map>
<key>EffectScriptChatParticles</key>
<map>
<key>Comment</key>

View File

@ -622,10 +622,41 @@ bool LLSelectMgr::linkObjects()
bool LLSelectMgr::unlinkObjects()
{
LLViewerObject *object = mSelectedObjects->getFirstRootObject();
if (!object) return false;
S32 min_objects_for_confirm = gSavedSettings.getS32("MinObjectsForUnlinkConfirm");
for (LLObjectSelection::root_iterator iter = getSelection()->root_begin(); iter != getSelection()->root_end(); iter++)
{
object = (*iter)->getObject();
if(object)
{
S32 objects_in_linkset = object->numChildren() + 1;
if(objects_in_linkset >= min_objects_for_confirm)
{
LLNotificationsUtil::add("ConfirmUnlink", LLSD(), LLSD(), boost::bind(&LLSelectMgr::confirmUnlinkObjects, this, _1, _2));
return true;
}
}
}
LLSelectMgr::getInstance()->sendDelink();
return true;
}
void LLSelectMgr::confirmUnlinkObjects(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
// if Cancel pressed
if (option == 1)
{
return;
}
LLSelectMgr::getInstance()->sendDelink();
return;
}
// in order to link, all objects must have the same owner, and the
// agent must have the ability to modify all of the objects. However,
// we're not answering that question with this method. The question

View File

@ -506,6 +506,8 @@ public:
bool unlinkObjects();
void confirmUnlinkObjects(const LLSD& notification, const LLSD& response);
bool enableLinkObjects();
bool enableUnlinkObjects();

View File

@ -5365,7 +5365,21 @@ You cannot undo this action.
notext="Cancel"
yestext="OK"/>
</notification>
<notification
icon="alertmodal.tga"
name="ConfirmUnlink"
type="alertmodal">
<unique/>
This is a large linkset. If you unlink it, you may not be able to link it again. You may wish to take a copy of the linkset into your inventory as a precaution.
<tag>confirm</tag>
<usetemplate
ignoretext="Confirm when unlinking a linkset"
name="okcancelignore"
notext="Cancel"
yestext="Unlink"/>
</notification>
<notification
icon="alertmodal.tga"
name="HelpReportAbuseEmailLL"