From b147d659dc0c94a972f1c82f16536b374ee10c19 Mon Sep 17 00:00:00 2001 From: pavelk_productengine <pavelkproductengine@lindenlab.com> Date: Tue, 17 Mar 2015 18:26:28 +0200 Subject: [PATCH] MAINT-4734 (Separate transaction notices from group notice/invites) 1) stripped off attachment field; 2) made logos (group's, sender's, etc) in expanded view the same size as in condensed view; 3) turned on notification showing upon click; 4) fixed cropped right border of Invite and Transactions notifications; 5) enabled "Collapse All" button; 6) stripped off unnecessary icons. --- indra/newview/llavatariconctrl.cpp | 1 + indra/newview/llchannelmanager.cpp | 3 +- indra/newview/llchiclet.cpp | 6 +- indra/newview/llchicletbar.cpp | 3 +- .../newview/llfloaternotificationstabbed.cpp | 93 +++++++---- indra/newview/llfloaternotificationstabbed.h | 29 ++-- indra/newview/llgroupiconctrl.cpp | 2 +- indra/newview/llnotificationlistitem.cpp | 152 +++++++----------- indra/newview/llnotificationlistitem.h | 78 +++++---- indra/newview/llnotificationlistview.cpp | 4 +- indra/newview/llnotificationlistview.h | 10 +- indra/newview/llsyswellitem.cpp | 5 +- indra/newview/llsyswellitem.h | 2 - indra/newview/llsyswellwindow.cpp | 152 ------------------ indra/newview/llsyswellwindow.h | 51 ------ indra/newview/llviewerfloaterreg.cpp | 4 +- indra/newview/llviewermessage.cpp | 1 + .../textures/icons/Icon_Group_Large.png | Bin 12280 -> 0 bytes .../textures/icons/Icon_Group_Small.png | Bin 4473 -> 0 bytes .../icons/Incoming_Transaction_Large.png | Bin 4939 -> 0 bytes .../icons/Incoming_Transaction_Small.png | Bin 1666 -> 0 bytes .../icons/Outcoming_Transaction_Large.png | Bin 4662 -> 0 bytes .../icons/Outcoming_Transaction_Small.png | Bin 1322 -> 0 bytes .../skins/default/textures/textures.xml | 16 +- .../xui/en/floater_notifications_tabbed.xml | 50 +----- .../skins/default/xui/en/floater_sys_well.xml | 4 - .../default/xui/en/language_settings.xml | 2 +- .../skins/default/xui/en/menu_login.xml | 2 +- .../xui/en/panel_notification_list_item.xml | 37 ++--- 29 files changed, 214 insertions(+), 493 deletions(-) delete mode 100644 indra/newview/skins/default/textures/icons/Icon_Group_Large.png delete mode 100644 indra/newview/skins/default/textures/icons/Icon_Group_Small.png delete mode 100644 indra/newview/skins/default/textures/icons/Incoming_Transaction_Large.png delete mode 100644 indra/newview/skins/default/textures/icons/Incoming_Transaction_Small.png delete mode 100644 indra/newview/skins/default/textures/icons/Outcoming_Transaction_Large.png delete mode 100644 indra/newview/skins/default/textures/icons/Outcoming_Transaction_Small.png diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp index 746b541f9d2..d7c959ccd61 100755 --- a/indra/newview/llavatariconctrl.cpp +++ b/indra/newview/llavatariconctrl.cpp @@ -311,6 +311,7 @@ bool LLAvatarIconCtrl::updateFromCache() else { LLIconCtrl::setValue(mDefaultIconName); + return false; } return true; diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp index 49a71b0018a..d6240838b6e 100755 --- a/indra/newview/llchannelmanager.cpp +++ b/indra/newview/llchannelmanager.cpp @@ -132,8 +132,7 @@ void LLChannelManager::onLoginCompleted() S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth"); mStartUpChannel->init(channel_right_bound - channel_width, channel_right_bound); - //mStartUpChannel->setMouseDownCallback(boost::bind(&LLNotificationWellWindow::onStartUpToastClick, LLNotificationWellWindow::getInstance(), _2, _3, _4)); - mStartUpChannel->setMouseDownCallback(boost::bind(&LLFloaterNotificationsTabbed::onStartUpToastClick, LLFloaterNotificationsTabbed::getInstance(), _2, _3, _4)); + mStartUpChannel->setMouseDownCallback(boost::bind(&LLFloaterNotificationsTabbed::onStartUpToastClick, LLFloaterNotificationsTabbed::getInstance(), _2, _3, _4)); mStartUpChannel->setCommitCallback(boost::bind(&LLChannelManager::onStartUpToastClose, this)); mStartUpChannel->createStartUpToast(away_notifications, gSavedSettings.getS32("StartUpToastLifeTime")); diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index 33cb0551b4a..ce8878b8490 100755 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -166,8 +166,7 @@ LLNotificationChiclet::LLNotificationChiclet(const Params& p) mNotificationChannel.reset(new ChicletNotificationChannel(this)); // ensure that notification well window exists, to synchronously // handle toast add/delete events. - //LLNotificationWellWindow::getInstance()->setSysWellChiclet(this); - LLFloaterNotificationsTabbed::getInstance()->setSysWellChiclet(this); + LLFloaterNotificationsTabbed::getInstance()->setSysWellChiclet(this); } void LLNotificationChiclet::onMenuItemClicked(const LLSD& user_data) @@ -175,8 +174,7 @@ void LLNotificationChiclet::onMenuItemClicked(const LLSD& user_data) std::string action = user_data.asString(); if("close all" == action) { - //LLNotificationWellWindow::getInstance()->closeAll(); - LLFloaterNotificationsTabbed::getInstance()->closeAll(); + LLFloaterNotificationsTabbed::getInstance()->closeAll(); LLIMWellWindow::getInstance()->closeAll(); } } diff --git a/indra/newview/llchicletbar.cpp b/indra/newview/llchicletbar.cpp index 45510d08243..8d1a8c58f3f 100755 --- a/indra/newview/llchicletbar.cpp +++ b/indra/newview/llchicletbar.cpp @@ -60,8 +60,7 @@ BOOL LLChicletBar::postBuild() mToolbarStack = getChild<LLLayoutStack>("toolbar_stack"); mChicletPanel = getChild<LLChicletPanel>("chiclet_list"); - //showWellButton("notification_well", !LLNotificationWellWindow::getInstance()->isWindowEmpty()); - showWellButton("notification_well", !LLFloaterNotificationsTabbed::getInstance()->isWindowEmpty()); + showWellButton("notification_well", !LLFloaterNotificationsTabbed::getInstance()->isWindowEmpty()); LLPanelTopInfoBar::instance().setResizeCallback(boost::bind(&LLChicletBar::fitWithTopInfoBar, this)); LLPanelTopInfoBar::instance().setVisibleCallback(boost::bind(&LLChicletBar::fitWithTopInfoBar, this)); diff --git a/indra/newview/llfloaternotificationstabbed.cpp b/indra/newview/llfloaternotificationstabbed.cpp index b05ea6aa384..05a0af01ce3 100644 --- a/indra/newview/llfloaternotificationstabbed.cpp +++ b/indra/newview/llfloaternotificationstabbed.cpp @@ -1,9 +1,9 @@ /** * @file llfloaternotificationstabbed.cpp * @brief - * $LicenseInfo:firstyear=2000&license=viewerlgpl$ + * $LicenseInfo:firstyear=2015&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. + * Copyright (C) 2015, Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -51,7 +51,7 @@ LLFloaterNotificationsTabbed::LLFloaterNotificationsTabbed(const LLSD& key) : LL mIsReshapedByUser(false) { - setOverlapsScreenChannel(true); + setOverlapsScreenChannel(true); mNotificationUpdates.reset(new NotificationTabbedChannel(this)); mNotificationsSeparator = new LLNotificationSeparator(); } @@ -70,12 +70,15 @@ BOOL LLFloaterNotificationsTabbed::postBuild() mDeleteAllBtn = getChild<LLButton>("delete_all_button"); mDeleteAllBtn->setClickedCallback(boost::bind(&LLFloaterNotificationsTabbed::onClickDeleteAllBtn,this)); + mCollapseAllBtn = getChild<LLButton>("collapse_all_button"); + mCollapseAllBtn->setClickedCallback(boost::bind(&LLFloaterNotificationsTabbed::onClickCollapseAllBtn,this)); + // get a corresponding channel initChannel(); BOOL rv = LLTransientDockableFloater::postBuild(); setTitle(getString("title_notification_tabbed_window")); - return rv; + return rv; } //--------------------------------------------------------------------------------- @@ -98,6 +101,7 @@ void LLFloaterNotificationsTabbed::onStartUpToastClick(S32 x, S32 y, MASK mask) setVisible(TRUE); } +//--------------------------------------------------------------------------------- void LLFloaterNotificationsTabbed::setSysWellChiclet(LLSysWellChiclet* chiclet) { mSysWellChiclet = chiclet; @@ -208,29 +212,6 @@ void LLFloaterNotificationsTabbed::setDocked(bool docked, bool pop_on_undock) //--------------------------------------------------------------------------------- void LLFloaterNotificationsTabbed::reshapeWindow() { - // save difference between floater height and the list height to take it into account while calculating new window height - // it includes height from floater top to list top and from floater bottom and list bottom - //static S32 parent_list_delta_height = getRect().getHeight() - mInviteMessageList->getRect().getHeight(); - - //if (!mIsReshapedByUser) // Don't reshape Well window, if it ever was reshaped by user. See EXT-5715. - //{ - // S32 notif_list_height = mInviteMessageList->getItemsRect().getHeight() + 2 * mInviteMessageList->getBorderWidth(); - - // LLRect curRect = getRect(); - - // S32 new_window_height = notif_list_height + parent_list_delta_height; - - // if (new_window_height > MAX_WINDOW_HEIGHT) - // { - // new_window_height = MAX_WINDOW_HEIGHT; - // } - // S32 newWidth = curRect.getWidth() < MIN_WINDOW_WIDTH ? MIN_WINDOW_WIDTH : curRect.getWidth(); - - // curRect.setLeftTopAndSize(curRect.mLeft, curRect.mTop, newWidth, new_window_height); - // reshape(curRect.getWidth(), curRect.getHeight(), TRUE); - // setRect(curRect); - //} - // update notification channel state // update on a window reshape is important only when a window is visible and docked if(mChannel && getVisible() && isDocked()) @@ -245,8 +226,9 @@ bool LLFloaterNotificationsTabbed::isWindowEmpty() return mNotificationsSeparator->size() == 0; } +//--------------------------------------------------------------------------------- LLFloaterNotificationsTabbed::NotificationTabbedChannel::NotificationTabbedChannel(LLFloaterNotificationsTabbed* notifications_tabbed_window) - : LLNotificationChannel(LLNotificationChannel::Params().name(notifications_tabbed_window->getPathname())), + : LLNotificationChannel(LLNotificationChannel::Params().name(notifications_tabbed_window->getPathname())), mNotificationsTabbedWindow(notifications_tabbed_window) { connectToChannel("Notifications"); @@ -255,11 +237,13 @@ LLFloaterNotificationsTabbed::NotificationTabbedChannel::NotificationTabbedChann } // static +//--------------------------------------------------------------------------------- LLFloaterNotificationsTabbed* LLFloaterNotificationsTabbed::getInstance(const LLSD& key /*= LLSD()*/) { return LLFloaterReg::getTypedInstance<LLFloaterNotificationsTabbed>("notification_well_window", key); } +//--------------------------------------------------------------------------------- void LLFloaterNotificationsTabbed::updateNotificationCounter(S32 panelIndex, S32 counterValue, std::string stringName) { LLStringUtil::format_map_t string_args; @@ -268,6 +252,7 @@ void LLFloaterNotificationsTabbed::updateNotificationCounter(S32 panelIndex, S32 mNotificationsTabContainer->setPanelTitle(panelIndex, label); } +//--------------------------------------------------------------------------------- void LLFloaterNotificationsTabbed::updateNotificationCounters() { updateNotificationCounter(0, mSystemMessageList->size(), "system_tab_title"); @@ -304,6 +289,7 @@ void LLFloaterNotificationsTabbed::addItem(LLNotificationListItem::Params p) } } +//--------------------------------------------------------------------------------- void LLFloaterNotificationsTabbed::closeAll() { // Need to clear notification channel, to add storable toasts into the list. @@ -319,11 +305,8 @@ void LLFloaterNotificationsTabbed::closeAll() } //--------------------------------------------------------------------------------- -void LLFloaterNotificationsTabbed::closeAllOnCurrentTab() +void LLFloaterNotificationsTabbed::getAllItemsOnCurrentTab(std::vector<LLPanel*>& items) const { - // Need to clear notification channel, to add storable toasts into the list. - clearScreenChannels(); - std::vector<LLPanel*> items; switch (mNotificationsTabContainer->getCurrentPanelIndex()) { case 0: @@ -336,8 +319,17 @@ void LLFloaterNotificationsTabbed::closeAllOnCurrentTab() mInviteMessageList->getItems(items); break; default: - return; + break; } +} + +//--------------------------------------------------------------------------------- +void LLFloaterNotificationsTabbed::closeAllOnCurrentTab() +{ + // Need to clear notification channel, to add storable toasts into the list. + clearScreenChannels(); + std::vector<LLPanel*> items; + getAllItemsOnCurrentTab(items); std::vector<LLPanel*>::iterator iter = items.begin(); for (; iter != items.end(); ++iter) { @@ -347,6 +339,20 @@ void LLFloaterNotificationsTabbed::closeAllOnCurrentTab() } } +//--------------------------------------------------------------------------------- +void LLFloaterNotificationsTabbed::collapseAllOnCurrentTab() +{ + std::vector<LLPanel*> items; + getAllItemsOnCurrentTab(items); + std::vector<LLPanel*>::iterator iter = items.begin(); + for (; iter != items.end(); ++iter) + { + LLNotificationListItem* notify_item = dynamic_cast<LLNotificationListItem*>(*iter); + if (notify_item) + notify_item->setExpanded(FALSE); + } +} + //--------------------------------------------------------------------------------- void LLFloaterNotificationsTabbed::clearScreenChannels() { @@ -375,6 +381,8 @@ void LLFloaterNotificationsTabbed::onStoreToast(LLPanel* info_panel, LLUUID id) p.group_id = payload["group_id"]; p.sender = payload["name"].asString(); p.time_stamp = notify->getDate(); + p.paid_from_id = payload["from_id"]; + p.paid_to_id = payload["dest_id"]; addItem(p); } @@ -403,22 +411,32 @@ void LLFloaterNotificationsTabbed::onItemClose(LLNotificationListItem* item) } +//--------------------------------------------------------------------------------- void LLFloaterNotificationsTabbed::onAdd( LLNotificationPtr notify ) { removeItemByID(notify->getID(), notify->getName()); } +//--------------------------------------------------------------------------------- void LLFloaterNotificationsTabbed::onClickDeleteAllBtn() { closeAllOnCurrentTab(); } +//--------------------------------------------------------------------------------- +void LLFloaterNotificationsTabbed::onClickCollapseAllBtn() +{ + collapseAllOnCurrentTab(); +} + +//--------------------------------------------------------------------------------- void LLNotificationSeparator::initTaggedList(const std::string& tag, LLNotificationListView* list) { mNotificationListMap.insert(notification_list_map_t::value_type(tag, list)); mNotificationLists.push_back(list); } +//--------------------------------------------------------------------------------- void LLNotificationSeparator::initTaggedList(const std::set<std::string>& tags, LLNotificationListView* list) { std::set<std::string>::const_iterator it = tags.begin(); @@ -428,11 +446,13 @@ void LLNotificationSeparator::initTaggedList(const std::set<std::string>& tags, } } +//--------------------------------------------------------------------------------- void LLNotificationSeparator::initUnTaggedList(LLNotificationListView* list) { mUnTaggedList = list; } +//--------------------------------------------------------------------------------- bool LLNotificationSeparator::addItem(std::string& tag, LLNotificationListItem* item) { notification_list_map_t::iterator it = mNotificationListMap.find(tag); @@ -447,6 +467,7 @@ bool LLNotificationSeparator::addItem(std::string& tag, LLNotificationListItem* return false; } +//--------------------------------------------------------------------------------- bool LLNotificationSeparator::removeItemByID(std::string& tag, const LLUUID& id) { notification_list_map_t::iterator it = mNotificationListMap.find(tag); @@ -461,6 +482,7 @@ bool LLNotificationSeparator::removeItemByID(std::string& tag, const LLUUID& id) return false; } +//--------------------------------------------------------------------------------- U32 LLNotificationSeparator::size() const { U32 size = 0; @@ -476,6 +498,7 @@ U32 LLNotificationSeparator::size() const return size; } +//--------------------------------------------------------------------------------- LLPanel* LLNotificationSeparator::findItemByID(std::string& tag, const LLUUID& id) { notification_list_map_t::iterator it = mNotificationListMap.find(tag); @@ -492,6 +515,7 @@ LLPanel* LLNotificationSeparator::findItemByID(std::string& tag, const LLUUID& i } //static +//--------------------------------------------------------------------------------- void LLNotificationSeparator::getItemsFromList(std::vector<LLNotificationListItem*>& items, LLNotificationListView* list) { std::vector<LLPanel*> list_items; @@ -505,6 +529,7 @@ void LLNotificationSeparator::getItemsFromList(std::vector<LLNotificationListIte } } +//--------------------------------------------------------------------------------- void LLNotificationSeparator::getItems(std::vector<LLNotificationListItem*>& items) const { items.clear(); @@ -519,9 +544,11 @@ void LLNotificationSeparator::getItems(std::vector<LLNotificationListItem*>& ite } } +//--------------------------------------------------------------------------------- LLNotificationSeparator::LLNotificationSeparator() : mUnTaggedList(NULL) {} +//--------------------------------------------------------------------------------- LLNotificationSeparator::~LLNotificationSeparator() {} diff --git a/indra/newview/llfloaternotificationstabbed.h b/indra/newview/llfloaternotificationstabbed.h index 36eee2f8669..5191b783f63 100644 --- a/indra/newview/llfloaternotificationstabbed.h +++ b/indra/newview/llfloaternotificationstabbed.h @@ -2,9 +2,9 @@ * @file llfloaternotificationstabbed.h * @brief * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ + * $LicenseInfo:firstyear=2015&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. + * Copyright (C) 2015, Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -68,11 +68,11 @@ class LLNotificationSeparator class LLFloaterNotificationsTabbed : public LLTransientDockableFloater { public: - LOG_CLASS(LLFloaterNotificationsTabbed); + LOG_CLASS(LLFloaterNotificationsTabbed); LLFloaterNotificationsTabbed(const LLSD& key); virtual ~LLFloaterNotificationsTabbed(); - BOOL postBuild(); + BOOL postBuild(); // other interface functions // check is window empty @@ -86,12 +86,11 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater // Operating with outfit virtual void setVisible(BOOL visible); - void adjustWindowPosition();//not used - ? - /*virtual*/ void setDocked(bool docked, bool pop_on_undock = true); + /*virtual*/ void setDocked(bool docked, bool pop_on_undock = true); // override LLFloater's minimization according to EXT-1216 - /*virtual*/ void setMinimized(BOOL minimize); - /*virtual*/ void handleReshape(const LLRect& rect, bool by_user); + /*virtual*/ void setMinimized(BOOL minimize); + /*virtual*/ void handleReshape(const LLRect& rect, bool by_user); void onStartUpToastClick(S32 x, S32 y, MASK mask); /*virtual*/ void onAdd(LLNotificationPtr notify); @@ -102,8 +101,8 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater static LLFloaterNotificationsTabbed* getInstance(const LLSD& key = LLSD()); // size constants for the window and for its elements - static const S32 MAX_WINDOW_HEIGHT = 200; - static const S32 MIN_WINDOW_WIDTH = 318; + static const S32 MAX_WINDOW_HEIGHT = 200; + static const S32 MIN_WINDOW_WIDTH = 318; private: // init Window's channel @@ -119,9 +118,9 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater LLNotificationsUI::LLScreenChannel* mChannel; /** - * Reference to an appropriate Well chiclet to release "new message" state. EXT-3147 - */ - LLSysWellChiclet* mSysWellChiclet; + * Reference to an appropriate Well chiclet to release "new message" state. EXT-3147 + */ + LLSysWellChiclet* mSysWellChiclet; bool mIsReshapedByUser; @@ -144,12 +143,15 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater void clearScreenChannels(); // Operating with items void addItem(LLNotificationListItem::Params p); + void getAllItemsOnCurrentTab(std::vector<LLPanel*>& items) const; // Closes all notifications and removes them from the Notification Well void closeAllOnCurrentTab(); + void collapseAllOnCurrentTab(); void onStoreToast(LLPanel* info_panel, LLUUID id); void onClickDeleteAllBtn(); + void onClickCollapseAllBtn(); // Handlers void onItemClick(LLNotificationListItem* item); void onItemClose(LLNotificationListItem* item); @@ -162,6 +164,7 @@ class LLFloaterNotificationsTabbed : public LLTransientDockableFloater LLNotificationSeparator* mNotificationsSeparator; LLTabContainer* mNotificationsTabContainer; LLButton* mDeleteAllBtn; + LLButton* mCollapseAllBtn; }; #endif // LL_FLOATERNOTIFICATIONSTABBED_H diff --git a/indra/newview/llgroupiconctrl.cpp b/indra/newview/llgroupiconctrl.cpp index 26680e1ea51..6abf9ea6376 100755 --- a/indra/newview/llgroupiconctrl.cpp +++ b/indra/newview/llgroupiconctrl.cpp @@ -52,7 +52,7 @@ LLGroupIconCtrl::LLGroupIconCtrl(const LLGroupIconCtrl::Params& p) { LLSD value(p.group_id); setValue(value); - } + } else { LLIconCtrl::setValue(mDefaultIconName); diff --git a/indra/newview/llnotificationlistitem.cpp b/indra/newview/llnotificationlistitem.cpp index f280dc0ed35..4c4dd07d7fa 100644 --- a/indra/newview/llnotificationlistitem.cpp +++ b/indra/newview/llnotificationlistitem.cpp @@ -1,8 +1,8 @@ /** * @file llnotificationlistitem.cpp - * @brief // TODO + * @brief * - * $LicenseInfo:firstyear=2000&license=viewerlgpl$ + * $LicenseInfo:firstyear=2015&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2015, Linden Research, Inc. * @@ -109,37 +109,18 @@ std::string LLNotificationListItem::buildNotificationDate(const LLDate& time_sta return timeStr; } -//--------------------------------------------------------------------------------- -//void LLNotificationTabbedItem::setTitle( std::string title ) -//{ -// mTitleBox->setValue(title); -//} - void LLNotificationListItem::onClickCloseBtn() { mOnItemClose(this); } -BOOL LLNotificationListItem::handleMouseDown(S32 x, S32 y, MASK mask) +BOOL LLNotificationListItem::handleMouseUp(S32 x, S32 y, MASK mask) { - BOOL res = LLPanel::handleMouseDown(x, y, mask); - //if(!mCloseBtn->getRect().pointInRect(x, y)) - //if(!mCloseBtn->getLocalRect().pointInRect(x, y)) - //mOnItemClick(this); - + BOOL res = LLPanel::handleMouseUp(x, y, mask); + mOnItemClick(this); return res; } -void LLNotificationListItem::onMouseEnter(S32 x, S32 y, MASK mask) -{ - //setTransparentColor(LLUIColorTable::instance().getColor( "SysWellItemSelected" )); -} - -void LLNotificationListItem::onMouseLeave(S32 x, S32 y, MASK mask) -{ - //setTransparentColor(LLUIColorTable::instance().getColor( "SysWellItemUnselected" )); -} - //static LLNotificationListItem* LLNotificationListItem::create(const Params& p) { @@ -176,23 +157,18 @@ void LLNotificationListItem::onClickCondenseBtn() setExpanded(FALSE); } -void setPanelSize(LLView* panel, S32 width, S32 height, BOOL called_from_parent) -{ - LLRect rect = panel->getRect(); - panel->reshape(width, height, called_from_parent); -} - void LLNotificationListItem::setExpanded(BOOL value) { mCondensedViewPanel->setVisible(!value); mExpandedViewPanel->setVisible(value); + S32 width = this->getRect().getWidth(); if (value) { - setPanelSize(this, 331, mExpandedHeight, FALSE); + this->reshape(width, mExpandedHeight, FALSE); } - else + else { - setPanelSize(this, 331, mCondensedHeight, FALSE); + this->reshape(width, mCondensedHeight, FALSE); } } @@ -211,31 +187,11 @@ std::set<std::string> LLTransactionNotificationListItem::getTypes() return types; } -std::set<std::string> LLSystemNotificationListItem::getTypes() -{ - std::set<std::string> types; - //types.insert("AddPrimitiveFailure"); - //types.insert("AddToNavMeshNoCopy"); - //types.insert("AssetServerTimeoutObjReturn"); - //types.insert("AvatarEjected"); - //types.insert("AutoUnmuteByIM"); - //types.insert("AutoUnmuteByInventory"); - //types.insert("AutoUnmuteByMoney"); - //types.insert("BuyInventoryFailedNoMoney"); - //types.insert("DeactivatedGesturesTrigger"); - //types.insert("DeedFailedNoPermToDeedForGroup"); - //types.insert("WhyAreYouTryingToWearShrubbery"); - //types.insert("YouDiedAndGotTPHome"); - //types.insert("YouFrozeAvatar"); - //types.insert("OfferCallingCard"); - return types; -} - LLInviteNotificationListItem::LLInviteNotificationListItem(const Params& p) - : LLNotificationListItem(p), - mSenderBox(NULL) + : LLNotificationListItem(p), + mSenderBox(NULL) { - buildFromFile("panel_notification_list_item.xml"); + buildFromFile("panel_notification_list_item.xml"); } BOOL LLInviteNotificationListItem::postBuild() @@ -256,19 +212,8 @@ BOOL LLInviteNotificationListItem::postBuild() mSenderBox = getChild<LLTextBox>("sender_resident"); mSenderBoxExp = getChild<LLTextBox>("sender_resident_exp"); - if (!mParams.sender.empty()) - { - LLStringUtil::format_map_t string_args; - string_args["[SENDER_RESIDENT]"] = llformat("%s", mParams.sender.c_str()); - std::string sender_text = getString("sender_resident_text", string_args); - mSenderBox->setValue(sender_text); - mSenderBox->setVisible(TRUE); - mSenderBoxExp->setValue(sender_text); - mSenderBoxExp->setVisible(TRUE); - } else { - mSenderBox->setVisible(FALSE); - mSenderBoxExp->setVisible(FALSE); - } + + setSender(mParams.sender); LLSD value(mParams.group_id); setGroupId(value); @@ -288,18 +233,7 @@ bool LLInviteNotificationListItem::updateFromCache() { LLGroupMgrGroupData* group_data = LLGroupMgr::getInstance()->getGroupData(mGroupId); if (!group_data) return false; - if (!group_data->mName.empty()) - { - LLStringUtil::format_map_t string_args; - string_args["[GROUP_NAME]"] = llformat("%s", group_data->mName.c_str()); - std::string group_name = getString("group_name_text", string_args); - mGroupNameBoxExp->setValue(group_name); - mGroupNameBoxExp->setVisible(TRUE); - } - else - { - mGroupNameBoxExp->setValue(LLStringUtil::null); - } + setGroupName(group_data->mName); return true; } @@ -311,7 +245,7 @@ void LLInviteNotificationListItem::setGroupId(const LLUUID& value) gm->removeObserver(this); } - mID = mGroupId; // set LLGroupMgrObserver::mID to make callbacks work + mID = mGroupId; // Check if cache already contains image_id for that group if (!updateFromCache()) @@ -321,9 +255,45 @@ void LLInviteNotificationListItem::setGroupId(const LLUUID& value) } } +void LLInviteNotificationListItem::setGroupName(std::string name) +{ + if (!name.empty()) + { + LLStringUtil::format_map_t string_args; + string_args["[GROUP_NAME]"] = llformat("%s", name.c_str()); + std::string group_box_str = getString("group_name_text", string_args); + mGroupNameBoxExp->setValue(group_box_str); + mGroupNameBoxExp->setVisible(TRUE); + } + else + { + mGroupNameBoxExp->setValue(LLStringUtil::null); + mGroupNameBoxExp->setVisible(FALSE); + } +} + +void LLInviteNotificationListItem::setSender(std::string sender) +{ + if (!sender.empty()) + { + LLStringUtil::format_map_t string_args; + string_args["[SENDER_RESIDENT]"] = llformat("%s", sender.c_str()); + std::string sender_text = getString("sender_resident_text", string_args); + mSenderBox->setValue(sender_text); + mSenderBox->setVisible(TRUE); + mSenderBoxExp->setValue(sender_text); + mSenderBoxExp->setVisible(TRUE); + } else { + mSenderBox->setValue(LLStringUtil::null); + mSenderBoxExp->setValue(LLStringUtil::null); + mSenderBox->setVisible(FALSE); + mSenderBoxExp->setVisible(FALSE); + } +} + LLTransactionNotificationListItem::LLTransactionNotificationListItem(const Params& p) : LLNotificationListItem(p), - mTransactionIcon(NULL) + mAvatarIcon(NULL) { buildFromFile("panel_notification_list_item.xml"); } @@ -331,20 +301,20 @@ LLTransactionNotificationListItem::LLTransactionNotificationListItem(const Param BOOL LLTransactionNotificationListItem::postBuild() { BOOL rv = LLNotificationListItem::postBuild(); + mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon"); + mAvatarIconExp = getChild<LLAvatarIconCtrl>("avatar_icon_exp"); if (mParams.notification_name == "PaymentReceived") { - mTransactionIcon = getChild<LLIconCtrl>("incoming_transaction_icon"); - mTransactionIconExp = getChild<LLIconCtrl>("incoming_transaction_icon_exp"); + mAvatarIcon->setValue(mParams.paid_from_id); + mAvatarIconExp->setValue(mParams.paid_from_id); } else if (mParams.notification_name == "PaymentSent") { - mTransactionIcon = getChild<LLIconCtrl>("outcoming_transaction_icon"); - mTransactionIconExp = getChild<LLIconCtrl>("outcoming_transaction_icon_exp"); + mAvatarIcon->setValue(mParams.paid_to_id); + mAvatarIconExp->setValue(mParams.paid_to_id); } - if(mTransactionIcon) - mTransactionIcon->setVisible(TRUE); - if(mTransactionIconExp) - mTransactionIconExp->setVisible(TRUE); + mAvatarIcon->setVisible(TRUE); + mAvatarIconExp->setVisible(TRUE); return rv; } diff --git a/indra/newview/llnotificationlistitem.h b/indra/newview/llnotificationlistitem.h index f5cd9422b5d..22003a3a6a8 100644 --- a/indra/newview/llnotificationlistitem.h +++ b/indra/newview/llnotificationlistitem.h @@ -1,8 +1,8 @@ /** * @file llnotificationlistitem.h - * @brief // TODO + * @brief * - * $LicenseInfo:firstyear=2003&license=viewerlgpl$ + * $LicenseInfo:firstyear=2015&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2015, Linden Research, Inc. * @@ -32,6 +32,7 @@ #include "lltextbox.h" #include "llbutton.h" #include "llgroupiconctrl.h" +#include "llavatariconctrl.h" #include "llgroupmgr.h" @@ -40,13 +41,15 @@ class LLNotificationListItem : public LLPanel { public: - struct Params : public LLInitParam::Block<Params, LLPanel::Params> + struct Params : public LLInitParam::Block<Params, LLPanel::Params> { - LLUUID notification_id; + LLUUID notification_id; LLUUID group_id; - std::string notification_name; - std::string title; - std::string sender; + LLUUID paid_from_id; + LLUUID paid_to_id; + std::string notification_name; + std::string title; + std::string sender; LLDate time_stamp; Params() {}; }; @@ -65,44 +68,41 @@ class LLNotificationListItem : public LLPanel std::string& getNotificationName() { return mNotificationName; } // handlers - virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); - virtual void onMouseEnter(S32 x, S32 y, MASK mask); - virtual void onMouseLeave(S32 x, S32 y, MASK mask); + virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); //callbacks typedef boost::function<void (LLNotificationListItem* item)> item_callback_t; typedef boost::signals2::signal<void (LLNotificationListItem* item)> item_signal_t; - item_signal_t mOnItemClose; - item_signal_t mOnItemClick; + item_signal_t mOnItemClose; + item_signal_t mOnItemClick; boost::signals2::connection setOnItemCloseCallback(item_callback_t cb) { return mOnItemClose.connect(cb); } boost::signals2::connection setOnItemClickCallback(item_callback_t cb) { return mOnItemClick.connect(cb); } - + + void setExpanded(BOOL value); virtual BOOL postBuild(); protected: LLNotificationListItem(const Params& p); - virtual ~LLNotificationListItem(); + virtual ~LLNotificationListItem(); static std::string buildNotificationDate(const LLDate&); - void setExpanded(BOOL value); - void onClickExpandBtn(); - void onClickCondenseBtn(); + void onClickExpandBtn(); + void onClickCondenseBtn(); void onClickCloseBtn(); Params mParams; - LLTextBox* mTitleBox; - LLTextBox* mTitleBoxExp; - LLTextBox* mNoticeTextExp; + LLTextBox* mTitleBox; + LLTextBox* mTitleBoxExp; + LLTextBox* mNoticeTextExp; LLTextBox* mTimeBox; LLTextBox* mTimeBoxExp; - LLButton* mExpandBtn; - LLButton* mCondenseBtn; - LLButton* mCloseBtn; - LLButton* mCloseBtnExp; + LLButton* mExpandBtn; + LLButton* mCondenseBtn; + LLButton* mCloseBtn; + LLButton* mCloseBtnExp; LLLayoutStack* mVerticalStack; LLPanel* mCondensedViewPanel; - LLPanel* mExpandedViewPanel; + LLPanel* mExpandedViewPanel; LLPanel* mMainPanel; - //LLUUID mID; std::string mTitle; std::string mNotificationName; S32 mCondensedHeight; @@ -113,11 +113,7 @@ class LLInviteNotificationListItem : public LLNotificationListItem, public LLGroupMgrObserver { public: - //void setGroupID(const LLUUID& group_id); - //void setGroupIconID(const LLUUID& group_icon_id); - //void setGroupName(const std::string& group_name); static std::set<std::string> getTypes(); - virtual BOOL postBuild(); void setGroupId(const LLUUID& value); @@ -129,41 +125,43 @@ class LLInviteNotificationListItem LLInviteNotificationListItem(const LLInviteNotificationListItem &); LLInviteNotificationListItem & operator=(LLInviteNotificationListItem &); + void setSender(std::string sender); + void setGroupName(std::string name); + bool updateFromCache(); LLGroupIconCtrl* mGroupIcon; LLGroupIconCtrl* mGroupIconExp; - LLUUID mGroupId; - LLTextBox* mSenderBox; - LLTextBox* mSenderBoxExp; - LLTextBox* mGroupNameBoxExp; + LLUUID mGroupId; + LLTextBox* mSenderBox; + LLTextBox* mSenderBoxExp; + LLTextBox* mGroupNameBoxExp; }; class LLTransactionNotificationListItem : public LLNotificationListItem { public: static std::set<std::string> getTypes(); - virtual BOOL postBuild(); + virtual BOOL postBuild(); private: friend class LLNotificationListItem; LLTransactionNotificationListItem(const Params& p); LLTransactionNotificationListItem(const LLTransactionNotificationListItem &); LLTransactionNotificationListItem & operator=(LLTransactionNotificationListItem &); - LLIconCtrl* mTransactionIcon; - LLIconCtrl* mTransactionIconExp; + LLAvatarIconCtrl* mAvatarIcon; + LLAvatarIconCtrl* mAvatarIconExp; }; class LLSystemNotificationListItem : public LLNotificationListItem { public: - static std::set<std::string> getTypes(); - virtual BOOL postBuild(); + virtual BOOL postBuild(); private: friend class LLNotificationListItem; LLSystemNotificationListItem(const Params& p); LLSystemNotificationListItem(const LLSystemNotificationListItem &); LLSystemNotificationListItem & operator=(LLSystemNotificationListItem &); - LLIconCtrl* mSystemNotificationIcon; + LLIconCtrl* mSystemNotificationIcon; LLIconCtrl* mSystemNotificationIconExp; }; diff --git a/indra/newview/llnotificationlistview.cpp b/indra/newview/llnotificationlistview.cpp index 8690f185e9b..9dce68c9c61 100644 --- a/indra/newview/llnotificationlistview.cpp +++ b/indra/newview/llnotificationlistview.cpp @@ -2,9 +2,9 @@ * @file llnotificationlistview.cpp * @brief * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ + * $LicenseInfo:firstyear=2015&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. + * Copyright (C) 2015, Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/indra/newview/llnotificationlistview.h b/indra/newview/llnotificationlistview.h index 9329826faff..307ad877896 100644 --- a/indra/newview/llnotificationlistview.h +++ b/indra/newview/llnotificationlistview.h @@ -1,10 +1,10 @@ /** - * @file llflatlistview.h - * @brief LLFlatListView base class and extension to support messages for several cases of an empty list. + * @file llnotificationlistview.h + * @brief LLNotificationListView class to support notifications list contained in enclosing floater. * - * $LicenseInfo:firstyear=2009&license=viewerlgpl$ + * $LicenseInfo:firstyear=2015&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. + * Copyright (C) 2015, Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -46,4 +46,4 @@ class LLNotificationListView : public LLFlatListView virtual bool addNotification(LLNotificationListItem * item); }; -#endif \ No newline at end of file +#endif diff --git a/indra/newview/llsyswellitem.cpp b/indra/newview/llsyswellitem.cpp index 31ff9823995..057d80457c6 100755 --- a/indra/newview/llsyswellitem.cpp +++ b/indra/newview/llsyswellitem.cpp @@ -31,7 +31,6 @@ #include "llwindow.h" #include "v4color.h" -#include "lltrans.h" #include "lluicolortable.h" //--------------------------------------------------------------------------------- @@ -89,4 +88,6 @@ void LLSysWellItem::onMouseLeave(S32 x, S32 y, MASK mask) setTransparentColor(LLUIColorTable::instance().getColor( "SysWellItemUnselected" )); } -//--------------------------------------------------------------------------------- \ No newline at end of file +//--------------------------------------------------------------------------------- + + diff --git a/indra/newview/llsyswellitem.h b/indra/newview/llsyswellitem.h index 8763caa4672..d961708a01d 100755 --- a/indra/newview/llsyswellitem.h +++ b/indra/newview/llsyswellitem.h @@ -32,8 +32,6 @@ #include "llbutton.h" #include "lliconctrl.h" -#include "llgroupmgr.h" - #include <string> class LLSysWellItem : public LLPanel diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index 8babb874f82..8f64cff47c0 100755 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -295,158 +295,6 @@ BOOL LLIMWellWindow::ObjectRowPanel::handleRightMouseDown(S32 x, S32 y, MASK mas return mChiclet->handleRightMouseDown(x, y, mask); } -/************************************************************************/ -/* LLNotificationWellWindow implementation */ -/************************************************************************/ - -////////////////////////////////////////////////////////////////////////// -// PUBLIC METHODS -LLNotificationWellWindow::WellNotificationChannel::WellNotificationChannel(LLNotificationWellWindow* well_window) -: LLNotificationChannel(LLNotificationChannel::Params().name(well_window->getPathname())), - mWellWindow(well_window) -{ - connectToChannel("Notifications"); - connectToChannel("Group Notifications"); - connectToChannel("Offer"); -} - -LLNotificationWellWindow::LLNotificationWellWindow(const LLSD& key) -: LLSysWellWindow(key) -{ - mNotificationUpdates.reset(new WellNotificationChannel(this)); -} - -// static -LLNotificationWellWindow* LLNotificationWellWindow::getInstance(const LLSD& key /*= LLSD()*/) -{ - return LLFloaterReg::getTypedInstance<LLNotificationWellWindow>("notification_well_window", key); -} - -// virtual -BOOL LLNotificationWellWindow::postBuild() -{ - BOOL rv = LLSysWellWindow::postBuild(); - setTitle(getString("title_notification_well_window")); - return rv; -} - -// virtual -void LLNotificationWellWindow::setVisible(BOOL visible) -{ - if (visible) - { - // when Notification channel is cleared, storable toasts will be added into the list. - clearScreenChannels(); - } - - LLSysWellWindow::setVisible(visible); -} - -//--------------------------------------------------------------------------------- -void LLNotificationWellWindow::addItem(LLSysWellItem::Params p) -{ - LLSD value = p.notification_id; - // do not add clones - if( mMessageList->getItemByValue(value)) - return; - - LLSysWellItem* new_item = new LLSysWellItem(p); - if (mMessageList->addItem(new_item, value, ADD_TOP)) - { - mSysWellChiclet->updateWidget(isWindowEmpty()); - reshapeWindow(); - new_item->setOnItemCloseCallback(boost::bind(&LLNotificationWellWindow::onItemClose, this, _1)); - new_item->setOnItemClickCallback(boost::bind(&LLNotificationWellWindow::onItemClick, this, _1)); - } - else - { - LL_WARNS() << "Unable to add Notification into the list, notification ID: " << p.notification_id - << ", title: " << p.title - << LL_ENDL; - - new_item->die(); - } -} - -void LLNotificationWellWindow::closeAll() -{ - // Need to clear notification channel, to add storable toasts into the list. - clearScreenChannels(); - std::vector<LLPanel*> items; - mMessageList->getItems(items); - for (std::vector<LLPanel*>::iterator - iter = items.begin(), - iter_end = items.end(); - iter != iter_end; ++iter) - { - LLSysWellItem* sys_well_item = dynamic_cast<LLSysWellItem*>(*iter); - if (sys_well_item) - onItemClose(sys_well_item); - } -} - -////////////////////////////////////////////////////////////////////////// -// PRIVATE METHODS -void LLNotificationWellWindow::initChannel() -{ - LLSysWellWindow::initChannel(); - if(mChannel) - { - mChannel->addOnStoreToastCallback(boost::bind(&LLNotificationWellWindow::onStoreToast, this, _1, _2)); - } -} - -void LLNotificationWellWindow::clearScreenChannels() -{ - // 1 - remove StartUp toast and channel if present - if(!LLNotificationsUI::LLScreenChannel::getStartUpToastShown()) - { - LLNotificationsUI::LLChannelManager::getInstance()->onStartUpToastClose(); - } - - // 2 - remove toasts in Notification channel - if(mChannel) - { - mChannel->removeAndStoreAllStorableToasts(); - } -} - -void LLNotificationWellWindow::onStoreToast(LLPanel* info_panel, LLUUID id) -{ - LLSysWellItem::Params p; - p.notification_id = id; - p.title = static_cast<LLToastPanel*>(info_panel)->getTitle(); - addItem(p); -} - -void LLNotificationWellWindow::onItemClick(LLSysWellItem* item) -{ - LLUUID id = item->getID(); - LLFloaterReg::showInstance("inspect_toast", id); -} - -void LLNotificationWellWindow::onItemClose(LLSysWellItem* item) -{ - LLUUID id = item->getID(); - - if(mChannel) - { - // removeItemByID() is invoked from killToastByNotificationID() and item will removed; - mChannel->killToastByNotificationID(id); - } - else - { - // removeItemByID() should be called one time for each item to remove it from notification well - removeItemByID(id); - } - -} - -void LLNotificationWellWindow::onAdd( LLNotificationPtr notify ) -{ - removeItemByID(notify->getID()); -} - /************************************************************************/ /* LLIMWellWindow implementation */ /************************************************************************/ diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h index 71b41476f53..d02293e6fff 100755 --- a/indra/newview/llsyswellwindow.h +++ b/indra/newview/llsyswellwindow.h @@ -95,57 +95,6 @@ class LLSysWellWindow : public LLTransientDockableFloater bool mIsReshapedByUser; }; -/** - * Class intended to manage incoming notifications. - * - * It contains a list of notifications that have not been responded to. - */ -class LLNotificationWellWindow : public LLSysWellWindow -{ -public: - LLNotificationWellWindow(const LLSD& key); - static LLNotificationWellWindow* getInstance(const LLSD& key = LLSD()); - - /*virtual*/ BOOL postBuild(); - /*virtual*/ void setVisible(BOOL visible); - /*virtual*/ void onAdd(LLNotificationPtr notify); - // Operating with items - void addItem(LLSysWellItem::Params p); - - // Closes all notifications and removes them from the Notification Well - void closeAll(); - -protected: - struct WellNotificationChannel : public LLNotificationChannel - { - WellNotificationChannel(LLNotificationWellWindow*); - void onDelete(LLNotificationPtr notify) - { - mWellWindow->removeItemByID(notify->getID()); - } - - LLNotificationWellWindow* mWellWindow; - }; - - LLNotificationChannelPtr mNotificationUpdates; - /*virtual*/ const std::string& getAnchorViewName() { return NOTIFICATION_WELL_ANCHOR_NAME; } - -private: - // init Window's channel - void initChannel(); - void clearScreenChannels(); - - void onStoreToast(LLPanel* info_panel, LLUUID id); - - // Handlers - void onItemClick(LLSysWellItem* item); - void onItemClose(LLSysWellItem* item); - - // ID of a toast loaded by user (by clicking notification well item) - LLUUID mLoadedToastId; - -}; - /** * Class intended to manage incoming messages in IM chats. * diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index d20b8e342a0..a197c1fe1ad 100755 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -257,9 +257,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("notifications_console", "floater_notifications_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationConsole>); - LLFloaterReg::add("notification_well_window", "floater_notifications_tabbed.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationsTabbed>); - //LLFloaterReg::add("notification_well_window", "floater_sys_well.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLNotificationWellWindow>); - //LLFloaterReg::add("notifications_tabbed", "floater_notifications_tabbed.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationsTabbed>); + LLFloaterReg::add("notification_well_window", "floater_notifications_tabbed.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotificationsTabbed>); LLFloaterReg::add("object_weights", "floater_object_weights.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterObjectWeights>); LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 44eb4361f17..6507794cdd4 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -5622,6 +5622,7 @@ static void process_money_balance_reply_extended(LLMessageSystem* msg) } } final_args["MESSAGE"] = message; + payload["dest_id"] = dest_id; notification = success ? "PaymentSent" : "PaymentFailure"; } else { diff --git a/indra/newview/skins/default/textures/icons/Icon_Group_Large.png b/indra/newview/skins/default/textures/icons/Icon_Group_Large.png deleted file mode 100644 index 6dc0cbda0b062692d0defa18749563e9e505dadc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12280 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 S?{4n^0000<MNUMnLSTZ3zw-qE diff --git a/indra/newview/skins/default/textures/icons/Icon_Group_Small.png b/indra/newview/skins/default/textures/icons/Icon_Group_Small.png deleted file mode 100644 index ef2b521a1f15a86454a7dffaf7770bfc35f37666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4473 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 LNkvXXu0mjfE!cXW diff --git a/indra/newview/skins/default/textures/icons/Incoming_Transaction_Large.png b/indra/newview/skins/default/textures/icons/Incoming_Transaction_Large.png deleted file mode 100644 index e73dfe26956b8e068c4e1e1b1dca9aa88182c524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4939 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 JPDHLkV1hqwoXh|K diff --git a/indra/newview/skins/default/textures/icons/Incoming_Transaction_Small.png b/indra/newview/skins/default/textures/icons/Incoming_Transaction_Small.png deleted file mode 100644 index 8b39770c63e3bc264ee9b1f36546ff7b9561f0b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1666 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 M07*qoM6N<$g0mqBbN~PV diff --git a/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Large.png b/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Large.png deleted file mode 100644 index 79011edd8bf37a5159572bb59c52defea80862bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4662 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 diff --git a/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Small.png b/indra/newview/skins/default/textures/icons/Outcoming_Transaction_Small.png deleted file mode 100644 index 96c6150f3bb690cacf477343301a2d8bfa3edf7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1322 zcmV+_1=aeAP)<h;3K|Lk000e1NJLTq000>P000>X0ssI2ON$aT00004XF*Lt006O% z3;baP00009a7bBm000tm000tm0gNKK2LJ#77<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMHD!e|WdHyKs7XXYR7gvemD^7obri?vL0IlA>@s_q%WrmO_Qoy?lr1nop`loz zP@t$SD6rXuU=$OHnivuqVneF2w#3?(Ce}jxM_8a--hIFtM51X3Aq^?_5D*X$zq3OJ zY<<wl+0AEud(LOh`TZtY>M(j8931TL@4w1>dwV-OJNNH>x3#qe#!uQh5?*E1g`16y z4ecHUU^V6N5SF#Iwb~1BcqO4EKe)8Cq^)m9FO4@hH<6|>1%)oc>gwvM#>ie+SSUYJ z;&u>^NIa5In3uD@zK&x3VE|o<hA4a%o;_=8Z7IqR=I7<00N>%3=DFEfC3wmua4rY$ zcJL|)TwcIGH#hfwM>}$qU~c}Y?4n>^B-A=PJFB|zaIY-NgvImyZaK^2Dp3k1Cnt0K zKAC5ogmVfUK<9wZ^YrQOr9}nEM7~qtvFMeh#l=M`)clUfGnX6cu~TRjJ!6o*YoCi8 zBk>3p5M@^9-m5+OXe%o#4Ry6x3^g}V!JL4=+R>dZ0_^VYJ{%mZdcDHI+7KdVM*ynN zpC23;&~k7Akcp`YV-03!QQ1B($nSANrzb&*eeH-u@RPvW5CB9Z9KzmfIhqJnKBtUs za{QT8md_h-*(6TYEiW(YB0xtZ%-gLzW94iX1Y8|$k*G&KK~3b5C8uD^_1NK|{F&}c zW#osi0uF}uI;HvfdHu-SB4H?4D~-@}?cvZ#kz2x{Sto91zj>C2hw^*f4QKhk#+8v< zSpq|Qoa%|70JDTzo9&hi1YC@j24F^gG^Z#?yk+9sY}7WCaXycW^17V$r7Z6Me5{~5 z-ez`64s55oU+rzS43ny(%>YC=)T)VOfruQ9j!<|ouGE+DnQql3*PUS@+8$A~?l_xS z76o+o+ssUPS!rppQd(4mC@(9Uo}PwCB1B*^CT<5*(U|hbuu@yX!b7=bsiv6GM2OwT z%A*@u44p0#9&fY$9_gcrgd=wI#5YmVxGLHog^O`XBIS~$izSRM+8M#43Y#hz+LR^< z{NnTHCq;y?v?;x{lG`6U7NPKBiCuL`qNBRVc2e}o6=F^^b~X^JIhAnilgUYlFdfG* z44u~5z?+OI-7Su-p(7E-tS+|8QI~K*v1+2d(ZY|f5R)<WPL~TwLpS^uvoS3-nKq+5 z*_L4(?a#t`|A(?EEw#HvfJNJ{D#Z#9B?>}if#pbanNK&SXd=Y+u=3;G?8bAppeMbt zg8AuQuG$4g8&Ym{O2(9=?sv)NBL(wT6<Qnup#-=JEf96R&8MX#-|2GdA{?&9c=Db$ z&Wk+)-0YN)|5+1(tFnN05JC}-I~O#6^cI(zocJF_Dvv4HubUr;$%zS{Hu4pxX@Tb{ zp5u}e<5Q9n{+CGQ=uxV=q(m6tp*$XULVVnp?>V&Me-~-R{}h4ojqa{RNPL_D9;&ae zFU}Bq+M7Ds@B8_F?$ki;%tJMve4qQvpbEb}P<i?V;{>K39Ip?5otfuKf#Hkm*VX@y z+M1e}nAZ%3SVL@VY)lLy&VajP1|4%0UgAr2b?_YhKTb_ep~0)stEZ=@w^zd`AK}Za g0jf}|Dh?0-20z%Ql2H)+Jpcdz07*qoM6N<$g66_(WB>pF diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index eef7d56e753..e47e0c03f14 100755 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -795,17 +795,7 @@ with the same filename but different name <texture name="Camera_Drag_Dot" file_name="world/CameraDragDot.png"/> <texture name="NavBar Separator" file_name="navbar/separator.png"/> - <texture name="Notification_Condense" file_name="icons/Icon_Notification_Condense.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Notification_Expand" file_name="icons/Icon_Notification_Expand.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Icon_Group_Small" file_name="icons/Icon_Group_Small.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Icon_Group_Large" file_name="icons/Icon_Group_Large.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Icon_Attachment_Small" file_name="icons/Icon_Attachment_Small.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Icon_Attachment_Large" file_name="icons/Icon_Attachment_Large.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="System_Notification_Small" file_name="icons/System_Notification_Small.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="System_Notification_Large" file_name="icons/System_Notification_Large.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Incoming_Transaction_Small" file_name="icons/Incoming_Transaction_Small.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Incoming_Transaction_Large" file_name="icons/Incoming_Transaction_Large.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Outcoming_Transaction_Small" file_name="icons/Outcoming_Transaction_Small.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - <texture name="Outcoming_Transaction_Large" file_name="icons/Outcoming_Transaction_Large.png" preload="true" scale.left="2" scale.top="13" scale.right="13" scale.bottom="2" /> - + <texture name="Notification_Condense" file_name="icons/Icon_Notification_Condense.png" preload="true"/> + <texture name="Notification_Expand" file_name="icons/Icon_Notification_Expand.png" preload="true"/> + <texture name="System_Notification" file_name="icons/SL_Logo.png" preload="true"/> </textures> diff --git a/indra/newview/skins/default/xui/en/floater_notifications_tabbed.xml b/indra/newview/skins/default/xui/en/floater_notifications_tabbed.xml index 6162bc99b29..55ecfb637b4 100644 --- a/indra/newview/skins/default/xui/en/floater_notifications_tabbed.xml +++ b/indra/newview/skins/default/xui/en/floater_notifications_tabbed.xml @@ -81,7 +81,7 @@ left="0" top="5" height="0" - width="330"/> + width="328"/> </panel> <panel border="true" @@ -98,13 +98,13 @@ left="0" top="5" height="0" - width="330"/> + width="328"/> </panel> </tab_container> <layout_stack width="336" height="26" enabled="true" orientation="horizontal" follows="left|right" name="ButtonsStack"> <layout_panel width="336" height="30" enabled="true" orientation="horizontal" name="CondenseAllButtonPanel"> - <button width="93" height="21" left="2" label="Collapse all" name="CondenseAllButton"> + <button width="93" height="21" left="2" label="Collapse all" name="collapse_all_button"> </button> </layout_panel> <layout_panel width="336" height="30" enabled="true" orientation="horizontal" name="GapLayoutPanel"> @@ -118,48 +118,4 @@ </layout_stack> </layout_panel> </layout_stack> - </floater> - -<!-- -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<floater - legacy_header_height="18" - bevel_style="in" - layout="topleft" - name="notifications_tabbed_window" - help_topic="notification_chiclet" - save_rect="true" - title="NOTIFICATIONS" - width="320" - min_width="320" - height="23" - can_minimize="false" - can_tear_off="false" - can_resize="true" - can_drag_on_left="false" - can_dock="true" - save_dock_state="true" - save_visibility="true" - single_instance="true" -> - <string - name="title_im_well_window"> - CONVERSATIONS - </string> - <string - name="title_notification_well_window"> - NOTIFICATIONS1 - </string> - - <flat_list_view - color="FloaterDefaultBackgroundColor" - follows="all" - layout="topleft" - name="notification_list" - left="1" - top="20" - height="0" - width="318"/> </floater> ---> - diff --git a/indra/newview/skins/default/xui/en/floater_sys_well.xml b/indra/newview/skins/default/xui/en/floater_sys_well.xml index ecedb274389..2c5176cf013 100755 --- a/indra/newview/skins/default/xui/en/floater_sys_well.xml +++ b/indra/newview/skins/default/xui/en/floater_sys_well.xml @@ -23,10 +23,6 @@ name="title_im_well_window"> CONVERSATIONS </string> - <string - name="title_notification_well_window"> - NOTIFICATIONS - </string> <flat_list_view color="FloaterDefaultBackgroundColor" diff --git a/indra/newview/skins/default/xui/en/language_settings.xml b/indra/newview/skins/default/xui/en/language_settings.xml index 3ad0f04469b..51779e4bfd2 100755 --- a/indra/newview/skins/default/xui/en/language_settings.xml +++ b/indra/newview/skins/default/xui/en/language_settings.xml @@ -50,7 +50,7 @@ <string name="LTimeSec">second,datetime,local</string> <string name="LTimeHour">hour,datetime,local</string> <string name="LTimeMin">min,datetime,local</string> - <string name="LTimeYear">year,datetime,local</string> + <string name="LTimeYear">year,datetime,local</string> <string name="UTCTimeWeek">weekday,datetime,utc</string> <string name="UTCTimeDay">day,datetime,utc</string> diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index 0d9612990d6..e91eea04d13 100755 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -303,7 +303,7 @@ <menu_item_call label="Show Notifications Console" name="Show Notifications Console" - visible="true" + visible="false" shortcut="control|shift|5"> <on_click function="Floater.Toggle" diff --git a/indra/newview/skins/default/xui/en/panel_notification_list_item.xml b/indra/newview/skins/default/xui/en/panel_notification_list_item.xml index 05b721000f4..55456723a23 100644 --- a/indra/newview/skins/default/xui/en/panel_notification_list_item.xml +++ b/indra/newview/skins/default/xui/en/panel_notification_list_item.xml @@ -39,23 +39,21 @@ <layout_stack top="0" left="0" width="325" height="50" orientation="horizontal" follows="left|top|right|bottom" name="horizontal_stack"> <layout_panel width="30" height="39" orientation="horizontal" follows="left|top|right|bottom" name="layout_panel_right"> <group_icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="group_icon" tool_tip="Group" default_icon_name="Generic_Group" visible="true"/> - <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="system_notification_icon" tool_tip="Icon" image_name="System_Notification_Small" visible="false"/> - <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="incoming_transaction_icon" tool_tip="Icon" image_name="Incoming_Transaction_Small" visible="false"/> - <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="outcoming_transaction_icon" tool_tip="Icon" image_name="Outcoming_Transaction_Small" visible="false"/> + <avatar_icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="avatar_icon" tool_tip="Avatar" default_icon_name="Generic_Person" visible="false"/> + <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="system_notification_icon" tool_tip="Icon" image_name="System_Notification" visible="false"/> </layout_panel> <layout_panel width="260" height="50" orientation="horizontal" name="layout_panel_middle"> <panel border="false" top="0" width="260" height="38" bevel_style="none" follows="left|top|right" layout="topleft" name="main_info_panel"> <panel border="false" top="0" left="0" width="260" height="19" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="notification_title_panel"> - <text allow_scroll="false" font="SansSerifSmall" top="6" left="0" width="245" height="12" layout="topleft" follows="right|left" text_color="White" + <text allow_scroll="false" font="SansSerifSmall" top="6" left="0" width="260" height="12" layout="topleft" follows="right|left" text_color="White" use_ellipses="true" word_wrap="true" mouse_opaque="false" name="notification_title" > Group Name:Notice Title N o t i c e T i t l e N o t i c e T i t l e N o t i c e T i t l e N oticeTitle </text> - <icon top="0" left="242" width="21" height="21" image_name="Icon_Attachment_Small" follows="right" mouse_opaque="true" name="icon_attachment_small" tool_tip="Attachment"/> </panel> <panel border="false" top="23" left="0" width="260" height="15" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="sender_time_panel"> - <text allow_scroll="false" font="SansSerifSmall" top="0" left="0" width="250" height="13" layout="topleft" follows="right|left" - use_ellipses="true" word_wrap="true" mouse_opaque="false" name="sender_resident" visible="false"> - Sender:Resident + <text allow_scroll="false" font="SansSerifSmall" top="0" left="0" width="170" height="13" layout="topleft" follows="right|left" + use_ellipses="true" word_wrap="false" mouse_opaque="false" name="sender_resident" visible="false"> + Sender: "Resident R e s i d e n t R e s i d e n t" </text> <text allow_scroll="false" font="SansSerifSmall" top="0" right="-5" width="95" height="13" follows="right" halign="right" layout="topleft" left_pad="5" name="notification_time" value="2014/12/24 23:30" /> @@ -76,19 +74,17 @@ <layout_panel top="0" left="0" height="196" follows="left|top|right|bottom" layout="topleft" name="layout_panel_expanded_view" visible="true"> <panel border="true" top="0" left="5" height="193" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="panel_expanded_view"> <layout_stack top="0" left="0" width="325" height="193" orientation="horizontal" follows="left|top|right|bottom" name="horizontal_stack"> - <layout_panel width="60" height="170" orientation="horizontal" follows="left|top|bottom" name="layout_panel_right_exp"> - <group_icon left="5" top="6" width="55" height="55" mouse_opaque="true" name="group_icon_exp" tool_tip="Group" default_icon_name="Generic_Group" visible="true"/> - <icon left="5" top="6" width="55" height="55" mouse_opaque="true" name="system_notification_icon_exp" tool_tip="Icon" image_name="System_Notification_Large" visible="false"/> - <icon left="5" top="6" width="55" height="55" mouse_opaque="true" name="incoming_transaction_icon_exp" tool_tip="Icon" image_name="Incoming_Transaction_Large" visible="false"/> - <icon left="5" top="6" width="55" height="55" mouse_opaque="true" name="outcoming_transaction_icon_exp" tool_tip="Icon" image_name="Outcoming_Transaction_Large" visible="false"/> - <icon top="142" right="65" width="22" height="25" image_name="Icon_Attachment_Large" follows="right" mouse_opaque="true" name="icon_attachment_large" tool_tip="Attachment"/> + <layout_panel width="30" height="170" orientation="horizontal" follows="left|top|bottom" name="layout_panel_right_exp"> + <group_icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="group_icon_exp" tool_tip="Group" default_icon_name="Generic_Group" visible="true"/> + <avatar_icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="avatar_icon_exp" tool_tip="Avatar" default_icon_name="Generic_Person" visible="false"/> + <icon left="5" top="6" width="25" height="25" mouse_opaque="true" name="system_notification_icon_exp" tool_tip="Icon" image_name="System_Notification" visible="false"/> </layout_panel> <layout_panel width="230" height="170" orientation="horizontal" follows="left|top|right|bottom" name="layout_panel_middle_exp"> <panel border="false" top="0" width="230" height="38" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="main_info_panel_expanded"> <panel border="false" top="0" left="0" width="230" height="30" bevel_style="none" follows="left|top|right" layout="topleft" name="notification_title_panel_exp"> <text allow_scroll="false" font="SansSerif" top="6" left="0" width="233" height="10" layout="topleft" follows="right|left" text_color="White" use_ellipses="true" word_wrap="false" mouse_opaque="false" name="notification_title_exp"> - Notice Title Notice Title N o t i c e T i t l e + Notice Title Notice Title N o t i c e T i t l e N o t i c e T i t l e </text> <text allow_scroll="false" font="SansSerif" left="0" width="233" height="10" layout="topleft" follows="right|left" text_color="White" use_ellipses="true" word_wrap="false" mouse_opaque="false" name="group_name_exp" visible="false"> @@ -96,27 +92,20 @@ </text> </panel> <panel border="false" left="0" width="230" height="12" bevel_style="none" follows="left|top|right" layout="topleft" name="sender_time_panel_exp"> - <text allow_scroll="false" font="SansSerifSmall" top="0" left="0" width="143" height="13" layout="topleft" follows="right|left" + <text allow_scroll="false" font="SansSerifSmall" top="0" left="0" width="145" height="13" layout="topleft" follows="right|left" use_ellipses="true" word_wrap="false" mouse_opaque="false" name="sender_resident_exp" visible="false"> Sender: "Resident R e s i d e n t R e s i d e n t" </text> <text allow_scroll="false" font="SansSerifSmall" top="0" right="-1" width="95" height="13" follows="right" halign="right" layout="topleft" left_pad="5" name="notification_time_exp" value="2014/12/24 23:30" /> </panel> - <panel border="true" left="1" width="230" height="90" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="full_notice_text_panel_exp" visible="true" + <panel border="true" left="1" width="230" height="115" bevel_style="none" follows="left|top|right|bottom" layout="topleft" name="full_notice_text_panel_exp" visible="true" bg_visible="true"> <text allow_scroll="false" font="SansSerifSmall" top="4" left="5" width="220" height="80" layout="topleft" follows="left|top|right|bottom" use_ellipses="true" word_wrap="true" mouse_opaque="false" max_length="400" name="notification_text_exp" > Notice text goes here b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. bla bla bla bla bla bla bla bla bla bla bla bla bla . </text> </panel> - <panel border="true" left="1" width="230" height="21" bevel_style="none" follows="left|bottom|right" layout="topleft" name="full_notice_attach_panel_exp" visible="true" - bg_visible="true"> - <text allow_scroll="false" font="SansSerifSmall" top="4" left="5" width="220" height="12" layout="topleft" follows="left|top|right|bottom" - use_ellipses="true" word_wrap="true" mouse_opaque="false" max_length="96" name="notification_full_text"> - Attachment goes here b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a b l a bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla . - </text> - </panel> </panel> </layout_panel> <layout_panel width="18" orientation="horizontal" follows="right|top|bottom" name="layout_panel_left_exp"> -- GitLab