MAINT-4904 FIXED Show confirmation pop-up before unlinking an object.
parent
2ea45ee2c9
commit
22ea223ddd
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -506,6 +506,8 @@ public:
|
|||
|
||||
bool unlinkObjects();
|
||||
|
||||
void confirmUnlinkObjects(const LLSD& notification, const LLSD& response);
|
||||
|
||||
bool enableLinkObjects();
|
||||
|
||||
bool enableUnlinkObjects();
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue