summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llcommon/llchat.h4
-rw-r--r--indra/llui/lldraghandle.cpp1
-rw-r--r--indra/llui/llscrolllistctrl.cpp2
-rw-r--r--indra/newview/llchathistory.cpp8
-rw-r--r--indra/newview/llfloatermap.cpp1
-rw-r--r--indra/newview/llfolderview.cpp100
-rw-r--r--indra/newview/llfolderview.h5
-rw-r--r--indra/newview/llimfloater.cpp1
-rw-r--r--indra/newview/llpanelgroup.cpp15
-rw-r--r--indra/newview/llpanelgroup.h7
-rw-r--r--indra/newview/llplacesinventorypanel.cpp17
-rw-r--r--indra/newview/llplacesinventorypanel.h2
-rw-r--r--indra/newview/skins/default/xui/en/floater_map.xml5
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmark_info.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_place_profile.xml2
17 files changed, 161 insertions, 12 deletions
diff --git a/indra/llcommon/llchat.h b/indra/llcommon/llchat.h
index 5af7991006..46456882ba 100644
--- a/indra/llcommon/llchat.h
+++ b/indra/llcommon/llchat.h
@@ -87,7 +87,8 @@ public:
mTimeStr(),
mPosAgent(),
mURL(),
- mChatStyle(CHAT_STYLE_NORMAL)
+ mChatStyle(CHAT_STYLE_NORMAL),
+ mSessionID()
{ }
std::string mText; // UTF-8 line of text
@@ -102,6 +103,7 @@ public:
LLVector3 mPosAgent;
std::string mURL;
EChatStyle mChatStyle;
+ LLUUID mSessionID;
};
#endif
diff --git a/indra/llui/lldraghandle.cpp b/indra/llui/lldraghandle.cpp
index a93c666648..832f148902 100644
--- a/indra/llui/lldraghandle.cpp
+++ b/indra/llui/lldraghandle.cpp
@@ -113,6 +113,7 @@ void LLDragHandleTop::setTitle(const std::string& title)
params.follows.flags(FOLLOWS_TOP | FOLLOWS_LEFT | FOLLOWS_RIGHT);
params.font_shadow(LLFontGL::DROP_SHADOW_SOFT);
params.use_ellipses = true;
+ params.allow_html = false; //cancel URL replacement in floater title
mTitleBox = LLUICtrlFactory::create<LLTextBox> (params);
addChild( mTitleBox );
}
diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp
index 78386220d9..478e270c98 100644
--- a/indra/llui/llscrolllistctrl.cpp
+++ b/indra/llui/llscrolllistctrl.cpp
@@ -1534,7 +1534,7 @@ LLRect LLScrollListCtrl::getCellRect(S32 row_index, S32 column_index)
S32 rect_bottom = getRowOffsetFromIndex(row_index);
LLScrollListColumn* columnp = getColumn(column_index);
cell_rect.setOriginAndSize(rect_left, rect_bottom,
- rect_left + columnp->getWidth(), mLineHeight);
+ /*rect_left + */columnp->getWidth(), mLineHeight);
return cell_rect;
}
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index dd9f0c2ebe..f1e7e622b3 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -34,6 +34,7 @@
#include "llinstantmessage.h"
+#include "llimview.h"
#include "llchathistory.h"
#include "llcommandhandler.h"
#include "llpanel.h"
@@ -219,6 +220,7 @@ public:
void setup(const LLChat& chat,const LLStyle::Params& style_params)
{
mAvatarID = chat.mFromID;
+ mSessionID = chat.mSessionID;
mSourceType = chat.mSourceType;
gCacheName->get(mAvatarID, FALSE, boost::bind(&LLChatHistoryHeader::nameUpdatedCallback, this, _1, _2, _3, _4));
if(chat.mFromID.isNull())
@@ -341,6 +343,11 @@ protected:
menu->setItemEnabled("Remove Friend", false);
}
+ if (mSessionID == LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, mAvatarID))
+ {
+ menu->setItemVisible("Send IM", false);
+ }
+
menu->buildDrawLabels();
menu->updateParent(LLMenuGL::sMenuContainer);
LLMenuGL::showPopup(this, menu, x, y);
@@ -380,6 +387,7 @@ protected:
std::string mFirstName;
std::string mLastName;
std::string mFrom;
+ LLUUID mSessionID;
S32 mMinUserNameWidth;
};
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp
index d18f127f85..568f4b254e 100644
--- a/indra/newview/llfloatermap.cpp
+++ b/indra/newview/llfloatermap.cpp
@@ -112,6 +112,7 @@ BOOL LLFloaterMap::postBuild()
sendChildToBack(getDragHandle());
setIsChrome(TRUE);
+ getDragHandle()->setTitleVisible(TRUE);
// keep onscreen
gFloaterView->adjustToFitScreen(this, FALSE);
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index b833c611bf..c6135d3bc3 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -1508,10 +1508,26 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
{
if (next == last_selected)
{
+ //special case for LLAccordionCtrl
+ if(notifyParent(LLSD().with("action","select_next")) > 0 )//message was processed
+ {
+ clearSelection();
+ return TRUE;
+ }
return FALSE;
}
setSelection( next, FALSE, TRUE );
}
+ else
+ {
+ //special case for LLAccordionCtrl
+ if(notifyParent(LLSD().with("action","select_next")) > 0 )//message was processed
+ {
+ clearSelection();
+ return TRUE;
+ }
+ return FALSE;
+ }
}
scrollToShowSelection();
mSearchString.clear();
@@ -1556,6 +1572,13 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
{
if (prev == this)
{
+ // If case we are in accordion tab notify parent to go to the previous accordion
+ if(notifyParent(LLSD().with("action","select_prev")) > 0 )//message was processed
+ {
+ clearSelection();
+ return TRUE;
+ }
+
return FALSE;
}
setSelection( prev, FALSE, TRUE );
@@ -2241,6 +2264,83 @@ void LLFolderView::updateRenamerPosition()
}
}
+bool LLFolderView::selectFirstItem()
+{
+ for (folders_t::iterator iter = mFolders.begin();
+ iter != mFolders.end();)
+ {
+ LLFolderViewFolder* folder = (*iter );
+ if (folder->getVisible())
+ {
+ LLFolderViewItem* itemp = folder->getNextFromChild(0,true);
+ if(itemp)
+ setSelection(itemp,FALSE,TRUE);
+ return true;
+ }
+
+ }
+ for(items_t::iterator iit = mItems.begin();
+ iit != mItems.end(); ++iit)
+ {
+ LLFolderViewItem* itemp = (*iit);
+ if (itemp->getVisible())
+ {
+ setSelection(itemp,FALSE,TRUE);
+ return true;
+ }
+ }
+ return false;
+}
+bool LLFolderView::selectLastItem()
+{
+ for(items_t::reverse_iterator iit = mItems.rbegin();
+ iit != mItems.rend(); ++iit)
+ {
+ LLFolderViewItem* itemp = (*iit);
+ if (itemp->getVisible())
+ {
+ setSelection(itemp,FALSE,TRUE);
+ return true;
+ }
+ }
+ for (folders_t::reverse_iterator iter = mFolders.rbegin();
+ iter != mFolders.rend();)
+ {
+ LLFolderViewFolder* folder = (*iter);
+ if (folder->getVisible())
+ {
+ LLFolderViewItem* itemp = folder->getPreviousFromChild(0,true);
+ if(itemp)
+ setSelection(itemp,FALSE,TRUE);
+ return true;
+ }
+ }
+ return false;
+}
+
+
+S32 LLFolderView::notify(const LLSD& info)
+{
+ if(info.has("action"))
+ {
+ std::string str_action = info["action"];
+ if(str_action == "select_first")
+ {
+ setFocus(true);
+ selectFirstItem();
+ return 1;
+
+ }
+ else if(str_action == "select_last")
+ {
+ setFocus(true);
+ selectLastItem();
+ return 1;
+ }
+ }
+ return 0;
+}
+
///----------------------------------------------------------------------------
/// Local function definitions
diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h
index 89e1865e35..56ebdfcf79 100644
--- a/indra/newview/llfolderview.h
+++ b/indra/newview/llfolderview.h
@@ -266,6 +266,8 @@ public:
LLPanel* getParentPanel() { return mParentPanel; }
// DEBUG only
void dumpSelectionInformation();
+
+ virtual S32 notify(const LLSD& info) ;
private:
void updateRenamerPosition();
@@ -278,6 +280,9 @@ protected:
void finishRenamingItem( void );
void closeRenamer( void );
+
+ bool selectFirstItem();
+ bool selectLastItem();
protected:
LLHandle<LLView> mPopupMenuHandle;
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 73597e7de3..c0f22fcea2 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -599,6 +599,7 @@ void LLIMFloater::updateMessages()
LLChat chat;
chat.mFromID = from_id;
+ chat.mSessionID = mSessionID;
chat.mFromName = from;
chat.mText = message;
chat.mTimeStr = time;
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index ac58c35b06..469f1c1739 100644
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -89,8 +89,8 @@ BOOL LLPanelGroupTab::postBuild()
LLPanelGroup::LLPanelGroup()
: LLPanel(),
LLGroupMgrObserver( LLUUID() ),
- mAllowEdit( TRUE )
- ,mShowingNotifyDialog(false)
+ mSkipRefresh(FALSE),
+ mShowingNotifyDialog(false)
{
// Set up the factory callbacks.
// Roles sub tabs
@@ -168,7 +168,6 @@ BOOL LLPanelGroup::postBuild()
button = getChild<LLButton>("btn_refresh");
button->setClickedCallback(onBtnRefresh, this);
- button->setVisible(mAllowEdit);
getChild<LLButton>("btn_create")->setVisible(false);
@@ -492,7 +491,12 @@ bool LLPanelGroup::apply(LLPanelGroupTab* tab)
std::string apply_mesg;
if(tab->apply( apply_mesg ) )
+ {
+ //we skip refreshing group after ew manually apply changes since its very annoying
+ //for those who are editing group
+ mSkipRefresh = TRUE;
return true;
+ }
if ( !apply_mesg.empty() )
{
@@ -539,6 +543,11 @@ void LLPanelGroup::draw()
void LLPanelGroup::refreshData()
{
+ if(mSkipRefresh)
+ {
+ mSkipRefresh = FALSE;
+ return;
+ }
LLGroupMgr::getInstance()->clearGroupData(getID());
setGroupID(getID());
diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h
index 8c84695677..6e23eedffb 100644
--- a/indra/newview/llpanelgroup.h
+++ b/indra/newview/llpanelgroup.h
@@ -85,9 +85,6 @@ public:
virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
- void setAllowEdit(BOOL v) { mAllowEdit = v; }
-
-
static void refreshCreatedGroup(const LLUUID& group_id);
static void showNotice(const std::string& subject,
@@ -126,7 +123,7 @@ protected:
LLTimer mRefreshTimer;
- BOOL mAllowEdit;
+ BOOL mSkipRefresh;
std::string mDefaultNeedsApplyMesg;
std::string mWantApplyMesg;
@@ -169,8 +166,6 @@ public:
virtual BOOL isVisibleByAgent(LLAgent* agentp);
- void setAllowEdit(BOOL v) { mAllowEdit = v; }
-
virtual void setGroupID(const LLUUID& id) {mGroupID = id;};
void notifyObservers() {};
diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp
index 4de953a59d..8edeebaeeb 100644
--- a/indra/newview/llplacesinventorypanel.cpp
+++ b/indra/newview/llplacesinventorypanel.cpp
@@ -143,6 +143,23 @@ void LLPlacesInventoryPanel::restoreFolderState()
getRootFolder()->scrollToShowSelection();
}
+S32 LLPlacesInventoryPanel::notify(const LLSD& info)
+{
+ if(info.has("action"))
+ {
+ std::string str_action = info["action"];
+ if(str_action == "select_first")
+ {
+ return getRootFolder()->notify(info);
+ }
+ else if(str_action == "select_last")
+ {
+ return getRootFolder()->notify(info);
+ }
+ }
+ return 0;
+}
+
/************************************************************************/
/* PROTECTED METHODS */
/************************************************************************/
diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h
index 7b34045d32..86937e7c7f 100644
--- a/indra/newview/llplacesinventorypanel.h
+++ b/indra/newview/llplacesinventorypanel.h
@@ -57,6 +57,8 @@ public:
void saveFolderState();
void restoreFolderState();
+ virtual S32 notify(const LLSD& info) ;
+
private:
LLSaveFolderState* mSavedFolderState;
};
diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml
index 3a5ceed5fb..3ddb7bc349 100644
--- a/indra/newview/skins/default/xui/en/floater_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_map.xml
@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
legacy_header_height="18"
- can_minimize="false"
+ can_minimize="true"
can_resize="true"
+ center_horiz="true"
+ center_vert="true"
follows="top|right"
height="225"
layout="topleft"
min_height="60"
min_width="174"
name="Map"
+ title="Mini Map"
help_topic="map"
save_rect="true"
save_visibility="true"
diff --git a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
index 0893c204e7..1968d96205 100644
--- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
@@ -37,6 +37,7 @@ background_visible="true"
top="2"
width="23" />
<text
+ allow_html="false"
follows="top|left|right"
font="SansSerifHugeBold"
height="26"
diff --git a/indra/newview/skins/default/xui/en/panel_group_list_item.xml b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
index c243d08b97..b674b39d9b 100644
--- a/indra/newview/skins/default/xui/en/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
@@ -36,6 +36,7 @@
top="2"
width="20" />
<text
+ allow_html="false"
follows="left|right"
font="SansSerifSmall"
height="15"
diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
index 67a4edbf32..396699ad6c 100644
--- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
@@ -229,6 +229,7 @@
value="Title:"
width="290" />
<text
+ allow_html="false"
follows="left|top"
height="22"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml
index 8fc2ae39f0..7ac771de27 100644
--- a/indra/newview/skins/default/xui/en/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml
@@ -246,6 +246,7 @@
</layout_panel>
</layout_stack>
<text
+ allow_html="false"
follows="left|top|right"
font="SansSerifLarge"
height="14"
@@ -258,6 +259,7 @@
value="SampleRegion"
width="290" />
<text
+ allow_html="false"
follows="left|top|right"
height="14"
layout="topleft"