From b24cbb3633594ed7a7ebde1701175cbe33608dea Mon Sep 17 00:00:00 2001 From: Dmitry Zaporozhan Date: Wed, 9 Dec 2009 17:48:18 +0200 Subject: Implemented normal task EXT-3194 - Object chiclets should be accessible in the IM well. --HG-- branch : product-engine --- indra/newview/llscriptfloater.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'indra/newview/llscriptfloater.cpp') diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp index 8de99a48aa..5c4f6e8860 100644 --- a/indra/newview/llscriptfloater.cpp +++ b/indra/newview/llscriptfloater.cpp @@ -39,6 +39,7 @@ #include "llfloaterreg.h" #include "llnotifications.h" #include "llscreenchannel.h" +#include "llsyswellwindow.h" #include "lltoastnotifypanel.h" #include "llviewerwindow.h" #include "llimfloater.h" @@ -240,6 +241,14 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id) LLBottomTray::getInstance()->getChicletPanel()->createChiclet(object_id); } + LLIMWellWindow::getInstance()->addObjectRow(object_id, set_new_message); + + LLSD data; + data["object_id"] = object_id; + data["new_message"] = set_new_message; + data["unread"] = 1; // each object has got only one floater + mNewObjectSignal(data); + toggleScriptFloater(object_id, set_new_message); } @@ -267,6 +276,8 @@ void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id) // remove related chiclet LLBottomTray::getInstance()->getChicletPanel()->removeChiclet(object_id); + LLIMWellWindow::getInstance()->removeObjectRow(object_id); + // close floater LLScriptFloater* floater = LLFloaterReg::findTypedInstance("script_floater", notification_id); if(floater) @@ -291,13 +302,6 @@ void LLScriptFloaterManager::removeNotificationByObjectId(const LLUUID& object_i void LLScriptFloaterManager::toggleScriptFloater(const LLUUID& object_id, bool set_new_message) { - // hide "new message" icon from chiclet - LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet(object_id); - if(chiclet) - { - chiclet->setShowNewMessagesIcon(set_new_message); - } - // kill toast using namespace LLNotificationsUI; LLScreenChannel* channel = dynamic_cast(LLChannelManager::getInstance()->findChannelByID( @@ -307,6 +311,11 @@ void LLScriptFloaterManager::toggleScriptFloater(const LLUUID& object_id, bool s channel->killToastByNotificationID(findNotificationToastId(object_id)); } + LLSD data; + data["object_id"] = object_id; + data["new_message"] = set_new_message; + mToggleFloaterSignal(data); + // toggle floater LLScriptFloater::toggle(object_id); } -- cgit v1.2.3