added loading/parsing of Nearby Chat history - EXT-4777 Implement saving and loading chat history for Nearby Chat (both plain text and widgeted chat)
--HG-- branch : product-enginemeow-7.2.2
parent
e43d0f1815
commit
f69510e20c
|
|
@ -62,6 +62,12 @@
|
|||
|
||||
static const S32 RESIZE_BAR_THICKNESS = 3;
|
||||
|
||||
const static std::string IM_TIME("time");
|
||||
const static std::string IM_TEXT("message");
|
||||
const static std::string IM_FROM("from");
|
||||
const static std::string IM_FROM_ID("from_id");
|
||||
|
||||
|
||||
LLNearbyChat::LLNearbyChat(const LLSD& key)
|
||||
: LLDockableFloater(NULL, false, false, key)
|
||||
,mChatHistory(NULL)
|
||||
|
|
@ -262,6 +268,39 @@ void LLNearbyChat::processChatHistoryStyleUpdate(const LLSD& newvalue)
|
|||
nearby_chat->updateChatHistoryStyle();
|
||||
}
|
||||
|
||||
void LLNearbyChat::loadHistory()
|
||||
{
|
||||
std::list<LLSD> history;
|
||||
LLLogChat::loadAllHistory("chat", history);
|
||||
|
||||
std::list<LLSD>::const_iterator it = history.begin();
|
||||
while (it != history.end())
|
||||
{
|
||||
const LLSD& msg = *it;
|
||||
|
||||
std::string from = msg[IM_FROM];
|
||||
LLUUID from_id = LLUUID::null;
|
||||
if (msg[IM_FROM_ID].isUndefined())
|
||||
{
|
||||
gCacheName->getUUID(from, from_id);
|
||||
}
|
||||
|
||||
LLChat chat;
|
||||
chat.mFromName = from;
|
||||
chat.mFromID = from_id;
|
||||
chat.mText = msg[IM_TEXT];
|
||||
chat.mTimeStr = msg[IM_TIME];
|
||||
addMessage(chat);
|
||||
|
||||
it++;
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
LLNearbyChat* LLNearbyChat::getInstance()
|
||||
{
|
||||
return LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat", LLSD());
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
|
@ -278,3 +317,4 @@ void LLNearbyChat::onFocusLost()
|
|||
setBackgroundOpaque(false);
|
||||
LLPanel::onFocusLost();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,6 +65,10 @@ public:
|
|||
|
||||
static void processChatHistoryStyleUpdate(const LLSD& newvalue);
|
||||
|
||||
void loadHistory();
|
||||
|
||||
static LLNearbyChat* getInstance();
|
||||
|
||||
private:
|
||||
virtual void applySavedVariables();
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@
|
|||
#include "llmemorystream.h"
|
||||
#include "llmessageconfig.h"
|
||||
#include "llmoveview.h"
|
||||
#include "llnearbychat.h"
|
||||
#include "llnotifications.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llteleporthistory.h"
|
||||
|
|
@ -904,6 +905,7 @@ bool idle_startup()
|
|||
LLFile::mkdir(gDirUtilp->getChatLogsDir());
|
||||
LLFile::mkdir(gDirUtilp->getPerAccountChatLogsDir());
|
||||
|
||||
|
||||
//good as place as any to create user windlight directories
|
||||
std::string user_windlight_path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight", ""));
|
||||
LLFile::mkdir(user_windlight_path_name.c_str());
|
||||
|
|
@ -1284,6 +1286,14 @@ bool idle_startup()
|
|||
LLAppViewer::instance()->loadNameCache();
|
||||
}
|
||||
|
||||
//gCacheName is required for nearby chat history loading
|
||||
//so I just moved nearby history loading a few states further
|
||||
if (!gNoRender && gSavedPerAccountSettings.getBOOL("LogShowHistory"))
|
||||
{
|
||||
LLNearbyChat* nearby_chat = LLNearbyChat::getInstance();
|
||||
if (nearby_chat) nearby_chat->loadHistory();
|
||||
}
|
||||
|
||||
// *Note: this is where gWorldMap used to be initialized.
|
||||
|
||||
// register null callbacks for audio until the audio system is initialized
|
||||
|
|
|
|||
Loading…
Reference in New Issue