summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/lltoolbar.h85
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/app_settings/settings_per_account.xml2
-rw-r--r--indra/newview/llnearbychat.cpp25
-rw-r--r--indra/newview/llnearbychat.h6
-rw-r--r--indra/newview/llnearbychatbar.cpp9
-rw-r--r--indra/newview/llstartup.cpp8
-rw-r--r--indra/newview/llviewerwindow.cpp18
8 files changed, 81 insertions, 83 deletions
diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h
index f10f39adc3..8c25c43f1a 100644
--- a/indra/llui/lltoolbar.h
+++ b/indra/llui/lltoolbar.h
@@ -66,6 +66,7 @@ public:
void reshape(S32 width, S32 height, BOOL called_from_parent = true);
void setEnabled(BOOL enabled);
void setCommandId(const LLCommandId& id) { mId = id; }
+ LLCommandId getCommandId() { return mId; }
void setStartDragCallback(tool_startdrag_callback_t cb) { mStartDragItemCallback = cb; }
void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }
@@ -164,7 +165,8 @@ public:
pad_bottom,
pad_between,
min_girth;
- // get rid of this
+
+ // default command set
Multiple<LLCommandId::Params> commands;
Optional<LLPanel::Params> button_panel;
@@ -175,8 +177,6 @@ public:
// virtuals
void draw();
void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
- int getRankFromPosition(S32 x, S32 y);
- int getRankFromPosition(const LLCommandId& id);
BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EDragAndDropType cargo_type,
@@ -185,15 +185,14 @@ public:
std::string& tooltip_msg);
static const int RANK_NONE = -1;
-
bool addCommand(const LLCommandId& commandId, int rank = RANK_NONE);
int removeCommand(const LLCommandId& commandId); // Returns the rank the removed command was at, RANK_NONE if not found
- bool hasCommand(const LLCommandId& commandId) const;
- bool enableCommand(const LLCommandId& commandId, bool enabled);
- bool stopCommandInProgress(const LLCommandId& commandId);
- bool flashCommand(const LLCommandId& commandId, bool flash);
+ bool hasCommand(const LLCommandId& commandId) const; // is this command bound to a button in this toolbar
+ bool enableCommand(const LLCommandId& commandId, bool enabled); // enable/disable button bound to the specified command, if it exists in this toolbar
+ bool stopCommandInProgress(const LLCommandId& commandId); // stop command if it is currently active
+ bool flashCommand(const LLCommandId& commandId, bool flash); // flash button associated with given command, if in this toolbar
- void setStartDragCallback(tool_startdrag_callback_t cb) { mStartDragItemCallback = cb; }
+ void setStartDragCallback(tool_startdrag_callback_t cb) { mStartDragItemCallback = cb; } // connects drag and drop behavior to external logic
void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; }
void setHandleDropCallback(tool_handledrop_callback_t cb) { mHandleDropCallback = cb; }
bool isReadOnly() const { return mReadOnly; }
@@ -206,35 +205,28 @@ public:
boost::signals2::connection setButtonLeaveCallback(const button_signal_t::slot_type& cb);
boost::signals2::connection setButtonRemoveCallback(const button_signal_t::slot_type& cb);
- void setTooltipButtonSuffix(const std::string& suffix) { mButtonTooltipSuffix = suffix; }
+ // append the specified string to end of tooltip
+ void setTooltipButtonSuffix(const std::string& suffix) { mButtonTooltipSuffix = suffix; }
LLToolBarEnums::SideType getSideType() const { return mSideType; }
bool hasButtons() const { return !mButtons.empty(); }
bool isModified() const { return mModified; }
-protected:
- friend class LLUICtrlFactory;
- LLToolBar(const Params&);
- ~LLToolBar();
-
- void initFromParams(const Params&);
- tool_startdrag_callback_t mStartDragItemCallback;
- tool_handledrag_callback_t mHandleDragItemCallback;
- tool_handledrop_callback_t mHandleDropCallback;
- bool mDragAndDropTarget;
- int mDragRank;
- S32 mDragx,
- mDragy,
- mDragGirth;
+ int getRankFromPosition(S32 x, S32 y);
+ int getRankFromPosition(const LLCommandId& id);
-public:
// Methods used in loading and saving toolbar settings
void setButtonType(LLToolBarEnums::ButtonType button_type);
LLToolBarEnums::ButtonType getButtonType() { return mButtonType; }
command_id_list_t& getCommandsList() { return mButtonCommands; }
void clearCommandsList();
-
+
private:
+ friend class LLUICtrlFactory;
+ LLToolBar(const Params&);
+ ~LLToolBar();
+
+ void initFromParams(const Params&);
void createContextMenu();
void updateLayoutAsNeeded();
void createButtons();
@@ -242,33 +234,44 @@ private:
BOOL isSettingChecked(const LLSD& userdata);
void onSettingEnable(const LLSD& userdata);
+private:
+ // static layout state
const bool mReadOnly;
+ const LLToolBarEnums::SideType mSideType;
+ const bool mWrap;
+ const S32 mPadLeft,
+ mPadRight,
+ mPadTop,
+ mPadBottom,
+ mPadBetween,
+ mMinGirth;
+
+ // drag and drop state
+ tool_startdrag_callback_t mStartDragItemCallback;
+ tool_handledrag_callback_t mHandleDragItemCallback;
+ tool_handledrop_callback_t mHandleDropCallback;
+ bool mDragAndDropTarget;
+ int mDragRank;
+ S32 mDragx,
+ mDragy,
+ mDragGirth;
typedef std::list<LLToolBarButton*> toolbar_button_list;
+ typedef std::map<LLUUID, LLToolBarButton*> command_id_map;
toolbar_button_list mButtons;
command_id_list_t mButtonCommands;
- typedef std::map<LLUUID, LLToolBarButton*> command_id_map;
command_id_map mButtonMap;
LLToolBarEnums::ButtonType mButtonType;
+ LLToolBarButton::Params mButtonParams[LLToolBarEnums::BTNTYPE_COUNT];
+
+ // related widgets
LLLayoutStack* mCenteringStack;
- LLLayoutStack* mWrapStack;
LLPanel* mButtonPanel;
- LLToolBarEnums::SideType mSideType;
-
- bool mWrap;
+ LLHandle<class LLContextMenu> mPopupMenuHandle;
+
bool mNeedsLayout;
bool mModified;
- S32 mPadLeft,
- mPadRight,
- mPadTop,
- mPadBottom,
- mPadBetween,
- mMinGirth;
-
- LLToolBarButton::Params mButtonParams[LLToolBarEnums::BTNTYPE_COUNT];
-
- LLHandle<class LLContextMenu> mPopupMenuHandle;
button_signal_t* mButtonAddSignal;
button_signal_t* mButtonEnterSignal;
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 3771222455..8f660008e5 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -2630,17 +2630,6 @@
<key>Value</key>
<integer>-1</integer>
</map>
- <key>DebugToolbarFUI</key>
- <map>
- <key>Comment</key>
- <string>Turn on the FUI Toolbars</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
<key>DebugViews</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml
index 6ed4480cb1..8cdd8ed838 100644
--- a/indra/newview/app_settings/settings_per_account.xml
+++ b/indra/newview/app_settings/settings_per_account.xml
@@ -36,7 +36,7 @@
<key>DisplayDestinationsOnInitialRun</key>
<map>
<key>Comment</key>
- <string>Display the destinations guide when a user first launches FUI.</string>
+ <string>Display the destinations guide when a user first launches Second Life.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 3418462192..a7303ad035 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -60,13 +60,9 @@ static const S32 RESIZE_BAR_THICKNESS = 3;
static LLRegisterPanelClassWrapper<LLNearbyChat> t_panel_nearby_chat("panel_nearby_chat");
-LLNearbyChat::LLNearbyChat()
- : LLPanel()
- ,mChatHistory(NULL)
-{
-}
-
-LLNearbyChat::~LLNearbyChat()
+LLNearbyChat::LLNearbyChat(const LLNearbyChat::Params& p)
+: LLPanel(p),
+ mChatHistory(NULL)
{
}
@@ -178,15 +174,20 @@ bool LLNearbyChat::onNearbyChatCheckContextMenuItem(const LLSD& userdata)
return false;
}
+void LLNearbyChat::removeScreenChat()
+{
+ LLNotificationsUI::LLScreenChannelBase* chat_channel = LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLUUID(gSavedSettings.getString("NearByChatChannelUUID")));
+ if(chat_channel)
+ {
+ chat_channel->removeToastsFromChannel();
+ }
+}
+
void LLNearbyChat::setVisible(BOOL visible)
{
if(visible)
{
- LLNotificationsUI::LLScreenChannelBase* chat_channel = LLNotificationsUI::LLChannelManager::getInstance()->findChannelByID(LLUUID(gSavedSettings.getString("NearByChatChannelUUID")));
- if(chat_channel)
- {
- chat_channel->removeToastsFromChannel();
- }
+ removeScreenChat();
}
LLPanel::setVisible(visible);
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index 5ef584c8ff..7c5975cbc5 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -37,8 +37,7 @@ class LLChatHistory;
class LLNearbyChat: public LLPanel
{
public:
- LLNearbyChat();
- ~LLNearbyChat();
+ LLNearbyChat(const Params& p = LLPanel::getDefaultParams());
BOOL postBuild ();
@@ -63,13 +62,14 @@ public:
void loadHistory();
static LLNearbyChat* getInstance();
+ void removeScreenChat();
private:
void getAllowedRect (LLRect& rect);
void onNearbySpeakers ();
-
+
private:
LLHandle<LLView> mPopupMenuHandle;
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index 4674c85324..c612b14256 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -47,6 +47,7 @@
#include "llviewerwindow.h"
#include "llrootview.h"
#include "llviewerchat.h"
+#include "llnearbychat.h"
#include "llresizehandle.h"
@@ -401,11 +402,13 @@ void LLNearbyChatBar::onToggleNearbyChatPanel()
void LLNearbyChatBar::setMinimized(BOOL b)
{
- if (b != LLFloater::isMinimized())
+ LLNearbyChat* nearby_chat = getChild<LLNearbyChat>("nearby_chat");
+ // when unminimizing with nearby chat visible, go ahead and kill off screen chats
+ if (!b && nearby_chat->getVisible())
{
- LLFloater::setMinimized(b);
- getChildView("nearby_chat")->setVisible(!b);
+ nearby_chat->removeScreenChat();
}
+ LLFloater::setMinimized(b);
}
void LLNearbyChatBar::onChatBoxCommit()
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index e62227fa3c..9d8d1be0f5 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -190,6 +190,7 @@
#include "lllogin.h"
#include "llevents.h"
#include "llstartuplistener.h"
+#include "lltoolbarview.h"
#if LL_WINDOWS
#include "lldxhardware.h"
@@ -2091,7 +2092,12 @@ void login_show()
#else
BOOL bUseDebugLogin = TRUE;
#endif
-
+ // Hide the toolbars: may happen to come back here if login fails after login agent but before login in region
+ if (gToolBarView)
+ {
+ gToolBarView->setVisible(FALSE);
+ }
+
LLPanelLogin::show( gViewerWindow->getWindowRectScaled(),
bUseDebugLogin || gSavedSettings.getBOOL("SecondLifeEnterprise"),
login_callback, NULL );
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 6fcbc401af..e23ba0faf7 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1789,17 +1789,13 @@ void LLViewerWindow::initBase()
mLoginPanelHolder = main_view->getChild<LLView>("login_panel_holder")->getHandle();
// Create the toolbar view
- // *TODO: Eventually, suppress the existence of this debug setting and turn toolbar FUI on permanently
- if (gSavedSettings.getBOOL("DebugToolbarFUI"))
- {
- // Get a pointer to the toolbar view holder
- LLPanel* panel_holder = main_view->getChild<LLPanel>("toolbar_view_holder");
- // Load the toolbar view from file
- gToolBarView = LLUICtrlFactory::getInstance()->createFromFile<LLToolBarView>("panel_toolbar_view.xml", panel_holder, LLDefaultChildRegistry::instance());
- gToolBarView->setShape(panel_holder->getLocalRect());
- // Hide the toolbars for the moment: we'll make them visible after logging in world (see LLViewerWindow::initWorldUI())
- gToolBarView->setVisible(FALSE);
- }
+ // Get a pointer to the toolbar view holder
+ LLPanel* panel_holder = main_view->getChild<LLPanel>("toolbar_view_holder");
+ // Load the toolbar view from file
+ gToolBarView = LLUICtrlFactory::getInstance()->createFromFile<LLToolBarView>("panel_toolbar_view.xml", panel_holder, LLDefaultChildRegistry::instance());
+ gToolBarView->setShape(panel_holder->getLocalRect());
+ // Hide the toolbars for the moment: we'll make them visible after logging in world (see LLViewerWindow::initWorldUI())
+ gToolBarView->setVisible(FALSE);
// Constrain floaters to inside the menu and status bar regions.
gFloaterView = main_view->getChild<LLFloaterView>("Floater View");