diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lldonotdisturbnotificationstorage.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/lldonotdisturbnotificationstorage.h | 1 | ||||
| -rw-r--r-- | indra/newview/llpersistentnotificationstorage.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llpersistentnotificationstorage.h | 1 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 6 | 
5 files changed, 22 insertions, 5 deletions
diff --git a/indra/newview/lldonotdisturbnotificationstorage.cpp b/indra/newview/lldonotdisturbnotificationstorage.cpp index cb5f9c8a2c..3ee76042ec 100644 --- a/indra/newview/lldonotdisturbnotificationstorage.cpp +++ b/indra/newview/lldonotdisturbnotificationstorage.cpp @@ -80,9 +80,14 @@ LLDoNotDisturbNotificationStorage::~LLDoNotDisturbNotificationStorage()  {  } +void LLDoNotDisturbNotificationStorage::reset() +{ +    setFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "dnd_notifications.xml")); +} +  void LLDoNotDisturbNotificationStorage::initialize()  { -	setFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "dnd_notifications.xml")); +    reset();  	getCommunicationChannel()->connectFailedFilter(boost::bind(&LLDoNotDisturbNotificationStorage::onChannelChanged, this, _1));  } diff --git a/indra/newview/lldonotdisturbnotificationstorage.h b/indra/newview/lldonotdisturbnotificationstorage.h index c6f0bf1ab5..237d58b4de 100644 --- a/indra/newview/lldonotdisturbnotificationstorage.h +++ b/indra/newview/lldonotdisturbnotificationstorage.h @@ -61,6 +61,7 @@ public:  	void loadNotifications();      void updateNotifications();      void removeNotification(const char * name, const LLUUID& id); +    void reset();  protected: diff --git a/indra/newview/llpersistentnotificationstorage.cpp b/indra/newview/llpersistentnotificationstorage.cpp index f95ab9928d..b6549800a2 100644 --- a/indra/newview/llpersistentnotificationstorage.cpp +++ b/indra/newview/llpersistentnotificationstorage.cpp @@ -167,12 +167,16 @@ void LLPersistentNotificationStorage::loadNotifications()  	LL_INFOS("LLPersistentNotificationStorage") << "finished loading notifications" << LL_ENDL;  } -void LLPersistentNotificationStorage::initialize() +void LLPersistentNotificationStorage::reset()  { -	std::string file_name = "open_notifications_" + LLGridManager::getInstance()->getGrid() + ".xml"; -	setFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, file_name)); -	setOldFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "open_notifications.xml")); +    std::string file_name = "open_notifications_" + LLGridManager::getInstance()->getGrid() + ".xml"; +    setFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, file_name)); +    setOldFileName(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "open_notifications.xml")); +} +void LLPersistentNotificationStorage::initialize() +{ +    reset();  	LLNotifications::instance().getChannel("Persistent")->  		connectChanged(boost::bind(&LLPersistentNotificationStorage::onPersistentChannelChanged, this, _1));  } diff --git a/indra/newview/llpersistentnotificationstorage.h b/indra/newview/llpersistentnotificationstorage.h index 1fb4487286..335d85aaf6 100644 --- a/indra/newview/llpersistentnotificationstorage.h +++ b/indra/newview/llpersistentnotificationstorage.h @@ -52,6 +52,7 @@ public:  	void saveNotifications();  	void loadNotifications(); +    void reset();  protected: diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 9e4ba1debf..8794079fbd 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -920,6 +920,12 @@ bool idle_startup()  			LLPersistentNotificationStorage::initParamSingleton();  			LLDoNotDisturbNotificationStorage::initParamSingleton();  		} +        else +        { +            // reinitialize paths in case user switched grids or accounts +            LLPersistentNotificationStorage::getInstance()->reset(); +            LLDoNotDisturbNotificationStorage::getInstance()->reset(); +        }  		// Set PerAccountSettingsFile to the default value.  		std::string settings_per_account = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, LLAppViewer::instance()->getSettingsFilename("Default", "PerAccount"));  | 
