From e2e37cced861b98de8c1a7c9c0d3a50d2d90e433 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 22 May 2024 21:25:21 +0200 Subject: Fix line endlings --- indra/newview/llchannelmanager.cpp | 540 ++++++++++++++++++------------------- 1 file changed, 270 insertions(+), 270 deletions(-) (limited to 'indra/newview/llchannelmanager.cpp') diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp index 6dc75938cc..060430862b 100644 --- a/indra/newview/llchannelmanager.cpp +++ b/indra/newview/llchannelmanager.cpp @@ -1,270 +1,270 @@ -/** - * @file llchannelmanager.cpp - * @brief This class rules screen notification channels. - * - * $LicenseInfo:firstyear=2000&license=viewerlgpl$ - * Second Life Viewer Source Code - * Copyright (C) 2010, 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 - * License as published by the Free Software Foundation; - * version 2.1 of the License only. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" // must be first include - -#include "llchannelmanager.h" - -#include "llappviewer.h" -#include "lldonotdisturbnotificationstorage.h" -#include "llpersistentnotificationstorage.h" -#include "llviewercontrol.h" -#include "llviewerwindow.h" -#include "llrootview.h" -#include "llsyswellwindow.h" -#include "llfloaternotificationstabbed.h" -#include "llfloaterreg.h" - -#include - -using namespace LLNotificationsUI; - -//-------------------------------------------------------------------------- -LLChannelManager::LLChannelManager() -{ - LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&LLChannelManager::onLoginCompleted, this)); - mChannelList.clear(); - mStartUpChannel = NULL; - - if(!gViewerWindow) - { - LL_ERRS() << "LLChannelManager::LLChannelManager() - viwer window is not initialized yet" << LL_ENDL; - } - - // We don't actually need this instance right now, but our - // cleanupSingleton() method deletes LLScreenChannels, which need to - // unregister from LLUI. Calling LLUI::instance() here establishes the - // dependency so LLSingletonBase::deleteAll() calls our deleteSingleton() - // before LLUI::deleteSingleton(). - LLUI::instance(); -} - -//-------------------------------------------------------------------------- -LLChannelManager::~LLChannelManager() -{ -} - -//-------------------------------------------------------------------------- -void LLChannelManager::cleanupSingleton() -{ - // Note: LLScreenChannelBase is a LLUICtrl and depends onto other singletions - // not captured by singleton-dependency, so cleanup it here instead of destructor - for (std::vector::iterator it = mChannelList.begin(); it != mChannelList.end(); ++it) - { - LLScreenChannelBase* channel = it->channel.get(); - if (!channel) continue; - - delete channel; - } - - mChannelList.clear(); -} - -//-------------------------------------------------------------------------- -LLScreenChannel* LLChannelManager::createNotificationChannel() -{ - // creating params for a channel - LLScreenChannelBase::Params p; - p.id = NOTIFICATION_CHANNEL_UUID; - p.channel_align = CA_RIGHT; - p.toast_align = NA_TOP; - - // Getting a Channel for our notifications - return dynamic_cast (LLChannelManager::getInstance()->getChannel(p)); -} - -//-------------------------------------------------------------------------- -void LLChannelManager::onLoginCompleted() -{ - S32 away_notifications = 0; - - // calc a number of all offline notifications - for(std::vector::iterator it = mChannelList.begin(); it != mChannelList.end(); ++it) - { - LLScreenChannelBase* channel = it->channel.get(); - if (!channel) continue; - - // don't calc notifications for Nearby Chat - if(channel->getChannelID() == NEARBY_CHAT_CHANNEL_UUID) - { - continue; - } - - // don't calc notifications for channels that always show their notifications - if(!channel->getDisplayToastsAlways()) - { - away_notifications +=channel->getNumberOfHiddenToasts(); - } - } - - away_notifications += gIMMgr->getNumberOfUnreadIM(); - - if(!away_notifications) - { - onStartUpToastClose(); - } - else - { - // create a channel for the StartUp Toast - LLScreenChannelBase::Params p; - p.id = STARTUP_CHANNEL_UUID; - p.channel_align = CA_RIGHT; - mStartUpChannel = createChannel(p); - - if(!mStartUpChannel) - { - onStartUpToastClose(); - } - else - { - gViewerWindow->getRootView()->addChild(mStartUpChannel); - - // init channel's position and size - S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); - mStartUpChannel->init(channel_right_bound - NOTIFY_BOX_WIDTH, channel_right_bound); - 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")); - } - } - - LLPersistentNotificationStorage::getInstance()->loadNotifications(); - LLDoNotDisturbNotificationStorage::getInstance()->loadNotifications(); -} - -//-------------------------------------------------------------------------- -void LLChannelManager::onStartUpToastClose() -{ - if(mStartUpChannel) - { - mStartUpChannel->setVisible(false); - mStartUpChannel->closeStartUpToast(); - removeChannelByID(STARTUP_CHANNEL_UUID); - mStartUpChannel = NULL; - } - - // set StartUp Toast Flag to allow all other channels to show incoming toasts - LLScreenChannel::setStartUpToastShown(); -} - -//-------------------------------------------------------------------------- - -LLScreenChannelBase* LLChannelManager::addChannel(LLScreenChannelBase* channel) -{ - if(!channel) - return 0; - - ChannelElem new_elem; - new_elem.id = channel->getChannelID(); - new_elem.channel = channel->getHandle(); - - mChannelList.push_back(new_elem); - - return channel; -} - -LLScreenChannel* LLChannelManager::createChannel(LLScreenChannelBase::Params& p) -{ - LLScreenChannel* new_channel = new LLScreenChannel(p); - - addChannel(new_channel); - return new_channel; -} - -LLScreenChannelBase* LLChannelManager::getChannel(LLScreenChannelBase::Params& p) -{ - LLScreenChannelBase* new_channel = findChannelByID(p.id); - - if(new_channel) - return new_channel; - - return createChannel(p); - -} - -//-------------------------------------------------------------------------- -LLScreenChannelBase* LLChannelManager::findChannelByID(const LLUUID& id) -{ - std::vector::iterator it = find(mChannelList.begin(), mChannelList.end(), id); - if(it != mChannelList.end()) - { - return (*it).channel.get(); - } - - return NULL; -} - -//-------------------------------------------------------------------------- -void LLChannelManager::removeChannelByID(const LLUUID& id) -{ - std::vector::iterator it = find(mChannelList.begin(), mChannelList.end(), id); - if(it != mChannelList.end()) - { - mChannelList.erase(it); - } -} - -//-------------------------------------------------------------------------- -void LLChannelManager::muteAllChannels(bool mute) -{ - for (std::vector::iterator it = mChannelList.begin(); - it != mChannelList.end(); it++) - { - if (it->channel.get()) - { - it->channel.get()->setShowToasts(!mute); - } - } -} - -void LLChannelManager::killToastsFromChannel(const LLUUID& channel_id, const LLScreenChannel::Matcher& matcher) -{ - LLScreenChannel - * screen_channel = - dynamic_cast (findChannelByID(channel_id)); - if (screen_channel != NULL) - { - screen_channel->killMatchedToasts(matcher); - } -} - -// static -LLNotificationsUI::LLScreenChannel* LLChannelManager::getNotificationScreenChannel() -{ - LLNotificationsUI::LLScreenChannel* channel = static_cast - (LLNotificationsUI::LLChannelManager::getInstance()-> - findChannelByID(NOTIFICATION_CHANNEL_UUID)); - - if (channel == NULL) - { - LL_WARNS() << "Can't find screen channel by NotificationChannelUUID" << LL_ENDL; - llassert(!"Can't find screen channel by NotificationChannelUUID"); - } - - return channel; -} - +/** + * @file llchannelmanager.cpp + * @brief This class rules screen notification channels. + * + * $LicenseInfo:firstyear=2000&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, 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 + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" // must be first include + +#include "llchannelmanager.h" + +#include "llappviewer.h" +#include "lldonotdisturbnotificationstorage.h" +#include "llpersistentnotificationstorage.h" +#include "llviewercontrol.h" +#include "llviewerwindow.h" +#include "llrootview.h" +#include "llsyswellwindow.h" +#include "llfloaternotificationstabbed.h" +#include "llfloaterreg.h" + +#include + +using namespace LLNotificationsUI; + +//-------------------------------------------------------------------------- +LLChannelManager::LLChannelManager() +{ + LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&LLChannelManager::onLoginCompleted, this)); + mChannelList.clear(); + mStartUpChannel = NULL; + + if(!gViewerWindow) + { + LL_ERRS() << "LLChannelManager::LLChannelManager() - viwer window is not initialized yet" << LL_ENDL; + } + + // We don't actually need this instance right now, but our + // cleanupSingleton() method deletes LLScreenChannels, which need to + // unregister from LLUI. Calling LLUI::instance() here establishes the + // dependency so LLSingletonBase::deleteAll() calls our deleteSingleton() + // before LLUI::deleteSingleton(). + LLUI::instance(); +} + +//-------------------------------------------------------------------------- +LLChannelManager::~LLChannelManager() +{ +} + +//-------------------------------------------------------------------------- +void LLChannelManager::cleanupSingleton() +{ + // Note: LLScreenChannelBase is a LLUICtrl and depends onto other singletions + // not captured by singleton-dependency, so cleanup it here instead of destructor + for (std::vector::iterator it = mChannelList.begin(); it != mChannelList.end(); ++it) + { + LLScreenChannelBase* channel = it->channel.get(); + if (!channel) continue; + + delete channel; + } + + mChannelList.clear(); +} + +//-------------------------------------------------------------------------- +LLScreenChannel* LLChannelManager::createNotificationChannel() +{ + // creating params for a channel + LLScreenChannelBase::Params p; + p.id = NOTIFICATION_CHANNEL_UUID; + p.channel_align = CA_RIGHT; + p.toast_align = NA_TOP; + + // Getting a Channel for our notifications + return dynamic_cast (LLChannelManager::getInstance()->getChannel(p)); +} + +//-------------------------------------------------------------------------- +void LLChannelManager::onLoginCompleted() +{ + S32 away_notifications = 0; + + // calc a number of all offline notifications + for(std::vector::iterator it = mChannelList.begin(); it != mChannelList.end(); ++it) + { + LLScreenChannelBase* channel = it->channel.get(); + if (!channel) continue; + + // don't calc notifications for Nearby Chat + if(channel->getChannelID() == NEARBY_CHAT_CHANNEL_UUID) + { + continue; + } + + // don't calc notifications for channels that always show their notifications + if(!channel->getDisplayToastsAlways()) + { + away_notifications +=channel->getNumberOfHiddenToasts(); + } + } + + away_notifications += gIMMgr->getNumberOfUnreadIM(); + + if(!away_notifications) + { + onStartUpToastClose(); + } + else + { + // create a channel for the StartUp Toast + LLScreenChannelBase::Params p; + p.id = STARTUP_CHANNEL_UUID; + p.channel_align = CA_RIGHT; + mStartUpChannel = createChannel(p); + + if(!mStartUpChannel) + { + onStartUpToastClose(); + } + else + { + gViewerWindow->getRootView()->addChild(mStartUpChannel); + + // init channel's position and size + S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin"); + mStartUpChannel->init(channel_right_bound - NOTIFY_BOX_WIDTH, channel_right_bound); + 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")); + } + } + + LLPersistentNotificationStorage::getInstance()->loadNotifications(); + LLDoNotDisturbNotificationStorage::getInstance()->loadNotifications(); +} + +//-------------------------------------------------------------------------- +void LLChannelManager::onStartUpToastClose() +{ + if(mStartUpChannel) + { + mStartUpChannel->setVisible(false); + mStartUpChannel->closeStartUpToast(); + removeChannelByID(STARTUP_CHANNEL_UUID); + mStartUpChannel = NULL; + } + + // set StartUp Toast Flag to allow all other channels to show incoming toasts + LLScreenChannel::setStartUpToastShown(); +} + +//-------------------------------------------------------------------------- + +LLScreenChannelBase* LLChannelManager::addChannel(LLScreenChannelBase* channel) +{ + if(!channel) + return 0; + + ChannelElem new_elem; + new_elem.id = channel->getChannelID(); + new_elem.channel = channel->getHandle(); + + mChannelList.push_back(new_elem); + + return channel; +} + +LLScreenChannel* LLChannelManager::createChannel(LLScreenChannelBase::Params& p) +{ + LLScreenChannel* new_channel = new LLScreenChannel(p); + + addChannel(new_channel); + return new_channel; +} + +LLScreenChannelBase* LLChannelManager::getChannel(LLScreenChannelBase::Params& p) +{ + LLScreenChannelBase* new_channel = findChannelByID(p.id); + + if(new_channel) + return new_channel; + + return createChannel(p); + +} + +//-------------------------------------------------------------------------- +LLScreenChannelBase* LLChannelManager::findChannelByID(const LLUUID& id) +{ + std::vector::iterator it = find(mChannelList.begin(), mChannelList.end(), id); + if(it != mChannelList.end()) + { + return (*it).channel.get(); + } + + return NULL; +} + +//-------------------------------------------------------------------------- +void LLChannelManager::removeChannelByID(const LLUUID& id) +{ + std::vector::iterator it = find(mChannelList.begin(), mChannelList.end(), id); + if(it != mChannelList.end()) + { + mChannelList.erase(it); + } +} + +//-------------------------------------------------------------------------- +void LLChannelManager::muteAllChannels(bool mute) +{ + for (std::vector::iterator it = mChannelList.begin(); + it != mChannelList.end(); it++) + { + if (it->channel.get()) + { + it->channel.get()->setShowToasts(!mute); + } + } +} + +void LLChannelManager::killToastsFromChannel(const LLUUID& channel_id, const LLScreenChannel::Matcher& matcher) +{ + LLScreenChannel + * screen_channel = + dynamic_cast (findChannelByID(channel_id)); + if (screen_channel != NULL) + { + screen_channel->killMatchedToasts(matcher); + } +} + +// static +LLNotificationsUI::LLScreenChannel* LLChannelManager::getNotificationScreenChannel() +{ + LLNotificationsUI::LLScreenChannel* channel = static_cast + (LLNotificationsUI::LLChannelManager::getInstance()-> + findChannelByID(NOTIFICATION_CHANNEL_UUID)); + + if (channel == NULL) + { + LL_WARNS() << "Can't find screen channel by NotificationChannelUUID" << LL_ENDL; + llassert(!"Can't find screen channel by NotificationChannelUUID"); + } + + return channel; +} + -- cgit v1.3