summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llavatariconctrl.cpp7
-rw-r--r--indra/newview/llfloaterconversationpreview.cpp27
-rw-r--r--indra/newview/llimconversation.cpp9
-rw-r--r--indra/newview/llimconversation.h2
-rwxr-xr-xindra/newview/llimfloatercontainer.cpp4
-rw-r--r--indra/newview/llimfloatercontainer.h2
-rw-r--r--indra/newview/llnearbychat.cpp40
-rw-r--r--indra/newview/llnearbychat.h2
-rw-r--r--indra/newview/skins/default/xui/en/floater_conversation_preview.xml2
9 files changed, 60 insertions, 35 deletions
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index b539ac38ed..62c6c6763b 100755
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -245,9 +245,10 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
LLIconCtrl::setValue(value);
}
- LLAvatarNameCache::get(mAvatarId,
- boost::bind(&LLAvatarIconCtrl::onAvatarNameCache,
- this, _1, _2));
+ if (mAvatarId != LLUUID::null)
+ {
+ LLAvatarNameCache::get(mAvatarId, boost::bind(&LLAvatarIconCtrl::onAvatarNameCache, this, _1, _2));
+ }
}
bool LLAvatarIconCtrl::updateFromCache()
diff --git a/indra/newview/llfloaterconversationpreview.cpp b/indra/newview/llfloaterconversationpreview.cpp
index 88efc39764..a3825eafc8 100644
--- a/indra/newview/llfloaterconversationpreview.cpp
+++ b/indra/newview/llfloaterconversationpreview.cpp
@@ -29,6 +29,7 @@
#include "llfloaterconversationpreview.h"
#include "llimview.h"
#include "lllineeditor.h"
+#include "llnearbychat.h"
#include "llspinctrl.h"
#include "lltrans.h"
@@ -43,7 +44,6 @@ LLFloaterConversationPreview::LLFloaterConversationPreview(const LLSD& session_i
BOOL LLFloaterConversationPreview::postBuild()
{
mChatHistory = getChild<LLChatHistory>("chat_history");
- getChild<LLUICtrl>("more_history")->setCommitCallback(boost::bind(&LLFloaterConversationPreview::onMoreHistoryBtnClick, this));
const LLConversation* conv = LLConversationLog::instance().getConversation(mSessionID);
std::string name;
@@ -119,20 +119,39 @@ void LLFloaterConversationPreview::showHistory()
{
LLSD msg = *iter;
+ LLUUID from_id = LLUUID::null;
std::string time = msg["time"].asString();
- LLUUID from_id = msg["from_id"].asUUID();
std::string from = msg["from"].asString();
std::string message = msg["message"].asString();
- bool is_history = msg["is_history"].asBoolean();
+
+ if (msg["from_id"].isDefined())
+ {
+ from_id = msg["from_id"].asUUID();
+ }
+ else
+ {
+ std::string legacy_name = gCacheName->buildLegacyName(from);
+ gCacheName->getUUID(legacy_name, from_id);
+ }
LLChat chat;
chat.mFromID = from_id;
chat.mSessionID = mSessionID;
chat.mFromName = from;
chat.mTimeStr = time;
- chat.mChatStyle = is_history ? CHAT_STYLE_HISTORY : chat.mChatStyle;
+ chat.mChatStyle = CHAT_STYLE_HISTORY;
chat.mText = message;
+ if (from_id.isNull() && SYSTEM_FROM == from)
+ {
+ chat.mSourceType = CHAT_SOURCE_SYSTEM;
+
+ }
+ else if (from_id.isNull())
+ {
+ chat.mSourceType = LLNearbyChat::isWordsName(from) ? CHAT_SOURCE_UNKNOWN : CHAT_SOURCE_OBJECT;
+ }
+
mChatHistory->appendMessage(chat);
}
diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp
index a2efe63546..ca8493f787 100644
--- a/indra/newview/llimconversation.cpp
+++ b/indra/newview/llimconversation.cpp
@@ -54,6 +54,7 @@ LLIMConversation::LLIMConversation(const LLUUID& session_id)
, mInputEditor(NULL)
, mInputEditorTopPad(0)
, mRefreshTimer(new LLTimer())
+ , mHasFocus(false)
{
mSession = LLIMModel::getInstance()->findIMSession(mSessionID);
@@ -216,10 +217,10 @@ void LLIMConversation::onFocusReceived()
LLTransientDockableFloater::onFocusReceived();
- mHasFocus = mHaveFocus;
- mHaveFocus = true;
+ mHadFocus = mHasFocus;
+ mHasFocus = true;
- if (! mHasFocus)
+ if (! mHadFocus)
{
LLIMFloaterContainer* container = LLIMFloaterContainer::getInstance();
container->setConvItemSelect(mSessionID);
@@ -229,7 +230,7 @@ void LLIMConversation::onFocusReceived()
void LLIMConversation::onFocusLost()
{
setBackgroundOpaque(false);
- mHaveFocus = false;
+ mHasFocus = false;
LLTransientDockableFloater::onFocusLost();
}
diff --git a/indra/newview/llimconversation.h b/indra/newview/llimconversation.h
index e09ba79a6a..bad5eaa99f 100644
--- a/indra/newview/llimconversation.h
+++ b/indra/newview/llimconversation.h
@@ -140,8 +140,8 @@ private:
LLTimer* mRefreshTimer; ///< Defines the rate at which refresh() is called.
+ bool mHadFocus;
bool mHasFocus;
- bool mHaveFocus;
};
diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index 4e0fba9502..de1fd58661 100755
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -700,7 +700,7 @@ void LLIMFloaterContainer::repositioningWidgets()
}
}
-void LLIMFloaterContainer::setConvItemSelect(LLUUID& session_id)
+void LLIMFloaterContainer::setConvItemSelect(const LLUUID& session_id)
{
LLFolderViewItem* widget = mConversationsWidgets[session_id];
if (widget && mSelectedSession != session_id)
@@ -763,6 +763,8 @@ void LLIMFloaterContainer::addConversationListItem(const LLUUID& uuid)
participant_view->addToFolder(widget);
current_participant_model++;
}
+
+ setConvItemSelect(uuid);
return;
}
diff --git a/indra/newview/llimfloatercontainer.h b/indra/newview/llimfloatercontainer.h
index 1f526091bb..077ecd192b 100644
--- a/indra/newview/llimfloatercontainer.h
+++ b/indra/newview/llimfloatercontainer.h
@@ -62,7 +62,7 @@ public:
/*virtual*/ void addFloater(LLFloater* floaterp,
BOOL select_added_floater,
LLTabContainer::eInsertionPoint insertion_point = LLTabContainer::END);
- void setConvItemSelect(LLUUID& session_id);
+ void setConvItemSelect(const LLUUID& session_id);
/*virtual*/ void tabClose();
static LLFloater* getCurrentVoiceFloater();
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index a803b35aa8..76626bd5a6 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -69,26 +69,6 @@
S32 LLNearbyChat::sLastSpecialChatChannel = 0;
-// --- function in the global namespace :( ---
-bool isWordsName(const std::string& name)
-{
- // checking to see if it's display name plus username in parentheses
- S32 open_paren = name.find(" (", 0);
- S32 close_paren = name.find(')', 0);
-
- if (open_paren != std::string::npos &&
- close_paren == name.length()-1)
- {
- return true;
- }
- else
- {
- //checking for a single space
- S32 pos = name.find(' ', 0);
- return std::string::npos != pos && name.rfind(' ', name.length()) == pos && 0 != pos && name.length()-1 != pos;
- }
-}
-
const S32 EXPANDED_HEIGHT = 266;
const S32 COLLAPSED_HEIGHT = 60;
const S32 EXPANDED_MIN_HEIGHT = 150;
@@ -717,6 +697,26 @@ void LLNearbyChat::sendChatFromViewer(const LLWString &wtext, EChatType type, BO
send_chat_from_viewer(utf8_out_text, type, channel);
}
+// static
+bool LLNearbyChat::isWordsName(const std::string& name)
+{
+ // checking to see if it's display name plus username in parentheses
+ S32 open_paren = name.find(" (", 0);
+ S32 close_paren = name.find(')', 0);
+
+ if (open_paren != std::string::npos &&
+ close_paren == name.length()-1)
+ {
+ return true;
+ }
+ else
+ {
+ //checking for a single space
+ S32 pos = name.find(' ', 0);
+ return std::string::npos != pos && name.rfind(' ', name.length()) == pos && 0 != pos && name.length()-1 != pos;
+ }
+}
+
// static
void LLNearbyChat::startChat(const char* line)
{
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index 2cbafbfa62..648098113a 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -79,6 +79,8 @@ public:
static void sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate);
static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate);
+ static bool isWordsName(const std::string& name);
+
void showHistory();
protected:
diff --git a/indra/newview/skins/default/xui/en/floater_conversation_preview.xml b/indra/newview/skins/default/xui/en/floater_conversation_preview.xml
index 0e5af67f68..6f1ddaaf4f 100644
--- a/indra/newview/skins/default/xui/en/floater_conversation_preview.xml
+++ b/indra/newview/skins/default/xui/en/floater_conversation_preview.xml
@@ -52,7 +52,7 @@
width="50"/>
<text
follows="bottom|right"
- font="SandSerif"
+ font="SansSerif"
height="22"
layout="topleft"
name="page_num_label"