From 5fe3675564f1c7d8cf13e94f43d32be5ea45940b Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Fri, 29 Apr 2011 15:53:14 -0700 Subject: EXP-761, EXP-758 --- indra/newview/llbottomtray.cpp | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) (limited to 'indra/newview/llbottomtray.cpp') diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 0371b7be71..6d40786b08 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -378,12 +378,13 @@ void LLBottomTray::onChange(EStatusType status, const std::string &channelURI, b } // We have to enable/disable right and left parts of speak button separately (EXT-4648) - mSpeakBtn->setSpeakBtnEnabled(enable); + getChild("speak_btn")->setEnabled(enable); + // skipped to avoid button blinking if (status != STATUS_JOINING && status!= STATUS_LEFT_CHANNEL) { bool voice_status = LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking(); - mSpeakBtn->setFlyoutBtnEnabled(voice_status); + getChild("speak_flyout_btn")->setEnabled(voice_status); if (voice_status) { LLFirstUse::speak(true); @@ -566,17 +567,21 @@ BOOL LLBottomTray::postBuild() setRightMouseDownCallback(boost::bind(&LLBottomTray::showBottomTrayContextMenu,this, _2, _3,_4)); mSpeakPanel = getChild("speak_panel"); - mSpeakBtn = getChild("talk"); - LLHints::registerHintTarget("speak_btn", mSpeakBtn->getHandle()); + mSpeakBtn = findChild("talk"); + if (mSpeakBtn) + { + LLHints::registerHintTarget("speak_btn", mSpeakBtn->getHandle()); + + // Localization tool doesn't understand custom buttons like + mSpeakBtn->setSpeakToolTip( getString("SpeakBtnToolTip") ); + mSpeakBtn->setShowToolTip( getString("VoiceControlBtnToolTip") ); + } // Both parts of speak button should be initially disabled because // it takes some time between logging in to world and connecting to voice channel. - mSpeakBtn->setSpeakBtnEnabled(false); - mSpeakBtn->setFlyoutBtnEnabled(false); + getChild("speak_btn")->setEnabled(false); + getChild("speak_flyout_btn")->setEnabled(false); - // Localization tool doesn't understand custom buttons like - mSpeakBtn->setSpeakToolTip( getString("SpeakBtnToolTip") ); - mSpeakBtn->setShowToolTip( getString("VoiceControlBtnToolTip") ); // Registering Chat Bar to receive Voice client status change notifications. LLVoiceClient::getInstance()->addObserver(this); @@ -872,6 +877,10 @@ void LLBottomTray::draw() getChild("show_help_btn")->setToggleState(help_floater_visible); + bool openmic = LLVoiceClient::getInstance()->getUserPTTState(); + bool voiceenabled = LLVoiceClient::getInstance()->voiceEnabled(); + getChild("speak_btn")->setToggleState(openmic && voiceenabled); + getChild("chat_zone_indicator")->setIsMuted(!voiceenabled); } @@ -1345,7 +1354,11 @@ void LLBottomTray::processShrinkButtons(S32& required_width, S32& buttons_freed_ if (possible_shrink_width > 0) { - mSpeakBtn->setLabelVisible(false); + if (mSpeakBtn) + { + mSpeakBtn->setLabelVisible(false); + } + mSpeakPanel->reshape(panel_width - possible_shrink_width, mSpeakPanel->getRect().getHeight()); required_width += possible_shrink_width; @@ -1442,10 +1455,13 @@ void LLBottomTray::processExtendButtons(S32& available_width) S32 possible_extend_width = panel_max_width - panel_width; if (possible_extend_width >= 0 && possible_extend_width <= available_width + available_width_chiclet) // HACK: this button doesn't change size so possible_extend_width will be 0 - { - mSpeakBtn->setLabelVisible(true); + { + if (mSpeakBtn) + { + mSpeakBtn->setLabelVisible(true); + } + mSpeakPanel->reshape(panel_max_width, mSpeakPanel->getRect().getHeight()); - log(mSpeakBtn, "speak button is extended"); if( available_width > possible_extend_width) { -- cgit v1.3 From efca808b0c95aa2406960cb60a25ab90b14bde90 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 4 May 2011 18:04:09 -0700 Subject: EXP-584 FIXED View button on bottom bar is hidden when launching Basic Viewer with Voice options added back in corrected order in which buttons are collapsed so that they collapse right to left --- indra/newview/llbottomtray.cpp | 16 ++++++++- indra/newview/llbottomtray.h | 42 +++++++++++++--------- .../skins/minimal/xui/en/panel_bottomtray.xml | 8 ++--- 3 files changed, 44 insertions(+), 22 deletions(-) (limited to 'indra/newview/llbottomtray.cpp') diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 0371b7be71..0c34261f74 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -218,7 +218,7 @@ LLBottomTray::LLBottomTray(const LLSD&) mLandingTab(NULL), mCheckForDrag(false) { - // Firstly add ourself to IMSession observers, so we catch session events + // Firstly add our self to IMSession observers, so we catch session events // before chiclets do that. LLIMMgr::getInstance()->addSessionObserver(this); @@ -1539,21 +1539,35 @@ void LLBottomTray::initResizeStateContainers() mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_GESTURES, getChild("gesture_panel"))); mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_MOVEMENT, getChild("movement_panel"))); mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_CAMERA, getChild("cam_panel"))); + mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_DESTINATIONS, getChild("destinations_panel"))); + mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_AVATARS, getChild("avatar_panel"))); mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SNAPSHOT, getChild("snapshot_panel"))); mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_BUILD, getChild("build_btn_panel"))); mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SEARCH, getChild("search_btn_panel"))); mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_WORLD_MAP, getChild("world_map_btn_panel"))); mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_MINI_MAP, getChild("mini_map_btn_panel"))); + mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SPLITTER_1, getChild("splitter_panel_1"))); + mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_PEOPLE, getChild("people_panel"))); + mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_PROFILE, getChild("profile_panel"))); + mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_SPLITTER_2, getChild("splitter_panel_2"))); + mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_HOWTO, getChild("howto_panel"))); // init an order of processed buttons mButtonsProcessOrder.push_back(RS_BUTTON_GESTURES); mButtonsProcessOrder.push_back(RS_BUTTON_MOVEMENT); mButtonsProcessOrder.push_back(RS_BUTTON_CAMERA); + mButtonsProcessOrder.push_back(RS_BUTTON_DESTINATIONS); + mButtonsProcessOrder.push_back(RS_BUTTON_AVATARS); mButtonsProcessOrder.push_back(RS_BUTTON_SNAPSHOT); mButtonsProcessOrder.push_back(RS_BUTTON_BUILD); mButtonsProcessOrder.push_back(RS_BUTTON_SEARCH); mButtonsProcessOrder.push_back(RS_BUTTON_WORLD_MAP); mButtonsProcessOrder.push_back(RS_BUTTON_MINI_MAP); + mButtonsProcessOrder.push_back(RS_BUTTON_SPLITTER_1); + mButtonsProcessOrder.push_back(RS_BUTTON_PEOPLE); + mButtonsProcessOrder.push_back(RS_BUTTON_PROFILE); + mButtonsProcessOrder.push_back(RS_BUTTON_SPLITTER_2); + mButtonsProcessOrder.push_back(RS_BUTTON_HOWTO); mButtonsOrder.push_back(RS_BUTTON_SPEAK); mButtonsOrder.insert(mButtonsOrder.end(), mButtonsProcessOrder.begin(), mButtonsProcessOrder.end()); diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h index 04e5f5e9e0..da7f0772a9 100644 --- a/indra/newview/llbottomtray.h +++ b/indra/newview/llbottomtray.h @@ -144,22 +144,29 @@ public: private: - typedef enum e_resize_status_type + typedef enum e_resize_state { - RS_NORESIZE = 0x0000 - , RS_CHICLET_PANEL = 0x0001 - , RS_CHATBAR_INPUT = 0x0002 - , RS_BUTTON_SNAPSHOT = 0x0004 - , RS_BUTTON_CAMERA = 0x0008 - , RS_BUTTON_MOVEMENT = 0x0010 - , RS_BUTTON_GESTURES = 0x0020 - , RS_BUTTON_SPEAK = 0x0040 - , RS_IM_WELL = 0x0080 - , RS_NOTIFICATION_WELL = 0x0100 - , RS_BUTTON_BUILD = 0x0200 - , RS_BUTTON_SEARCH = 0x0400 - , RS_BUTTON_WORLD_MAP = 0x0800 - , RS_BUTTON_MINI_MAP = 0x1000 + RS_NORESIZE = 0x0000, + RS_CHICLET_PANEL = 0x0001, + RS_CHATBAR_INPUT = 0x0002, + RS_BUTTON_SNAPSHOT = 0x0004, + RS_BUTTON_CAMERA = 0x0008, + RS_BUTTON_MOVEMENT = 0x0010, + RS_BUTTON_GESTURES = 0x0020, + RS_BUTTON_SPEAK = 0x0040, + RS_IM_WELL = 0x0080, + RS_NOTIFICATION_WELL = 0x0100, + RS_BUTTON_BUILD = 0x0200, + RS_BUTTON_SEARCH = 0x0400, + RS_BUTTON_WORLD_MAP = 0x0800, + RS_BUTTON_MINI_MAP = 0x1000, + RS_BUTTON_DESTINATIONS = 0x2000, + RS_BUTTON_AVATARS = 0x4000, + RS_BUTTON_PEOPLE = 0x8000, + RS_BUTTON_PROFILE = 0x10000, + RS_BUTTON_HOWTO = 0x20000, + RS_BUTTON_SPLITTER_1 = 0x40000, + RS_BUTTON_SPLITTER_2 = 0x80000, /* Once new button that can be hidden on resize is added don't forget to update related places: @@ -170,10 +177,11 @@ private: /** * Specifies buttons which can be hidden when bottom tray is shrunk. * They are: Gestures, Movement (Move), Camera (View), Snapshot - * new: Build, Search, Map, World Map, Mini-Map. + * new: Build, Search, Map, World Map, Mini-Map, destinations, avatars */ - , RS_BUTTONS_CAN_BE_HIDDEN = RS_BUTTON_SNAPSHOT | RS_BUTTON_CAMERA | RS_BUTTON_MOVEMENT | RS_BUTTON_GESTURES + RS_BUTTONS_CAN_BE_HIDDEN = RS_BUTTON_SNAPSHOT | RS_BUTTON_CAMERA | RS_BUTTON_MOVEMENT | RS_BUTTON_GESTURES | RS_BUTTON_BUILD | RS_BUTTON_SEARCH | RS_BUTTON_WORLD_MAP | RS_BUTTON_MINI_MAP + | RS_BUTTON_DESTINATIONS | RS_BUTTON_AVATARS }EResizeState; // Below are three methods that were introduced to handle drag'n'drop diff --git a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml index a250f95e4f..afd20187c6 100644 --- a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml @@ -129,7 +129,7 @@ height="28" layout="topleft" min_width="17" - name="splitter_panel" + name="splitter_panel_1" user_resize="false" width="17"> Date: Thu, 5 May 2011 11:11:20 -0700 Subject: Build fix. Added missing cases to a switch statement for bottom tray buttons. Reviewed by Richard. --- indra/newview/llbottomtray.cpp | 46 +++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 18 deletions(-) (limited to 'indra/newview/llbottomtray.cpp') diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index b17f7de57a..189175566e 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -1884,26 +1884,36 @@ S32 LLBottomTray::getChicletPanelShrinkHeadroom() const // static std::string LLBottomTray::resizeStateToString(EResizeState state) { + const char *rs_string = "UNKNOWN_BUTTON"; + switch (state) { - case RS_NORESIZE: return "RS_NORESIZE"; - case RS_CHICLET_PANEL: return "RS_CHICLET_PANEL"; - case RS_CHATBAR_INPUT: return "RS_CHATBAR_INPUT"; - case RS_BUTTON_SNAPSHOT: return "RS_BUTTON_SNAPSHOT"; - case RS_BUTTON_CAMERA: return "RS_BUTTON_CAMERA"; - case RS_BUTTON_MOVEMENT: return "RS_BUTTON_MOVEMENT"; - case RS_BUTTON_GESTURES: return "RS_BUTTON_GESTURES"; - case RS_BUTTON_SPEAK: return "RS_BUTTON_SPEAK"; - case RS_IM_WELL: return "RS_IM_WELL"; - case RS_NOTIFICATION_WELL: return "RS_NOTIFICATION_WELL"; - case RS_BUTTON_BUILD: return "RS_BUTTON_BUILD"; - case RS_BUTTON_SEARCH: return "RS_BUTTON_SEARCH"; - case RS_BUTTON_WORLD_MAP: return "RS_BUTTON_WORLD_MAP"; - case RS_BUTTON_MINI_MAP: return "RS_BUTTON_MINI_MAP"; - case RS_BUTTONS_CAN_BE_HIDDEN: return "RS_BUTTONS_CAN_BE_HIDDEN"; - // No default to track additions. - } - return "UNKNOWN_BUTTON"; + case RS_NORESIZE: rs_string = "RS_NORESIZE"; break; + case RS_CHICLET_PANEL: rs_string = "RS_CHICLET_PANEL"; break; + case RS_CHATBAR_INPUT: rs_string = "RS_CHATBAR_INPUT"; break; + case RS_BUTTON_SNAPSHOT: rs_string = "RS_BUTTON_SNAPSHOT"; break; + case RS_BUTTON_CAMERA: rs_string = "RS_BUTTON_CAMERA"; break; + case RS_BUTTON_MOVEMENT: rs_string = "RS_BUTTON_MOVEMENT"; break; + case RS_BUTTON_GESTURES: rs_string = "RS_BUTTON_GESTURES"; break; + case RS_BUTTON_SPEAK: rs_string = "RS_BUTTON_SPEAK"; break; + case RS_IM_WELL: rs_string = "RS_IM_WELL"; break; + case RS_NOTIFICATION_WELL: rs_string = "RS_NOTIFICATION_WELL"; break; + case RS_BUTTON_BUILD: rs_string = "RS_BUTTON_BUILD"; break; + case RS_BUTTON_SEARCH: rs_string = "RS_BUTTON_SEARCH"; break; + case RS_BUTTON_WORLD_MAP: rs_string = "RS_BUTTON_WORLD_MAP"; break; + case RS_BUTTON_MINI_MAP: rs_string = "RS_BUTTON_MINI_MAP"; break; + case RS_BUTTON_DESTINATIONS: rs_string = "RS_BUTTON_DESTINATIONS"; break; + case RS_BUTTON_AVATARS: rs_string = "RS_BUTTON_AVATARS"; break; + case RS_BUTTON_PEOPLE: rs_string = "RS_BUTTON_PEOPLE"; break; + case RS_BUTTON_PROFILE: rs_string = "RS_BUTTON_PROFILE"; break; + case RS_BUTTON_HOWTO: rs_string = "RS_BUTTON_HOWTO"; break; + case RS_BUTTON_SPLITTER_1: rs_string = "RS_BUTTON_SPLITTER_1"; break; + case RS_BUTTON_SPLITTER_2: rs_string = "RS_BUTTON_SPLITTER_2"; break; + case RS_BUTTONS_CAN_BE_HIDDEN: rs_string = "RS_BUTTONS_CAN_BE_HIDDEN"; break; + // No default to track additions. + } + + return rs_string; } // static -- cgit v1.3 From f0d095086ff5bf2c231bee06064a89a8b6ef4a9b Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 5 May 2011 19:09:06 -0700 Subject: EXP-501 FIX View button on bottom bar is hidden when launching Basic Viewer... ignore button reordering in basic mode use preferred button collapse order --- indra/newview/app_settings/settings.xml | 11 ++++++++ indra/newview/app_settings/settings_minimal.xml | 11 ++++++++ indra/newview/llbottomtray.cpp | 10 +++++--- .../skins/minimal/xui/en/panel_bottomtray.xml | 30 +++++++++++----------- 4 files changed, 44 insertions(+), 18 deletions(-) (limited to 'indra/newview/llbottomtray.cpp') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index f83aa20e10..ac52cff49a 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -12734,5 +12734,16 @@ Value 0 + AllowBottomTrayButtonReordering + + Comment + Allow user to move and hide bottom tray buttons + Persist + 1 + Type + Boolean + Value + 1 + diff --git a/indra/newview/app_settings/settings_minimal.xml b/indra/newview/app_settings/settings_minimal.xml index bb022b7b11..9c6418b1f0 100644 --- a/indra/newview/app_settings/settings_minimal.xml +++ b/indra/newview/app_settings/settings_minimal.xml @@ -457,5 +457,16 @@ Value 1 + AllowBottomTrayButtonReordering + + Comment + Allow user to move and hide bottom tray buttons + Persist + 1 + Type + Boolean + Value + 0 + diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 189175566e..cad00eed14 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -745,6 +745,8 @@ void LLBottomTray::updateButtonsOrdersAfterDnD() void LLBottomTray::saveButtonsOrder() { + if (!gSavedSettings.getBOOL("AllowBottomTrayButtonReordering")) return; + std::string user_dir = gDirUtilp->getLindenUserDir(); if (user_dir.empty()) return; @@ -765,6 +767,8 @@ void LLBottomTray::saveButtonsOrder() void LLBottomTray::loadButtonsOrder() { + if (!gSavedSettings.getBOOL("AllowBottomTrayButtonReordering")) return; + // load per-resident sorting information std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME); @@ -1537,9 +1541,6 @@ void LLBottomTray::initResizeStateContainers() mStateProcessedObjectMap.insert(std::make_pair(RS_BUTTON_HOWTO, getChild("howto_panel"))); // init an order of processed buttons - mButtonsProcessOrder.push_back(RS_BUTTON_GESTURES); - mButtonsProcessOrder.push_back(RS_BUTTON_MOVEMENT); - mButtonsProcessOrder.push_back(RS_BUTTON_CAMERA); mButtonsProcessOrder.push_back(RS_BUTTON_DESTINATIONS); mButtonsProcessOrder.push_back(RS_BUTTON_AVATARS); mButtonsProcessOrder.push_back(RS_BUTTON_SNAPSHOT); @@ -1552,6 +1553,9 @@ void LLBottomTray::initResizeStateContainers() mButtonsProcessOrder.push_back(RS_BUTTON_PROFILE); mButtonsProcessOrder.push_back(RS_BUTTON_SPLITTER_2); mButtonsProcessOrder.push_back(RS_BUTTON_HOWTO); + mButtonsProcessOrder.push_back(RS_BUTTON_MOVEMENT); + mButtonsProcessOrder.push_back(RS_BUTTON_CAMERA); + mButtonsProcessOrder.push_back(RS_BUTTON_GESTURES); mButtonsOrder.push_back(RS_BUTTON_SPEAK); mButtonsOrder.insert(mButtonsOrder.end(), mButtonsProcessOrder.begin(), mButtonsProcessOrder.end()); diff --git a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml index 9c14edb306..237af61717 100644 --- a/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/minimal/xui/en/panel_bottomtray.xml @@ -47,7 +47,7 @@ mouse_opaque="false" name="chat_bar_layout_panel" user_resize="true" - width="308" > + width="312" > + width="26">