summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/llbutton.cpp4
-rw-r--r--indra/llui/llfloater.cpp19
-rw-r--r--indra/llui/llfloater.h3
-rw-r--r--indra/llui/llfloaterreg.cpp16
-rw-r--r--indra/newview/llbottomtray.cpp16
-rw-r--r--indra/newview/llbottomtray.h8
-rw-r--r--indra/newview/llchathistory.cpp2
-rw-r--r--indra/newview/llinventorypanel.cpp21
-rw-r--r--indra/newview/llnearbychat.cpp6
-rw-r--r--indra/newview/llsidetray.cpp5
-rw-r--r--indra/newview/lltoastnotifypanel.cpp8
-rw-r--r--indra/newview/lltoastnotifypanel.h4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_chat.xml2
13 files changed, 71 insertions, 43 deletions
diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index f0f34ebd4f..d51276bf26 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -1117,7 +1117,7 @@ void LLButton::setFloaterToggle(LLUICtrl* ctrl, const LLSD& sdname)
// Get the visibility control name for the floater
std::string vis_control_name = LLFloaterReg::declareVisibilityControl(sdname.asString());
// Set the button control value (toggle state) to the floater visibility control (Sets the value as well)
- button->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
+ button->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
// Set the clicked callback to toggle the floater
button->setClickedCallback(boost::bind(&LLFloaterReg::toggleFloaterInstance, sdname));
}
@@ -1131,7 +1131,7 @@ void LLButton::setDockableFloaterToggle(LLUICtrl* ctrl, const LLSD& sdname)
// Get the visibility control name for the floater
std::string vis_control_name = LLFloaterReg::declareVisibilityControl(sdname.asString());
// Set the button control value (toggle state) to the floater visibility control (Sets the value as well)
- button->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
+ button->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
// Set the clicked callback to toggle the floater
button->setClickedCallback(boost::bind(&LLDockableFloater::toggleInstance, sdname));
}
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 8d24150e1e..c0942cf3c7 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -499,7 +499,7 @@ void LLFloater::storeRectControl()
{
if( mRectControl.size() > 1 )
{
- LLUI::sSettingGroups["floater"]->setRect( mRectControl, getRect() );
+ getControlGroup()->setRect( mRectControl, getRect() );
}
}
@@ -507,7 +507,7 @@ void LLFloater::storeVisibilityControl()
{
if( !sQuitting && mVisibilityControl.size() > 1 )
{
- LLUI::sSettingGroups["floater"]->setBOOL( mVisibilityControl, getVisible() );
+ getControlGroup()->setBOOL( mVisibilityControl, getVisible() );
}
}
@@ -515,7 +515,7 @@ void LLFloater::storeDockStateControl()
{
if( !sQuitting && mDocStateControl.size() > 1 )
{
- LLUI::sSettingGroups["floater"]->setBOOL( mDocStateControl, isDocked() );
+ getControlGroup()->setBOOL( mDocStateControl, isDocked() );
}
}
@@ -525,7 +525,7 @@ LLRect LLFloater::getSavedRect() const
if (mRectControl.size() > 1)
{
- rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl);
+ rect = getControlGroup()->getRect(mRectControl);
}
return rect;
@@ -550,6 +550,13 @@ std::string LLFloater::getControlName(const std::string& name, const LLSD& key)
return ctrl_name;
}
+// static
+LLControlGroup* LLFloater::getControlGroup()
+{
+ // Floater size, position, visibility, etc are saved in per-account settings.
+ return LLUI::sSettingGroups["account"];
+}
+
void LLFloater::setVisible( BOOL visible )
{
LLPanel::setVisible(visible); // calls handleVisibilityChange()
@@ -805,7 +812,7 @@ void LLFloater::applyRectControl()
// override center if we have saved rect control
if (mRectControl.size() > 1)
{
- const LLRect& rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl);
+ const LLRect& rect = getControlGroup()->getRect(mRectControl);
if (rect.getWidth() > 0 && rect.getHeight() > 0)
{
translate( rect.mLeft - getRect().mLeft, rect.mBottom - getRect().mBottom);
@@ -821,7 +828,7 @@ void LLFloater::applyDockState()
{
if (mDocStateControl.size() > 1)
{
- bool dockState = LLUI::sSettingGroups["floater"]->getBOOL(mDocStateControl);
+ bool dockState = getControlGroup()->getBOOL(mDocStateControl);
setDocked(dockState);
}
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index ed1f0715af..5ecf515cf9 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -206,7 +206,8 @@ public:
LLRect getSavedRect() const;
bool hasSavedRect() const;
- static std::string getControlName(const std::string& name, const LLSD& key);
+ static std::string getControlName(const std::string& name, const LLSD& key);
+ static LLControlGroup* getControlGroup();
bool isMinimizeable() const{ return mCanMinimize; }
bool isCloseable() const{ return mCanClose; }
diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp
index ccffe98c96..4720ebb822 100644
--- a/indra/llui/llfloaterreg.cpp
+++ b/indra/llui/llfloaterreg.cpp
@@ -284,9 +284,9 @@ void LLFloaterReg::showInitialVisibleInstances()
{
const std::string& name = iter->first;
std::string controlname = getVisibilityControlName(name);
- if (LLUI::sSettingGroups["floater"]->controlExists(controlname))
+ if (LLFloater::getControlGroup()->controlExists(controlname))
{
- BOOL isvis = LLUI::sSettingGroups["floater"]->getBOOL(controlname);
+ BOOL isvis = LLFloater::getControlGroup()->getBOOL(controlname);
if (isvis)
{
showInstance(name, LLSD()); // keyed floaters shouldn't set save_vis to true
@@ -340,7 +340,7 @@ std::string LLFloaterReg::getRectControlName(const std::string& name)
std::string LLFloaterReg::declareRectControl(const std::string& name)
{
std::string controlname = getRectControlName(name);
- LLUI::sSettingGroups["floater"]->declareRect(controlname, LLRect(),
+ LLFloater::getControlGroup()->declareRect(controlname, LLRect(),
llformat("Window Position and Size for %s", name.c_str()),
TRUE);
return controlname;
@@ -358,7 +358,7 @@ std::string LLFloaterReg::getVisibilityControlName(const std::string& name)
std::string LLFloaterReg::declareVisibilityControl(const std::string& name)
{
std::string controlname = getVisibilityControlName(name);
- LLUI::sSettingGroups["floater"]->declareBOOL(controlname, FALSE,
+ LLFloater::getControlGroup()->declareBOOL(controlname, FALSE,
llformat("Window Visibility for %s", name.c_str()),
TRUE);
return controlname;
@@ -368,7 +368,7 @@ std::string LLFloaterReg::declareVisibilityControl(const std::string& name)
std::string LLFloaterReg::declareDockStateControl(const std::string& name)
{
std::string controlname = getDockStateControlName(name);
- LLUI::sSettingGroups["floater"]->declareBOOL(controlname, TRUE,
+ LLFloater::getControlGroup()->declareBOOL(controlname, TRUE,
llformat("Window Docking state for %s", name.c_str()),
TRUE);
return controlname;
@@ -391,11 +391,11 @@ void LLFloaterReg::registerControlVariables()
for (build_map_t::iterator iter = sBuildMap.begin(); iter != sBuildMap.end(); ++iter)
{
const std::string& name = iter->first;
- if (LLUI::sSettingGroups["floater"]->controlExists(getRectControlName(name)))
+ if (LLFloater::getControlGroup()->controlExists(getRectControlName(name)))
{
declareRectControl(name);
}
- if (LLUI::sSettingGroups["floater"]->controlExists(getVisibilityControlName(name)))
+ if (LLFloater::getControlGroup()->controlExists(getVisibilityControlName(name)))
{
declareVisibilityControl(name);
}
@@ -419,7 +419,7 @@ void LLFloaterReg::initUICtrlToFloaterVisibilityControl(LLUICtrl* ctrl, const LL
// Get the visibility control name for the floater
std::string vis_control_name = LLFloaterReg::declareVisibilityControl(sdname.asString());
// Set the control value to the floater visibility control (Sets the value as well)
- ctrl->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
+ ctrl->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
}
// callback args may use "floatername.key" format
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index f3ade83d00..29f4311ea4 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -67,7 +67,7 @@ BOOL LLBottomtrayButton::handleHover(S32 x, S32 y, MASK mask)
S32 screenX, screenY;
localPointToScreen(x, y, &screenX, &screenY);
// pass hover to bottomtray
- LLBottomTray::getInstance()->handleHover(screenX, screenY, mask);
+ LLBottomTray::getInstance()->onDraggableButtonHover(screenX, screenY);
return FALSE;
}
//virtual
@@ -76,7 +76,7 @@ BOOL LLBottomtrayButton::handleMouseUp(S32 x, S32 y, MASK mask)
S32 screenX, screenY;
localPointToScreen(x, y, &screenX, &screenY);
// pass mouse up to bottomtray
- LLBottomTray::getInstance()->onDraggableButtonMouseUp(this,screenX, screenY, mask);
+ LLBottomTray::getInstance()->onDraggableButtonMouseUp(this, screenX, screenY);
LLButton::handleMouseUp(x, y, mask);
return FALSE;
}
@@ -86,7 +86,7 @@ BOOL LLBottomtrayButton::handleMouseDown(S32 x, S32 y, MASK mask)
S32 screenX, screenY;
localPointToScreen(x, y, &screenX, &screenY);
// pass mouse up to bottomtray
- LLBottomTray::getInstance()->onDraggableButtonMouseDown(this,screenX, screenY, mask);
+ LLBottomTray::getInstance()->onDraggableButtonMouseDown(this, screenX, screenY);
LLButton::handleMouseDown(x, y, mask);
return FALSE;
}
@@ -561,7 +561,7 @@ BOOL LLBottomTray::postBuild()
//Drag-n-drop
-void LLBottomTray::onDraggableButtonMouseDown(LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
+void LLBottomTray::onDraggableButtonMouseDown(LLUICtrl* ctrl, S32 x, S32 y)
{
if (ctrl == NULL) return;
LLView* parent_view = ctrl->getParent();
@@ -607,7 +607,7 @@ LLPanel* LLBottomTray::findChildPanelByLocalCoords(S32 x, S32 y)
return ctrl;
}
-BOOL LLBottomTray::handleHover(S32 x, S32 y, MASK mask)
+void LLBottomTray::onDraggableButtonHover(S32 x, S32 y)
{
// if mouse down on draggable item was done, check whether we should start DnD
if (mCheckForDrag)
@@ -634,8 +634,6 @@ BOOL LLBottomTray::handleHover(S32 x, S32 y, MASK mask)
gViewerWindow->getWindow()->setCursor(UI_CURSOR_NO);
}
}
-
- return TRUE;
}
bool LLBottomTray::isCursorOverDraggableArea(S32 x, S32 y)
@@ -767,7 +765,7 @@ void LLBottomTray::loadButtonsOrder()
mToolbarStack->movePanel(mNearbyChatBar, NULL, true);
}
-void LLBottomTray::onDraggableButtonMouseUp(LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
+void LLBottomTray::onDraggableButtonMouseUp(LLUICtrl* ctrl, S32 x, S32 y)
{
//if mouse up happened over area where drop is possible, change order of buttons
if (mLandingTab != NULL && mDraggedItem != NULL && mDragStarted)
@@ -1526,7 +1524,7 @@ void LLBottomTray::setButtonsControlsAndListeners()
// set control name for Build button. It is not enough to link it with Button.SetFloaterToggle in xml
std::string vis_control_name = LLFloaterReg::declareVisibilityControl("build");
// Set the button control value (toggle state) to the floater visibility control (Sets the value as well)
- build_btn->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
+ build_btn->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
}
bool LLBottomTray::toggleShowButton(LLBottomTray::EResizeState button_type, const LLSD& new_visibility)
diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h
index 14a29895f5..1197c5a10a 100644
--- a/indra/newview/llbottomtray.h
+++ b/indra/newview/llbottomtray.h
@@ -131,10 +131,12 @@ public:
/**
* These three methods handle drag'n'drop, they may be called directly from child buttons.
+ * handleHover and other virtual handle* couldn't be used here, because we should call LLPanel::handle*,
+ * but x and y here are often outside of bottomtray.
*/
- /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);
- void onDraggableButtonMouseDown(LLUICtrl* button, S32 x, S32 y, MASK mask);
- void onDraggableButtonMouseUp(LLUICtrl* button, S32 x, S32 y, MASK mask);
+ void onDraggableButtonHover(S32 x, S32 y);
+ void onDraggableButtonMouseDown(LLUICtrl* button, S32 x, S32 y);
+ void onDraggableButtonMouseUp(LLUICtrl* button, S32 x, S32 y);
private:
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 1f67a659bd..dfb1db523d 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -760,7 +760,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
if (notification != NULL)
{
LLIMToastNotifyPanel* notify_box = new LLIMToastNotifyPanel(
- notification, chat.mSessionID);
+ notification, chat.mSessionID, LLRect::null, !use_plain_text_chat_history);
//we can't set follows in xml since it broke toasts behavior
notify_box->setFollowsLeft();
notify_box->setFollowsRight();
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 820520df9e..50adae09c0 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -916,6 +916,8 @@ BOOL is_inventorysp_active()
// static
LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
{
+ S32 z_min = S32_MAX;
+ LLInventoryPanel* res = NULL;
// A. If the inventory side panel is open, use that preferably.
if (is_inventorysp_active())
{
@@ -925,11 +927,26 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
return inventorySP->getActivePanel();
}
}
+ // or if it is in floater undocked from sidetray get it and remember z order of floater to later compare it
+ // with other inventory floaters order.
+ else if (!LLSideTray::getInstance()->isTabAttached("sidebar_inventory"))
+ {
+ LLSidepanelInventory *inventorySP =
+ dynamic_cast<LLSidepanelInventory *>(LLSideTray::getInstance()->getPanel("sidepanel_inventory"));
+ LLFloater* inv_floater = LLFloaterReg::findInstance("side_bar_tab", LLSD("sidebar_inventory"));
+ if (inventorySP && inv_floater)
+ {
+ res = inventorySP->getActivePanel();
+ z_min = gFloaterView->getZOrder(inv_floater);
+ }
+ else
+ {
+ llwarns << "Inventory tab is detached from sidetray, but either panel or floater were not found!" << llendl;
+ }
+ }
// B. Iterate through the inventory floaters and return whichever is on top.
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
- S32 z_min = S32_MAX;
- LLInventoryPanel* res = NULL;
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
{
LLFloaterInventory* iv = dynamic_cast<LLFloaterInventory*>(*iter);
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 5f71d7100b..28aea7ae3d 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -115,7 +115,7 @@ void LLNearbyChat::applySavedVariables()
{
if (mRectControl.size() > 1)
{
- const LLRect& rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl);
+ const LLRect& rect = LLFloater::getControlGroup()->getRect(mRectControl);
if(!rect.isEmpty() && rect.isValid())
{
reshape(rect.getWidth(), rect.getHeight());
@@ -124,7 +124,7 @@ void LLNearbyChat::applySavedVariables()
}
- if(!LLUI::sSettingGroups["floater"]->controlExists(mDocStateControl))
+ if(!LLFloater::getControlGroup()->controlExists(mDocStateControl))
{
setDocked(true);
}
@@ -132,7 +132,7 @@ void LLNearbyChat::applySavedVariables()
{
if (mDocStateControl.size() > 1)
{
- bool dockState = LLUI::sSettingGroups["floater"]->getBOOL(mDocStateControl);
+ bool dockState = LLFloater::getControlGroup()->getBOOL(mDocStateControl);
setDocked(dockState);
}
}
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index 1d32b58948..88e37b815f 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -314,6 +314,7 @@ void LLSideTrayTab::undock(LLFloater* floater_tab)
floater_tab->addChild(this);
floater_tab->setTitle(mTabTitle);
+ floater_tab->setName(getName());
// Reshape the floater if needed.
LLRect floater_rect;
@@ -998,9 +999,9 @@ void LLSideTray::detachTabs()
std::string floater_ctrl_name = LLFloater::getControlName("side_bar_tab", LLSD(tab->getName()));
std::string vis_ctrl_name = LLFloaterReg::getVisibilityControlName(floater_ctrl_name);
- if (!LLUI::sSettingGroups["floater"]->controlExists(vis_ctrl_name)) continue;
+ if (!LLFloater::getControlGroup()->controlExists(vis_ctrl_name)) continue;
- bool is_visible = LLUI::sSettingGroups["floater"]->getBOOL(vis_ctrl_name);
+ bool is_visible = LLFloater::getControlGroup()->getBOOL(vis_ctrl_name);
if (!is_visible) continue;
llassert(isTabAttached(tab->getName()));
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index 56f71dc43e..7163073de4 100644
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -52,7 +52,7 @@ const LLFontGL* LLToastNotifyPanel::sFontSmall = NULL;
LLToastNotifyPanel::button_click_signal_t LLToastNotifyPanel::sButtonClickSignal;
-LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification, const LLRect& rect) :
+LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification, const LLRect& rect, bool show_images) :
LLToastPanel(notification),
mTextBox(NULL),
mUserInputBox(NULL),
@@ -146,6 +146,7 @@ mCloseNotificationOnDestroy(true)
mTextBox->setMaxTextLength(MAX_LENGTH);
mTextBox->setVisible(TRUE);
+ mTextBox->setPlainText(!show_images);
mTextBox->setValue(notification->getMessage());
mUserInputBox = getChild<LLTextEditor>("user_input_box");
@@ -565,8 +566,9 @@ void LLToastNotifyPanel::disableRespondedOptions(LLNotificationPtr& notification
//////////////////////////////////////////////////////////////////////////
-LLIMToastNotifyPanel::LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect /* = LLRect::null */)
- : mSessionID(session_id), LLToastNotifyPanel(pNotification, rect)
+LLIMToastNotifyPanel::LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect /* = LLRect::null */,
+ bool show_images /* = true */)
+ : mSessionID(session_id), LLToastNotifyPanel(pNotification, rect, show_images)
{
mTextBox->setFollowsAll();
}
diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h
index f90fca3eaa..06f6767ccd 100644
--- a/indra/newview/lltoastnotifypanel.h
+++ b/indra/newview/lltoastnotifypanel.h
@@ -60,7 +60,7 @@ public:
* @deprecated if you intend to instantiate LLToastNotifyPanel - it's point to
* implement right class for desired toast panel. @see LLGenericTipPanel as example.
*/
- LLToastNotifyPanel(LLNotificationPtr& pNotification, const LLRect& rect = LLRect::null);
+ LLToastNotifyPanel(LLNotificationPtr& pNotification, const LLRect& rect = LLRect::null, bool show_images = true);
virtual ~LLToastNotifyPanel();
LLPanel * getControlPanel() { return mControlPanel; }
@@ -139,7 +139,7 @@ class LLIMToastNotifyPanel : public LLToastNotifyPanel
{
public:
- LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect = LLRect::null);
+ LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect = LLRect::null, bool show_images = true);
~LLIMToastNotifyPanel();
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
index dd76b5d558..15ed86460d 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
@@ -62,7 +62,7 @@
</text>
<combo_box name="translate_language_combobox">
<combo_box.item name="System Default Language" label="Choix par défaut" />
- <combo_box.item name="English" label="English (Anglais" />
+ <combo_box.item name="English" label="English (Anglais)" />
<combo_box.item name="Danish" label="Dansk (Danois)" />
<combo_box.item name="German" label="Deutsch (Allemand)" />
<combo_box.item name="Spanish" label="Español (Espagnol)" />