MAINT-3301 FIXED Use separate xml files (saved as open_notifications_<grid>.xml) for each grid.
parent
7991fe96ec
commit
e5b930c92a
|
|
@ -103,19 +103,21 @@ bool LLNotificationStorage::writeNotifications(const LLSD& pNotificationData) co
|
|||
return didFileOpen;
|
||||
}
|
||||
|
||||
bool LLNotificationStorage::readNotifications(LLSD& pNotificationData) const
|
||||
bool LLNotificationStorage::readNotifications(LLSD& pNotificationData, bool is_new_filename) const
|
||||
{
|
||||
LL_INFOS("LLNotificationStorage") << "starting read '" << mFileName << "'" << LL_ENDL;
|
||||
std::string filename = is_new_filename? mFileName : mOldFileName;
|
||||
|
||||
LL_INFOS("LLNotificationStorage") << "starting read '" << filename << "'" << LL_ENDL;
|
||||
|
||||
bool didFileRead;
|
||||
|
||||
pNotificationData.clear();
|
||||
|
||||
llifstream notifyFile(mFileName.c_str());
|
||||
llifstream notifyFile(filename.c_str());
|
||||
didFileRead = notifyFile.is_open();
|
||||
if (!didFileRead)
|
||||
{
|
||||
LL_WARNS("LLNotificationStorage") << "Failed to open file '" << mFileName << "'" << LL_ENDL;
|
||||
LL_WARNS("LLNotificationStorage") << "Failed to open file '" << filename << "'" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -128,7 +130,19 @@ bool LLNotificationStorage::readNotifications(LLSD& pNotificationData) const
|
|||
}
|
||||
}
|
||||
|
||||
LL_INFOS("LLNotificationStorage") << "ending read '" << mFileName << "'" << LL_ENDL;
|
||||
LL_INFOS("LLNotificationStorage") << "ending read '" << filename << "'" << LL_ENDL;
|
||||
if (!didFileRead)
|
||||
{
|
||||
if(is_new_filename)
|
||||
{
|
||||
didFileRead = readNotifications(pNotificationData, false);
|
||||
if(didFileRead)
|
||||
{
|
||||
writeNotifications(pNotificationData);
|
||||
LLFile::remove(mOldFileName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return didFileRead;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,13 +43,15 @@ public:
|
|||
|
||||
protected:
|
||||
bool writeNotifications(const LLSD& pNotificationData) const;
|
||||
bool readNotifications(LLSD& pNotificationData) const;
|
||||
bool readNotifications(LLSD& pNotificationData, bool is_new_filename = true) const;
|
||||
void setFileName(std::string pFileName) {mFileName = pFileName;}
|
||||
void setOldFileName(std::string pFileName) {mOldFileName = pFileName;}
|
||||
|
||||
LLNotificationResponderInterface* createResponder(const std::string& pNotificationName, const LLSD& pParams) const;
|
||||
|
||||
private:
|
||||
std::string mFileName;
|
||||
std::string mOldFileName;
|
||||
};
|
||||
|
||||
#endif // LL_NOTIFICATIONSTORAGE_H
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
#include "llscreenchannel.h"
|
||||
#include "llscriptfloater.h"
|
||||
#include "llviewermessage.h"
|
||||
|
||||
#include "llviewernetwork.h"
|
||||
LLPersistentNotificationStorage::LLPersistentNotificationStorage()
|
||||
: LLSingleton<LLPersistentNotificationStorage>()
|
||||
, LLNotificationStorage("")
|
||||
|
|
@ -158,7 +158,10 @@ void LLPersistentNotificationStorage::loadNotifications()
|
|||
|
||||
void LLPersistentNotificationStorage::initialize()
|
||||
{
|
||||
setFileName(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"));
|
||||
|
||||
LLNotifications::instance().getChannel("Persistent")->
|
||||
connectChanged(boost::bind(&LLPersistentNotificationStorage::onPersistentChannelChanged, this, _1));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue