summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-09-10 10:48:45 -0700
committerMerov Linden <merov@lindenlab.com>2012-09-10 10:48:45 -0700
commit5b72a2d7fb917ed6d60ea27873077dca728a9e71 (patch)
treebc4a2147773faee64a971910cc77fa4b4ee8432b /indra/newview
parent4869e0c269deafa44874a0110cc1f06bdc310407 (diff)
parentd79037017e3a1627be848b9162f28ae16fcb6004 (diff)
Pull merge from richard/viewer-chui
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llimconversation.cpp68
-rw-r--r--indra/newview/llimconversation.h5
-rw-r--r--indra/newview/llimfloater.cpp19
-rw-r--r--indra/newview/llimfloater.h1
-rw-r--r--indra/newview/llnearbychat.cpp44
-rw-r--r--indra/newview/llnearbychat.h2
-rw-r--r--indra/newview/llnearbychathandler.cpp3
-rw-r--r--indra/newview/llnotificationhandlerutil.cpp2
-rw-r--r--indra/newview/llnotificationtiphandler.cpp2
-rwxr-xr-xindra/newview/llviewerwindow.cpp6
-rw-r--r--indra/newview/skins/default/xui/en/floater_im_container.xml4
11 files changed, 70 insertions, 86 deletions
diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp
index d8c81a7849..216c5bbd70 100644
--- a/indra/newview/llimconversation.cpp
+++ b/indra/newview/llimconversation.cpp
@@ -148,7 +148,7 @@ BOOL LLIMConversation::postBuild()
updateHeaderAndToolbar();
- mSaveRect = !getHost();
+ mSaveRect = isTornOff();
initRectControl();
if (isChatMultiTab())
@@ -223,6 +223,46 @@ void LLIMConversation::onFocusLost()
LLTransientDockableFloater::onFocusLost();
}
+std::string LLIMConversation::appendTime()
+{
+ time_t utc_time;
+ utc_time = time_corrected();
+ std::string timeStr ="["+ LLTrans::getString("TimeHour")+"]:["
+ +LLTrans::getString("TimeMin")+"]";
+
+ LLSD substitution;
+
+ substitution["datetime"] = (S32) utc_time;
+ LLStringUtil::format (timeStr, substitution);
+
+ return timeStr;
+}
+
+void LLIMConversation::appendMessage(const LLChat& chat, const LLSD &args)
+{
+ LLChat& tmp_chat = const_cast<LLChat&>(chat);
+
+ if(tmp_chat.mTimeStr.empty())
+ tmp_chat.mTimeStr = appendTime();
+
+ if (!chat.mMuted)
+ {
+ tmp_chat.mFromName = chat.mFromName;
+ LLSD chat_args;
+ if (args) chat_args = args;
+ chat_args["use_plain_text_chat_history"] =
+ gSavedSettings.getBOOL("PlainTextChatHistory");
+ chat_args["show_time"] = gSavedSettings.getBOOL("IMShowTime");
+ chat_args["show_names_for_p2p_conv"] =
+ !mIsP2PChat || gSavedSettings.getBOOL("IMShowNamesForP2PConv");
+
+ if (mChatHistory)
+ {
+ mChatHistory->appendMessage(chat, chat_args);
+ }
+ }
+}
+
void LLIMConversation::buildParticipantList()
{
@@ -309,11 +349,11 @@ void LLIMConversation::hideOrShowTitle()
LLView* floater_contents = getChild<LLView>("contents_view");
LLRect floater_rect = getLocalRect();
- S32 top_border_of_contents = floater_rect.mTop - (getHost()? 0 : floater_header_size);
+ S32 top_border_of_contents = floater_rect.mTop - (isTornOff()? floater_header_size : 0);
LLRect handle_rect (0, floater_rect.mTop, floater_rect.mRight, top_border_of_contents);
LLRect contents_rect (0, top_border_of_contents, floater_rect.mRight, floater_rect.mBottom);
mDragHandle->setShape(handle_rect);
- mDragHandle->setVisible(!getHost());
+ mDragHandle->setVisible(isTornOff());
floater_contents->setShape(contents_rect);
}
@@ -331,8 +371,8 @@ void LLIMConversation::hideAllStandardButtons()
void LLIMConversation::updateHeaderAndToolbar()
{
- bool is_hosted = !!getHost();
- if (is_hosted)
+ bool is_torn_off = !getHost();
+ if (!is_torn_off)
{
hideAllStandardButtons();
}
@@ -341,7 +381,7 @@ void LLIMConversation::updateHeaderAndToolbar()
// Participant list should be visible only in torn off floaters.
bool is_participant_list_visible =
- !is_hosted
+ is_torn_off
&& gSavedSettings.getBOOL("IMShowControlPanel")
&& !mIsP2PChat;
@@ -349,21 +389,21 @@ void LLIMConversation::updateHeaderAndToolbar()
// Display collapse image (<<) if the floater is hosted
// or if it is torn off but has an open control panel.
- bool is_expanded = is_hosted || is_participant_list_visible;
+ bool is_expanded = !is_torn_off || is_participant_list_visible;
mExpandCollapseBtn->setImageOverlay(getString(is_expanded ? "collapse_icon" : "expand_icon"));
// toggle floater's drag handle and title visibility
if (mDragHandle)
{
- mDragHandle->setTitleVisible(!is_hosted);
+ mDragHandle->setTitleVisible(is_torn_off);
}
// The button (>>) should be disabled for torn off P2P conversations.
- mExpandCollapseBtn->setEnabled(is_hosted || !mIsP2PChat);
+ mExpandCollapseBtn->setEnabled(!is_torn_off || !mIsP2PChat);
- mTearOffBtn->setImageOverlay(getString(is_hosted? "tear_off_icon" : "return_icon"));
+ mTearOffBtn->setImageOverlay(getString(is_torn_off? "return_icon" : "tear_off_icon"));
- mCloseBtn->setVisible(is_hosted && !mIsNearbyChat);
+ mCloseBtn->setVisible(!is_torn_off && !mIsNearbyChat);
enableDisableCallBtn();
@@ -400,7 +440,7 @@ void LLIMConversation::processChatHistoryStyleUpdate()
}
}
- LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat");
+ LLNearbyChat* nearby_chat = LLFloaterReg::findTypedInstance<LLNearbyChat>("nearby_chat");
if (nearby_chat)
{
nearby_chat->reloadMessages();
@@ -470,8 +510,8 @@ void LLIMConversation::onClose(bool app_quitting)
void LLIMConversation::onTearOffClicked()
{
- setFollows(getHost()? FOLLOWS_NONE : FOLLOWS_ALL);
- mSaveRect = !getHost();
+ setFollows(isTornOff()? FOLLOWS_ALL : FOLLOWS_NONE);
+ mSaveRect = isTornOff();
initRectControl();
LLFloater::onClickTearOff(this);
updateHeaderAndToolbar();
diff --git a/indra/newview/llimconversation.h b/indra/newview/llimconversation.h
index 50feb12aed..41a76c206e 100644
--- a/indra/newview/llimconversation.h
+++ b/indra/newview/llimconversation.h
@@ -104,6 +104,11 @@ protected:
/* virtual */ void onFocusLost();
/* virtual */ void onFocusReceived();
+ // prepare chat's params and out one message to chatHistory
+ void appendMessage(const LLChat& chat, const LLSD &args = 0);
+
+ std::string appendTime();
+
bool mIsNearbyChat;
bool mIsP2PChat;
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 7b475c1e0b..2474fe0891 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -848,25 +848,6 @@ void LLIMFloater::sessionInitReplyReceived(const LLUUID& im_session_id)
}
}
-void LLIMFloater::appendMessage(const LLChat& chat, const LLSD &args)
-{
- LLChat& tmp_chat = const_cast<LLChat&>(chat);
-
- if (!chat.mMuted)
- {
- tmp_chat.mFromName = chat.mFromName;
- LLSD chat_args;
- if (args) chat_args = args;
- chat_args["use_plain_text_chat_history"] =
- gSavedSettings.getBOOL("PlainTextChatHistory");
- chat_args["show_time"] = gSavedSettings.getBOOL("IMShowTime");
- chat_args["show_names_for_p2p_conv"] = !mIsP2PChat
- || gSavedSettings.getBOOL("IMShowNamesForP2PConv");
-
- mChatHistory->appendMessage(chat, chat_args);
- }
-}
-
void LLIMFloater::updateMessages()
{
std::list<LLSD> messages;
diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h
index 7b2c9e7aef..e4a67a3d56 100644
--- a/indra/newview/llimfloater.h
+++ b/indra/newview/llimfloater.h
@@ -152,7 +152,6 @@ private:
BOOL isInviteAllowed() const;
BOOL inviteToSession(const uuid_vec_t& agent_ids);
- void appendMessage(const LLChat& chat, const LLSD &args = 0);
static void onInputEditorFocusReceived( LLFocusableElement* caller,void* userdata );
static void onInputEditorFocusLost(LLFocusableElement* caller, void* userdata);
static void onInputEditorKeystroke(LLTextEditor* caller, void* userdata);
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index c2ad8cfda3..ddd271e23f 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -69,7 +69,7 @@
S32 LLNearbyChat::sLastSpecialChatChannel = 0;
-// --- 2 functions in the global namespace :( ---
+// --- function in the global namespace :( ---
bool isWordsName(const std::string& name)
{
// checking to see if it's display name plus username in parentheses
@@ -89,22 +89,6 @@ bool isWordsName(const std::string& name)
}
}
-std::string appendTime()
-{
- time_t utc_time;
- utc_time = time_corrected();
- std::string timeStr ="["+ LLTrans::getString("TimeHour")+"]:["
- +LLTrans::getString("TimeMin")+"]";
-
- LLSD substitution;
-
- substitution["datetime"] = (S32) utc_time;
- LLStringUtil::format (timeStr, substitution);
-
- return timeStr;
-}
-
-
const S32 EXPANDED_HEIGHT = 266;
const S32 COLLAPSED_HEIGHT = 60;
const S32 EXPANDED_MIN_HEIGHT = 150;
@@ -129,6 +113,7 @@ LLNearbyChat::LLNearbyChat(const LLSD& llsd)
mSpeakerMgr(NULL),
mExpandedHeight(COLLAPSED_HEIGHT + EXPANDED_HEIGHT)
{
+ mIsP2PChat = false;
mIsNearbyChat = true;
setIsChrome(TRUE);
mKey = LLSD();
@@ -604,31 +589,6 @@ void LLNearbyChat::sendChat( EChatType type )
}
}
-
-void LLNearbyChat::appendMessage(const LLChat& chat, const LLSD &args)
-{
- LLChat& tmp_chat = const_cast<LLChat&>(chat);
-
- if(tmp_chat.mTimeStr.empty())
- tmp_chat.mTimeStr = appendTime();
-
- if (!chat.mMuted)
- {
- tmp_chat.mFromName = chat.mFromName;
- LLSD chat_args;
- if (args) chat_args = args;
- chat_args["use_plain_text_chat_history"] =
- gSavedSettings.getBOOL("PlainTextChatHistory");
- chat_args["show_time"] = gSavedSettings.getBOOL("IMShowTime");
- chat_args["show_names_for_p2p_conv"] = true;
-
- if (mChatHistory)
- {
- mChatHistory->appendMessage(chat, chat_args);
- }
- }
-}
-
void LLNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args)
{
appendMessage(chat, args);
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index 1db7afc01f..2cbafbfa62 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -108,8 +108,6 @@ protected:
private:
- // prepare chat's params and out one message to chatHistory
- void appendMessage(const LLChat& chat, const LLSD &args = 0);
void onNearbySpeakers ();
/*virtual*/ void refresh();
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index ca3fffeffd..f3e17ea61b 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -487,6 +487,8 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg,
if(chat_msg.mText.empty())
return;//don't process empty messages
+ LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat");
+
// Build notification data
LLSD chat;
chat["message"] = chat_msg.mText;
@@ -537,7 +539,6 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg,
}
}
- LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat");
nearby_chat->addMessage(chat_msg, true, args);
if(chat_msg.mSourceType == CHAT_SOURCE_AGENT
diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp
index 2484040ac4..9fd73746e8 100644
--- a/indra/newview/llnotificationhandlerutil.cpp
+++ b/indra/newview/llnotificationhandlerutil.cpp
@@ -181,7 +181,7 @@ void LLHandlerUtil::logGroupNoticeToIMGroup(
// static
void LLHandlerUtil::logToNearbyChat(const LLNotificationPtr& notification, EChatSourceType type)
{
- LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat");
+ LLNearbyChat* nearby_chat = LLFloaterReg::findTypedInstance<LLNearbyChat>("nearby_chat");
if (nearby_chat)
{
LLChat chat_msg(notification->getMessage());
diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp
index ef6668247c..a293e6acb6 100644
--- a/indra/newview/llnotificationtiphandler.cpp
+++ b/indra/newview/llnotificationtiphandler.cpp
@@ -86,7 +86,7 @@ bool LLTipHandler::processNotification(const LLNotificationPtr& notification)
// don't show toast if Nearby Chat is opened
LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat");
- if (nearby_chat && nearby_chat->isChatVisible())
+ if (nearby_chat->isChatVisible())
{
return false;
}
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 791cadaee4..403288b2fd 100755
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2493,7 +2493,7 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
return TRUE;
}
- LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat");
+ LLNearbyChat* nearby_chat = LLFloaterReg::findTypedInstance<LLNearbyChat>("nearby_chat");
// Traverses up the hierarchy
if( keyboard_focus )
@@ -2561,10 +2561,10 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
// If "Pressing letter keys starts local chat" option is selected, we are not in mouselook,
// no view has keyboard focus, this is a printable character key (and no modifier key is
// pressed except shift), then give focus to nearby chat (STORM-560)
- if ( gSavedSettings.getS32("LetterKeysFocusChatBar") && !gAgentCamera.cameraMouselook() &&
+ if ( nearby_chat && gSavedSettings.getS32("LetterKeysFocusChatBar") && !gAgentCamera.cameraMouselook() &&
!keyboard_focus && key < 0x80 && (mask == MASK_NONE || mask == MASK_SHIFT) )
{
- LLChatEntry* chat_editor = nearby_chat->getChatBox();
+ LLChatEntry* chat_editor = LLFloaterReg::findTypedInstance<LLNearbyChat>("nearby_chat")->getChatBox();
if (chat_editor)
{
// passing NULL here, character will be added later when it is handled by character handler.
diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml
index e439fc9005..1583add857 100644
--- a/indra/newview/skins/default/xui/en/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_container.xml
@@ -36,7 +36,7 @@
name="conversations_layout_panel"
min_dim="38"
width="268"
- expanded_min_dim="120">
+ expanded_min_dim="165">
<layout_stack
animate="false"
follows="left|top|right"
@@ -113,7 +113,7 @@
height="430"
name="messages_layout_panel"
width="412"
- expanded_min_dim="205">
+ expanded_min_dim="225">
<panel_container
follows="all"
height="430"