diff options
Diffstat (limited to 'indra/newview/llsyswellwindow.cpp')
-rwxr-xr-x[-rw-r--r--] | indra/newview/llsyswellwindow.cpp | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index e92bd766ca..8babb874f8 100644..100755 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -107,8 +107,8 @@ void LLSysWellWindow::removeItemByID(const LLUUID& id) } else { - llwarns << "Unable to remove notification from the list, ID: " << id - << llendl; + LL_WARNS() << "Unable to remove notification from the list, ID: " << id + << LL_ENDL; } // hide chiclet window if there are no items left @@ -118,6 +118,11 @@ void LLSysWellWindow::removeItemByID(const LLUUID& id) } } + LLPanel * LLSysWellWindow::findItemByID(const LLUUID& id) +{ + return mMessageList->getItemByValue(id); +} + //--------------------------------------------------------------------------------- //--------------------------------------------------------------------------------- void LLSysWellWindow::initChannel() @@ -127,7 +132,7 @@ void LLSysWellWindow::initChannel() mChannel = dynamic_cast<LLNotificationsUI::LLScreenChannel*>(channel); if(NULL == mChannel) { - llwarns << "LLSysWellWindow::initChannel() - could not get a requested screen channel" << llendl; + LL_WARNS() << "LLSysWellWindow::initChannel() - could not get a requested screen channel" << LL_ENDL; } } @@ -355,9 +360,9 @@ void LLNotificationWellWindow::addItem(LLSysWellItem::Params p) } else { - llwarns << "Unable to add Notification into the list, notification ID: " << p.notification_id + LL_WARNS() << "Unable to add Notification into the list, notification ID: " << p.notification_id << ", title: " << p.title - << llendl; + << LL_ENDL; new_item->die(); } @@ -423,9 +428,18 @@ void LLNotificationWellWindow::onItemClick(LLSysWellItem* item) void LLNotificationWellWindow::onItemClose(LLSysWellItem* item) { LLUUID id = item->getID(); - removeItemByID(id); + 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 ) @@ -495,7 +509,7 @@ void LLIMWellWindow::addObjectRow(const LLUUID& notification_id, bool new_messag ObjectRowPanel* item = new ObjectRowPanel(notification_id, new_message); if (!mMessageList->addItem(item, notification_id)) { - llwarns << "Unable to add Object Row into the list, notificationID: " << notification_id << llendl; + LL_WARNS() << "Unable to add Object Row into the list, notificationID: " << notification_id << LL_ENDL; item->die(); } reshapeWindow(); @@ -506,7 +520,7 @@ void LLIMWellWindow::removeObjectRow(const LLUUID& notification_id) { if (!mMessageList->removeItemByValue(notification_id)) { - llwarns << "Unable to remove Object Row from the list, notificationID: " << notification_id << llendl; + LL_WARNS() << "Unable to remove Object Row from the list, notificationID: " << notification_id << LL_ENDL; } reshapeWindow(); |