EXP-1275 WIP A UI element or Keyboard shortcut to clear the viewport

added confirmation dialog before hiding UI
meow-7.2.2
Richard Nelson 2011-10-12 15:46:45 -07:00
parent 23a2a77369
commit 9ca4b8219f
5 changed files with 53 additions and 9 deletions

View File

@ -247,6 +247,7 @@ LLFloater::LLFloater(const LLSD& key, const LLFloater::Params& p)
mHeaderHeight(p.header_height),
mLegacyHeaderHeight(p.legacy_header_height),
mMinimized(FALSE),
mVisibleWhenMinimized(TRUE),
mForeground(FALSE),
mFirstLook(TRUE),
mButtonScale(1.0f),

View File

@ -212,7 +212,7 @@ public:
void addDependentFloater(LLFloater* dependent, BOOL reposition = TRUE);
void addDependentFloater(LLHandle<LLFloater> dependent_handle, BOOL reposition = TRUE);
LLFloater* getDependee() { return (LLFloater*)mDependeeHandle.get(); }
void removeDependentFloater(LLFloater* dependent);
void removeDependentFloater(LLFloater* dependent);
BOOL isMinimized() const { return mMinimized; }
/// isShown() differs from getVisible() in that isShown() also considers
/// isMinimized(). isShown() is true only if visible and not minimized.
@ -420,6 +420,7 @@ private:
S32 mLegacyHeaderHeight;// HACK see initFloaterXML()
BOOL mMinimized;
bool mVisibleWhenMinimized;
BOOL mForeground;
LLHandle<LLFloater> mDependeeHandle;

View File

@ -3766,9 +3766,37 @@ class LLViewToggleUI : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
gViewerWindow->setUIVisibility(!gViewerWindow->getUIVisibility());
LLNotification::Params params("ConfirmHideUI");
params.functor.function(boost::bind(&LLViewToggleUI::confirm, this, _1, _2));
LLSD substitutions;
#if LL_DARWIN
substitutions["SHORTCUT"] = "Cmd+Shift+U";
#else
substitutions["SHORTCUT"] = "Ctrl+Shift+U";
#endif
params.substitutions = substitutions;
if (gViewerWindow->getUIVisibility())
{
// hiding, so show notification
LLNotifications::instance().add(params);
}
else
{
LLNotifications::instance().forceResponse(params, 0);
}
return true;
}
void confirm(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if (option == 0) // OK
{
gViewerWindow->setUIVisibility(!gViewerWindow->getUIVisibility());
}
}
};
class LLEditDuplicate : public view_listener_t

View File

@ -24,6 +24,13 @@
function="Floater.Toggle"
parameter="toybox" />
</menu_item_call>
<menu_item_call
label="Hide all controls"
name="Hide UI"
shortcut="control|shift|U">
<menu_item_call.on_click
function="View.ToggleUI" />
</menu_item_call>
<menu_item_call
label="My Dashboard"
name="Manage My Account">
@ -1719,13 +1726,6 @@
<menu_item_call.on_click
function="View.DefaultUISize" />
</menu_item_call>
<menu_item_call
label="Toggle UI"
name="Toggle UI"
shortcut="control|shift|U">
<menu_item_call.on_click
function="View.ToggleUI" />
</menu_item_call>
<!-- This second, alternative shortcut for Show Advanced Menu is for backward compatibility. The main shortcut has been changed so it's Linux-friendly, where the old shortcut is typically eaten by the window manager. -->
<menu_item_check
label="Show Advanced Menu - legacy shortcut"

View File

@ -7536,6 +7536,20 @@ The site at &apos;&lt;nolink&gt;[HOST_NAME]&lt;/nolink&gt;&apos; in realm &apos;
notext="Don't Quit"/>
</notification>
<notification
name="ConfirmHideUI"
label=""
type="alertmodal">
<unique/>
<tag>confirm</tag>
This action will hide all menu items and buttons. To get them back, click [SHORTCUT] again.
<usetemplate
name="okcancelignore"
yestext="OK"
notext="Cancel"
ignoretext="Confirm before hiding UI"/>
</notification>
<global name="UnsupportedGLRequirements">
You do not appear to have the proper hardware requirements for [APP_NAME]. [APP_NAME] requires an OpenGL graphics card that has multitexture support. If this is the case, you may want to make sure that you have the latest drivers for your graphics card, and service packs and patches for your operating system.