summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authormaksymsproductengine <maksymsproductengine@lindenlab.com>2013-02-04 19:11:17 +0200
committermaksymsproductengine <maksymsproductengine@lindenlab.com>2013-02-04 19:11:17 +0200
commit85f7f43069ea7ea47b4461fa1d7700339985ab35 (patch)
tree9f8c629c9f0f87ee25255e44453e036dcb5641b8 /indra
parent5d8c9902767ec5a81b002694d5520a29f3af03fe (diff)
CHUI-695 FIXED Viewer crashes after attempt to accept a friendship in IM
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/lltoastnotifypanel.cpp142
-rw-r--r--indra/newview/lltoastpanel.cpp4
-rw-r--r--indra/newview/skins/default/xui/en/panel_notification.xml2
3 files changed, 14 insertions, 134 deletions
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index 0aab514531..bd6c42d474 100644
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -223,104 +223,6 @@ void LLToastNotifyPanel::adjustPanelForTipNotice()
}
}
-//typedef std::set<std::string> button_name_set_t;
-//typedef std::map<std::string, button_name_set_t> disable_button_map_t;
-//
-//disable_button_map_t initUserGiveItemDisableButtonMap()
-//{
-// // see EXT-5905 for disable rules
-//
-// disable_button_map_t disable_map;
-// button_name_set_t buttons;
-//
-// buttons.insert("Show");
-// disable_map.insert(std::make_pair("Show", buttons));
-//
-// buttons.insert("Discard");
-// disable_map.insert(std::make_pair("Discard", buttons));
-//
-// buttons.insert("Mute");
-// disable_map.insert(std::make_pair("Mute", buttons));
-//
-// return disable_map;
-//}
-//
-//disable_button_map_t initTeleportOfferedDisableButtonMap()
-//{
-// disable_button_map_t disable_map;
-// button_name_set_t buttons;
-//
-// buttons.insert("Teleport");
-// buttons.insert("Cancel");
-//
-// disable_map.insert(std::make_pair("Teleport", buttons));
-// disable_map.insert(std::make_pair("Cancel", buttons));
-//
-// return disable_map;
-//}
-//
-//disable_button_map_t initFriendshipOfferedDisableButtonMap()
-//{
-// disable_button_map_t disable_map;
-// button_name_set_t buttons;
-//
-// buttons.insert("Accept");
-// buttons.insert("Decline");
-//
-// disable_map.insert(std::make_pair("Accept", buttons));
-// disable_map.insert(std::make_pair("Decline", buttons));
-//
-// return disable_map;
-//}
-//
-//button_name_set_t getButtonDisableList(const std::string& notification_name, const std::string& button_name)
-//{
-// static disable_button_map_t user_give_item_disable_map = initUserGiveItemDisableButtonMap();
-// static disable_button_map_t teleport_offered_disable_map = initTeleportOfferedDisableButtonMap();
-// static disable_button_map_t friendship_offered_disable_map = initFriendshipOfferedDisableButtonMap();
-//
-// disable_button_map_t::const_iterator it;
-// disable_button_map_t::const_iterator it_end;
-// disable_button_map_t search_map;
-//
-// if("UserGiveItem" == notification_name)
-// {
-// search_map = user_give_item_disable_map;
-// }
-// else if("TeleportOffered" == notification_name)
-// {
-// search_map = teleport_offered_disable_map;
-// }
-// else if("OfferFriendship" == notification_name)
-// {
-// search_map = friendship_offered_disable_map;
-// }
-//
-// it = search_map.find(button_name);
-// it_end = search_map.end();
-//
-// if(it_end != it)
-// {
-// return it->second;
-// }
-// return button_name_set_t();
-//}
-
-//void LLToastNotifyPanel::disableButtons(const std::string& notification_name, const std::string& selected_button)
-//{
- //button_name_set_t buttons = getButtonDisableList(notification_name, selected_button);
-
- //std::vector<index_button_pair_t>::const_iterator it = mButtons.begin();
- //for ( ; it != mButtons.end(); it++)
- //{
- // LLButton* btn = it->second;
- // if(buttons.find(btn->getName()) != buttons.end())
- // {
- // btn->setEnabled(FALSE);
- // }
- //}
-//}
-
// static
void LLToastNotifyPanel::onClickButton(void* data)
{
@@ -352,7 +254,17 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
mNumButtons = 0;
mAddedDefaultBtn = false;
- buildFromFile( "panel_notification.xml");
+ LLRect current_rect = getRect();
+
+ setXMLFilename("");
+ buildFromFile("panel_notification.xml");
+
+ // reshape the panel to its previous size
+ if (current_rect.notEmpty())
+ {
+ reshape(current_rect.getWidth(), current_rect.getHeight());
+ }
+
if(rect != LLRect::null)
{
this->setShape(rect);
@@ -491,37 +403,9 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
}
}
- // adjust panel's height to the text size
- mInfoPanel->setFollowsAll();
snapToMessageHeight(mTextBox, MAX_LENGTH);
}
-
-
-//void LLToastNotifyPanel::onToastPanelButtonClicked(const LLUUID& notification_id, const std::string btn_name)
-//{
-// if(mNotification->getID() == notification_id)
-// {
-// disableButtons(mNotification->getName(), btn_name);
-// }
-//}
-
-//void LLToastNotifyPanel::disableRespondedOptions(const LLNotificationPtr& notification)
-//{
-// LLSD response = notification->getResponse();
-// for (LLSD::map_const_iterator response_it = response.beginMap();
-// response_it != response.endMap(); ++response_it)
-// {
-// if (response_it->second.isBoolean() && response_it->second.asBoolean())
-// {
-// // that after multiple responses there can be many pressed buttons
-// // need to process them all
-// disableButtons(notification->getName(), response_it->first);
-// }
-// }
-//}
-
-
//////////////////////////////////////////////////////////////////////////
LLIMToastNotifyPanel::LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect /* = LLRect::null */,
@@ -538,13 +422,12 @@ LLIMToastNotifyPanel::~LLIMToastNotifyPanel()
void LLIMToastNotifyPanel::reshape(S32 width, S32 height, BOOL called_from_parent /* = TRUE */)
{
+ LLToastPanel::reshape(width, height, called_from_parent);
snapToMessageHeight(mTextBox, MAX_LENGTH);
}
void LLIMToastNotifyPanel::compactButtons()
{
- mTextBox->setFollowsAll();
-
//we can't set follows in xml since it broke toasts behavior
setFollows(FOLLOWS_LEFT|FOLLOWS_RIGHT|FOLLOWS_TOP);
@@ -590,6 +473,5 @@ void LLIMToastNotifyPanel::init( LLRect rect, bool show_images )
compactButtons();
}
-
// EOF
diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp
index 54d3912136..187aee207c 100644
--- a/indra/newview/lltoastpanel.cpp
+++ b/indra/newview/lltoastpanel.cpp
@@ -81,9 +81,7 @@ void LLToastPanel::snapToMessageHeight(LLTextBase* message, S32 maxLineCount)
S32 newTextHeight = llmin(requiredTextHeight, maxTextHeight);
heightDelta = newTextHeight - oldTextHeight;
- S32 new_panel_height = llmin(
- llmax(getRect().getHeight() + heightDelta, MIN_PANEL_HEIGHT),
- maxTextHeight);
+ S32 new_panel_height = llmax(getRect().getHeight() + heightDelta, MIN_PANEL_HEIGHT);
//reshape the panel with new height
if (new_panel_height != getRect().getHeight())
diff --git a/indra/newview/skins/default/xui/en/panel_notification.xml b/indra/newview/skins/default/xui/en/panel_notification.xml
index 94c468e1bb..421ecf10a1 100644
--- a/indra/newview/skins/default/xui/en/panel_notification.xml
+++ b/indra/newview/skins/default/xui/en/panel_notification.xml
@@ -22,7 +22,7 @@
background_visible="true"
bg_alpha_color="ToastBackground"
bg_opaque_color="ToastBackground"
- follows="left|right|top"
+ follows="all"
height="100"
label="info_panel"
layout="topleft"