summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2013-02-11 16:10:34 -0800
committerMerov Linden <merov@lindenlab.com>2013-02-11 16:10:34 -0800
commit2317591c93b5870acd6fdedbecc2d8050511459d (patch)
treec79411f06b25eef8ec26e8bcf306e17787d7f121 /indra/newview
parent279d4a95ea84ddeb32efc54deb6923202fe638a7 (diff)
parentc4bcd4f2c2578e8f165361441635ef47f51ec420 (diff)
Pull merge from lindenlab/viewer-chui
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llconversationlog.cpp4
-rw-r--r--indra/newview/llconversationlog.h2
-rw-r--r--indra/newview/llfloaterimcontainer.cpp21
-rw-r--r--indra/newview/llfloaterimcontainer.h1
-rw-r--r--indra/newview/llimview.cpp2
-rw-r--r--indra/newview/llinventorypanel.cpp3
-rw-r--r--indra/newview/lltoastnotifypanel.cpp3
-rw-r--r--indra/newview/skins/default/xui/en/panel_notification.xml2
8 files changed, 28 insertions, 10 deletions
diff --git a/indra/newview/llconversationlog.cpp b/indra/newview/llconversationlog.cpp
index 82176b3a06..15d61e978d 100644
--- a/indra/newview/llconversationlog.cpp
+++ b/indra/newview/llconversationlog.cpp
@@ -276,7 +276,7 @@ void LLConversationLog::updateConversationName(const LLIMModel::LLIMSession* ses
LLConversation* conversation = findConversation(session);
if (conversation)
{
- conversation->setConverstionName(name);
+ conversation->setConversationName(name);
notifyParticularConversationObservers(conversation->getSessionID(), LLConversationLogObserver::CHANGED_NAME);
}
}
@@ -378,7 +378,7 @@ void LLConversationLog::cache()
std::string LLConversationLog::getFileName()
{
std::string filename = "conversation";
- return gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, filename) + ".log";
+ return gDirUtilp->getExpandedFilename(LL_PATH_PER_ACCOUNT_CHAT_LOGS, filename) + ".log";
}
bool LLConversationLog::saveToFile(const std::string& filename)
diff --git a/indra/newview/llconversationlog.h b/indra/newview/llconversationlog.h
index d5b6eccb29..fd38556131 100644
--- a/indra/newview/llconversationlog.h
+++ b/indra/newview/llconversationlog.h
@@ -58,7 +58,7 @@ public:
const time_t& getTime() const { return mTime; }
bool hasOfflineMessages() const { return mHasOfflineIMs; }
- void setConverstionName(std::string conv_name) { mConversationName = conv_name; }
+ void setConversationName(std::string conv_name) { mConversationName = conv_name; }
void setOfflineMessages(bool new_messages) { mHasOfflineIMs = new_messages; }
bool isOlderThan(U32 days) const;
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 2b13ce6377..cef45a5b56 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -62,7 +62,8 @@ LLFloaterIMContainer::LLFloaterIMContainer(const LLSD& seed, const Params& param
mExpandCollapseBtn(NULL),
mConversationsRoot(NULL),
mConversationsEventStream("ConversationsEvents"),
- mInitialized(false)
+ mInitialized(false),
+ mIsFirstLaunch(false)
{
mEnableCallbackRegistrar.add("IMFloaterContainer.Check", boost::bind(&LLFloaterIMContainer::isActionChecked, this, _2));
mCommitCallbackRegistrar.add("IMFloaterContainer.Action", boost::bind(&LLFloaterIMContainer::onCustomAction, this, _2));
@@ -243,6 +244,7 @@ BOOL LLFloaterIMContainer::postBuild()
mGeneralTitle = getTitle();
mInitialized = true;
+ mIsFirstLaunch = true;
// Add callbacks:
// We'll take care of view updates on idle
@@ -273,14 +275,19 @@ void LLFloaterIMContainer::addFloater(LLFloater* floaterp,
openFloater(floaterp->getKey());
return;
}
+
+ LLUUID session_id = floaterp->getKey();
// Make sure the message panel is open when adding a floater or it stays mysteriously hidden
- collapseMessagesPane(false);
+ if (!mIsFirstLaunch)
+ {
+ collapseMessagesPane(false);
+ }
// Add the floater
LLMultiFloater::addFloater(floaterp, select_added_floater, insertion_point);
- LLUUID session_id = floaterp->getKey();
+
LLIconCtrl* icon = 0;
@@ -630,6 +637,12 @@ void LLFloaterIMContainer::collapseMessagesPane(bool collapse)
return;
}
+ if (mIsFirstLaunch)
+ {
+ mIsFirstLaunch = false;
+ return;
+ }
+
// Save current width of panels before collapsing/expanding right pane.
S32 conv_pane_width = mConversationsPane->getRect().getWidth();
S32 msg_pane_width = mMessagesPane->getRect().getWidth();
@@ -1756,7 +1769,7 @@ void LLFloaterIMContainer::openNearbyChat()
{
// If there's only one conversation in the container and that conversation is the nearby chat
//(which it should be...), open it so to make the list of participants visible. This happens to be the most common case when opening the Chat floater.
- if(mConversationsItems.size() == 1)
+ if((mConversationsItems.size() == 1)&&(!mConversationsPane->isCollapsed()))
{
LLConversationViewSession* nearby_chat = dynamic_cast<LLConversationViewSession*>(get_ptr_in_map(mConversationsWidgets,LLUUID()));
if (nearby_chat)
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index 06af6c7b51..a28dba3b98 100644
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -167,6 +167,7 @@ private:
LLLayoutStack* mConversationsStack;
bool mInitialized;
+ bool mIsFirstLaunch;
LLUUID mSelectedSession;
std::string mGeneralTitle;
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 2eaef48049..cdf6cb6252 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -66,6 +66,7 @@
#include "lltoolbarview.h"
#include "llviewercontrol.h"
#include "llviewerparcelmgr.h"
+#include "llconversationlog.h"
#include "message.h"
@@ -950,6 +951,7 @@ bool LLIMModel::logToFile(const std::string& file_name, const std::string& from,
}
LLLogChat::saveHistory(file_name, from_name, from_id, utf8_text);
+ LLConversationLog::instance().cache(); // update the conversation log too
return true;
}
else
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 1357b613bb..fabcd50c7d 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -1401,8 +1401,7 @@ bool LLInventoryPanel::isSelectionRemovable()
}
else
{
- can_delete &= listener->isItemRemovable();
- can_delete &= !listener->isItemInTrash();
+ can_delete &= listener->isItemRemovable() && !listener->isItemInTrash();
}
}
}
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index bd6c42d474..3fd056ea31 100644
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -403,6 +403,9 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
}
}
+ //.xml file intially makes info panel only follow left/right/top. This is so that when control buttons are added the info panel
+ //can shift upward making room for the buttons inside mControlPanel. After the buttons are added, the info panel can then be set to follow 'all'.
+ mInfoPanel->setFollowsAll();
snapToMessageHeight(mTextBox, MAX_LENGTH);
}
diff --git a/indra/newview/skins/default/xui/en/panel_notification.xml b/indra/newview/skins/default/xui/en/panel_notification.xml
index 421ecf10a1..94c468e1bb 100644
--- a/indra/newview/skins/default/xui/en/panel_notification.xml
+++ b/indra/newview/skins/default/xui/en/panel_notification.xml
@@ -22,7 +22,7 @@
background_visible="true"
bg_alpha_color="ToastBackground"
bg_opaque_color="ToastBackground"
- follows="all"
+ follows="left|right|top"
height="100"
label="info_panel"
layout="topleft"