summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llfasttimer.h66
-rw-r--r--indra/llui/llfloater.cpp4
-rw-r--r--indra/llui/llscrolllistctrl.cpp5
-rw-r--r--indra/llui/llscrolllistctrl.h3
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llchiclet.cpp5
-rw-r--r--indra/newview/llcompilequeue.cpp10
-rw-r--r--indra/newview/llfloaterchat.cpp16
-rw-r--r--indra/newview/llfloaterchat.h2
-rw-r--r--indra/newview/llimview.cpp3
-rw-r--r--indra/newview/lllandmarklist.cpp7
-rw-r--r--indra/newview/llpanelclassified.cpp15
-rw-r--r--indra/newview/llpanelclassified.h1
-rw-r--r--indra/newview/llpanellandmarkinfo.cpp7
-rw-r--r--indra/newview/llpanelpick.cpp20
-rw-r--r--indra/newview/llpanelpick.h5
-rw-r--r--indra/newview/llpanelplaces.cpp18
-rw-r--r--indra/newview/llpanelplaces.h2
-rw-r--r--indra/newview/llspeakingindicatormanager.cpp3
-rw-r--r--indra/newview/lltexturectrl.cpp7
-rw-r--r--indra/newview/lltexturectrl.h3
-rw-r--r--indra/newview/llviewermenu.cpp53
-rw-r--r--indra/newview/llviewermessage.cpp22
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml11
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_pick.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_navigation_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_advanced.xml9
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml14
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml14
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml14
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_script.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/scroll_list.xml4
34 files changed, 249 insertions, 138 deletions
diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h
index cd76bfe709..8af79c90fd 100644
--- a/indra/llcommon/llfasttimer.h
+++ b/indra/llcommon/llfasttimer.h
@@ -1,11 +1,11 @@
-/**
+/**
* @file llfasttimer.h
* @brief Declaration of a fast timer.
*
* $LicenseInfo:firstyear=2004&license=viewergpl$
- *
+ *
* Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ *
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
@@ -13,17 +13,17 @@
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
+ *
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
* http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
+ *
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
* and agree to abide by those obligations.
- *
+ *
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
@@ -69,7 +69,7 @@
inline U32 get_cpu_clock_count_32()
{
U32 ret_val;
- __asm
+ __asm
{
_emit 0x0f
_emit 0x31
@@ -85,7 +85,7 @@ inline U32 get_cpu_clock_count_32()
inline U64 get_cpu_clock_count_64()
{
U64 ret_val;
- __asm
+ __asm
{
_emit 0x0f
_emit 0x31
@@ -99,21 +99,21 @@ inline U64 get_cpu_clock_count_64()
#else
#define LL_INLINE
#endif
-
-#if (LL_LINUX || LL_SOLARIS || LL_DARWIN) && (defined(__i386__) || defined(__amd64__))
-inline U32 get_cpu_clock_count_32()
-{
- U64 x;
- __asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
- return (U32)x >> 8;
-}
-
-inline U32 get_cpu_clock_count_64()
-{
- U64 x;
- __asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
- return x >> 8;
-}
+
+#if (LL_LINUX || LL_SOLARIS || LL_DARWIN) && (defined(__i386__) || defined(__amd64__))
+inline U32 get_cpu_clock_count_32()
+{
+ U64 x;
+ __asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
+ return (U32)x >> 8;
+}
+
+inline U32 get_cpu_clock_count_64()
+{
+ U64 x;
+ __asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
+ return x >> 8;
+}
#endif
#if ( LL_DARWIN && !(defined(__i386__) || defined(__amd64__))) || (LL_SOLARIS && defined(__sparc__))
@@ -128,7 +128,7 @@ inline U32 get_cpu_clock_count_32()
}
inline U32 get_cpu_clock_count_64()
-{
+{
return get_clock_count();
}
#endif
@@ -158,7 +158,7 @@ public:
};
// stores a "named" timer instance to be reused via multiple LLFastTimer stack instances
- class LL_COMMON_API NamedTimer
+ class LL_COMMON_API NamedTimer
: public LLInstanceTracker<NamedTimer>
{
friend class DeclareTimer;
@@ -193,7 +193,7 @@ public:
FrameState& getFrameState() const;
- private:
+ private:
friend class LLFastTimer;
friend class NamedTimerFactory;
@@ -204,14 +204,14 @@ public:
// recursive call to gather total time from children
static void accumulateTimings();
- // updates cumulative times and hierarchy,
+ // updates cumulative times and hierarchy,
// can be called multiple times in a frame, at any point
static void processTimes();
static void buildHierarchy();
static void resetFrame();
static void reset();
-
+
//
// members
//
@@ -247,7 +247,7 @@ public:
private:
NamedTimer& mTimer;
- FrameState* mFrameState;
+ FrameState* mFrameState;
};
public:
@@ -267,7 +267,7 @@ public:
frame_state->mCalls++;
// keep current parent as long as it is active when we are
frame_state->mMoveUpTree |= (frame_state->mParent->mActiveCount == 0);
-
+
LLFastTimer::CurTimerData* cur_timer_data = &LLFastTimer::sCurTimerData;
mLastTimerData = *cur_timer_data;
cur_timer_data->mCurTimer = this;
@@ -305,7 +305,7 @@ public:
U64 timer_end = get_cpu_clock_count_64();
sTimerCycles += timer_end - timer_start;
sTimerCalls++;
-#endif
+#endif
}
public:
@@ -321,13 +321,13 @@ public:
typedef std::vector<FrameState> info_list_t;
static info_list_t& getFrameStateList();
-
+
// call this once a frame to reset timers
static void nextFrame();
// dumps current cumulative frame stats to log
// call nextFrame() to reset timers
- static void dumpCurTimes();
+ static void dumpCurTimes();
// call this to reset timer hierarchy, averages, etc.
static void reset();
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 3734a22f7e..4f519afa06 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -2388,10 +2388,12 @@ void LLFloaterView::adjustToFitScreen(LLFloater* floater, BOOL allow_partial_out
new_height = llmax(new_height, min_height);
LLRect new_rect;
- new_rect.setLeftTopAndSize(view_rect.mTop,view_rect.mLeft,new_width, new_height);
+ new_rect.setLeftTopAndSize(view_rect.mLeft,view_rect.mTop,new_width, new_height);
floater->reshape( new_width, new_height, TRUE );
floater->setRect(new_rect);
+
+ floater->translateIntoRect( getLocalRect(), false );
}
}
diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp
index a53a30b501..4e84013db0 100644
--- a/indra/llui/llscrolllistctrl.cpp
+++ b/indra/llui/llscrolllistctrl.cpp
@@ -142,6 +142,7 @@ LLScrollListCtrl::Params::Params()
contents(""),
scroll_bar_bg_visible("scroll_bar_bg_visible"),
scroll_bar_bg_color("scroll_bar_bg_color")
+ , border("border")
{
name = "scroll_list";
mouse_opaque = true;
@@ -231,10 +232,8 @@ LLScrollListCtrl::LLScrollListCtrl(const LLScrollListCtrl::Params& p)
if (p.has_border)
{
LLRect border_rect = getLocalRect();
- LLViewBorder::Params params;
- params.name("dig border");
+ LLViewBorder::Params params = p.border;
params.rect(border_rect);
- params.bevel_style(LLViewBorder::BEVEL_IN);
mBorder = LLUICtrlFactory::create<LLViewBorder> (params);
addChild(mBorder);
}
diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h
index 78bc60db6e..907dc90bea 100644
--- a/indra/llui/llscrolllistctrl.h
+++ b/indra/llui/llscrolllistctrl.h
@@ -51,6 +51,7 @@
#include "lldate.h"
#include "llscrolllistitem.h"
#include "llscrolllistcolumn.h"
+#include "llviewborder.h"
class LLScrollListCell;
class LLTextBox;
@@ -109,6 +110,8 @@ public:
scroll_bar_bg_color;
Optional<Contents> contents;
+
+ Optional<LLViewBorder::Params> border;
Params();
};
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 69336243da..53ac1dc0b9 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -3664,17 +3664,6 @@
<key>Value</key>
<string />
</map>
- <key>IMInChat</key>
- <map>
- <key>Comment</key>
- <string>Copy IM into chat console</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>0</integer>
- </map>
<key>IMShowTimestamps</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 1d739f07b1..5497d6121f 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -1293,11 +1293,12 @@ void LLChicletPanel::onChicletClick(LLUICtrl*ctrl,const LLSD&param)
void LLChicletPanel::removeChiclet(chiclet_list_t::iterator it)
{
- mScrollArea->removeChild(*it);
+ LLChiclet* chiclet = *it;
+ mScrollArea->removeChild(chiclet);
mChicletList.erase(it);
arrange();
- (*it)->die();
+ chiclet->die();
}
void LLChicletPanel::removeChiclet(S32 index)
diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp
index 72074955d1..47f1b7c9f5 100644
--- a/indra/newview/llcompilequeue.cpp
+++ b/indra/newview/llcompilequeue.cpp
@@ -446,10 +446,20 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id,
if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status )
{
+ //TODO* CHAT: how to show this?
+ //LLSD args;
+ //args["MESSAGE"] = LLTrans::getString("CompileQueueScriptNotFound);
+ //LLNotificationsUtil::add("SystemMessage", args);
+
buffer = LLTrans::getString("CompileQueueProblemDownloading") + (": ") + data->mScriptName;
}
else if (LL_ERR_INSUFFICIENT_PERMISSIONS == status)
{
+ //TODO* CHAT: how to show this?
+ //LLSD args;
+ //args["MESSAGE"] = LLTrans::getString("CompileQueueScriptNotFound);
+ //LLNotificationsUtil::add("SystemMessage", args);
+
buffer = LLTrans::getString("CompileQueueInsufficientPermFor") + (": ") + data->mScriptName;
}
else
diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp
index c24c224133..cdb9b8edb8 100644
--- a/indra/newview/llfloaterchat.cpp
+++ b/indra/newview/llfloaterchat.cpp
@@ -311,7 +311,7 @@ void LLFloaterChat::onClickToggleShowMute(LLUICtrl* caller, void *data)
}
// Put a line of chat in all the right places
-void LLFloaterChat::addChat(const LLChat& chat, BOOL from_instant_message, BOOL local_agent)
+void LLFloaterChat::addChat(const LLChat& chat, BOOL local_agent)
{
triggerAlerts(chat.mText);
@@ -321,19 +321,7 @@ void LLFloaterChat::addChat(const LLChat& chat, BOOL from_instant_message, BOOL
//if(chat.mSourceType == CHAT_SOURCE_AGENT && chat.mFromID.notNull())
// LLRecentPeople::instance().add(chat.mFromID);
- bool add_chat = true;
- bool log_chat = true;
- if(from_instant_message)
- {
- if (!gSavedSettings.getBOOL("IMInChat"))
- add_chat = false;
- //log_chat = false;
-}
-
- if (add_chat)
- {
- addChatHistory(chat, log_chat);
- }
+ addChatHistory(chat, true);
}
// Moved from lltextparser.cpp to break llui/llaudio library dependency.
diff --git a/indra/newview/llfloaterchat.h b/indra/newview/llfloaterchat.h
index 84fc199bfa..4437a0a5c2 100644
--- a/indra/newview/llfloaterchat.h
+++ b/indra/newview/llfloaterchat.h
@@ -61,7 +61,7 @@ public:
// *TODO:Skinning - move these to LLChat (or LLViewerChat?)
// Add chat to console and history list.
// Color based on source, type, distance.
- static void addChat(const LLChat& chat, BOOL from_im = FALSE, BOOL local_agent = FALSE);
+ static void addChat(const LLChat& chat, BOOL local_agent = FALSE);
// Add chat to history alone.
static void addChatHistory(const LLChat& chat, bool log_to_file = true);
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 6064415a10..3ff156eca3 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -45,6 +45,7 @@
#include "lluictrlfactory.h"
#include "llagent.h"
+#include "llappviewer.h"
#include "llavatariconctrl.h"
#include "llbottomtray.h"
#include "llcallingcard.h"
@@ -1855,7 +1856,7 @@ void LLIncomingCallDialog::onStartIM(void* user_data)
void LLIncomingCallDialog::processCallResponse(S32 response)
{
- if (!gIMMgr)
+ if (!gIMMgr || gDisconnected)
return;
LLUUID session_id = mPayload["session_id"].asUUID();
diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp
index bd9d22c327..ce84474c05 100644
--- a/indra/newview/lllandmarklist.cpp
+++ b/indra/newview/lllandmarklist.cpp
@@ -59,6 +59,13 @@ LLLandmark* LLLandmarkList::getAsset(const LLUUID& asset_uuid, loaded_callback_t
LLLandmark* landmark = get_ptr_in_map(mList, asset_uuid);
if(landmark)
{
+ LLVector3d dummy;
+ if(cb && !landmark->getGlobalPos(dummy))
+ {
+ // landmark is not completely loaded yet
+ loaded_callback_map_t::value_type vt(asset_uuid, cb);
+ mLoadedCallbackMap.insert(vt);
+ }
return landmark;
}
else
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index e29320ffc2..3f5d80c123 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -72,6 +72,7 @@
#include "llviewerwindow.h" // for window width, height
#include "llappviewer.h" // abortQuit()
#include "lltrans.h"
+#include "llstatusbar.h"
const S32 MINIMUM_PRICE_FOR_LISTING = 50; // L$
const S32 MATURE_UNDEFINED = -1;
@@ -1364,6 +1365,7 @@ static const S32 CB_ITEM_PG = 1;
LLPanelClassifiedEdit::LLPanelClassifiedEdit()
: LLPanelClassifiedInfo()
, mIsNew(false)
+ , mCanClose(false)
{
}
@@ -1559,7 +1561,7 @@ void LLPanelClassifiedEdit::resetControls()
bool LLPanelClassifiedEdit::canClose()
{
- return isValidName();
+ return mCanClose;
}
void LLPanelClassifiedEdit::sendUpdate()
@@ -1676,12 +1678,23 @@ void LLPanelClassifiedEdit::onChange()
void LLPanelClassifiedEdit::onSaveClick()
{
+ mCanClose = false;
+
if(!isValidName())
{
notifyInvalidName();
return;
}
+ if(isNew())
+ {
+ if(gStatusBar->getBalance() < getPriceForListing())
+ {
+ LLNotificationsUtil::add("ClassifiedInsufficientFunds");
+ return;
+ }
+ }
+ mCanClose = true;
sendUpdate();
resetDirty();
}
diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h
index 10fdf60bbe..e46806f576 100644
--- a/indra/newview/llpanelclassified.h
+++ b/indra/newview/llpanelclassified.h
@@ -340,6 +340,7 @@ protected:
private:
bool mIsNew;
+ bool mCanClose;
};
#endif // LL_LLPANELCLASSIFIED_H
diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp
index 597b8bdb2d..9654e17659 100644
--- a/indra/newview/llpanellandmarkinfo.cpp
+++ b/indra/newview/llpanellandmarkinfo.cpp
@@ -185,6 +185,13 @@ void LLPanelLandmarkInfo::processParcelInfo(const LLParcelData& parcel_data)
region_z = llround(mPosRegion.mV[VZ]);
}
+ LLSD info;
+ info["update_verbs"] = true;
+ info["global_x"] = parcel_data.global_x;
+ info["global_y"] = parcel_data.global_y;
+ info["global_z"] = parcel_data.global_z;
+ notifyParent(info);
+
if (mInfoType == CREATE_LANDMARK)
{
if (parcel_data.name.empty())
diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp
index e7615929c8..5ac0587550 100644
--- a/indra/newview/llpanelpick.cpp
+++ b/indra/newview/llpanelpick.cpp
@@ -448,7 +448,7 @@ BOOL LLPanelPickEdit::postBuild()
{
LLPanelPickInfo::postBuild();
- mSnapshotCtrl->setOnSelectCallback(boost::bind(&LLPanelPickEdit::onPickChanged, this, _1));
+ mSnapshotCtrl->setCommitCallback(boost::bind(&LLPanelPickEdit::onSnapshotChanged, this));
LLLineEditor* line_edit = getChild<LLLineEditor>("pick_name");
line_edit->setKeystrokeCallback(boost::bind(&LLPanelPickEdit::onPickChanged, this, _1), NULL);
@@ -537,16 +537,14 @@ void LLPanelPickEdit::sendUpdate()
}
}
+void LLPanelPickEdit::onSnapshotChanged()
+{
+ enableSaveButton(true);
+}
+
void LLPanelPickEdit::onPickChanged(LLUICtrl* ctrl)
{
- if(isDirty())
- {
- enableSaveButton(true);
- }
- else
- {
- enableSaveButton(false);
- }
+ enableSaveButton(isDirty());
}
void LLPanelPickEdit::resetData()
@@ -613,10 +611,6 @@ void LLPanelPickEdit::initTexturePickerMouseEvents()
mSnapshotCtrl->setMouseEnterCallback(boost::bind(&LLPanelPickEdit::onTexturePickerMouseEnter, this, _1));
mSnapshotCtrl->setMouseLeaveCallback(boost::bind(&LLPanelPickEdit::onTexturePickerMouseLeave, this, _1));
- // *WORKAROUND: Needed for EXT-1625: enabling save button each time when picker is opened, even if
- // texture wasn't changed (see Steve's comment).
- mSnapshotCtrl->setMouseDownCallback(boost::bind(&LLPanelPickEdit::enableSaveButton, this, true));
-
text_icon->setVisible(FALSE);
}
diff --git a/indra/newview/llpanelpick.h b/indra/newview/llpanelpick.h
index 62c3b20c0d..4f27760a8d 100644
--- a/indra/newview/llpanelpick.h
+++ b/indra/newview/llpanelpick.h
@@ -222,6 +222,11 @@ protected:
void sendUpdate();
/**
+ * Called when snapshot image changes.
+ */
+ void onSnapshotChanged();
+
+ /**
* Callback for Pick snapshot, name and description changed event.
*/
void onPickChanged(LLUICtrl* ctrl);
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index 685104a8b1..a71c8d8958 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -449,6 +449,22 @@ void LLPanelPlaces::setItem(LLInventoryItem* item)
}
}
+S32 LLPanelPlaces::notifyParent(const LLSD& info)
+{
+ if(info.has("update_verbs"))
+ {
+ if(mPosGlobal.isExactlyZero())
+ {
+ mPosGlobal.setVec(info["global_x"], info["global_y"], info["global_z"]);
+ }
+
+ updateVerbs();
+
+ return 1;
+ }
+ return LLPanel::notifyParent(info);
+}
+
void LLPanelPlaces::onLandmarkLoaded(LLLandmark* landmark)
{
if (!mLandmarkInfo)
@@ -460,6 +476,8 @@ void LLPanelPlaces::onLandmarkLoaded(LLLandmark* landmark)
mLandmarkInfo->displayParcelInfo(region_id, mPosGlobal);
mSaveBtn->setEnabled(TRUE);
+
+ updateVerbs();
}
void LLPanelPlaces::onFilterEdit(const std::string& search_string, bool force_filter)
diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h
index b134cf0cba..27b5911ebb 100644
--- a/indra/newview/llpanelplaces.h
+++ b/indra/newview/llpanelplaces.h
@@ -75,6 +75,8 @@ public:
std::string getPlaceInfoType() { return mPlaceInfoType; }
+ /*virtual*/ S32 notifyParent(const LLSD& info);
+
private:
void onLandmarkLoaded(LLLandmark* landmark);
void onFilterEdit(const std::string& search_string, bool force_filter);
diff --git a/indra/newview/llspeakingindicatormanager.cpp b/indra/newview/llspeakingindicatormanager.cpp
index b450d38b5a..5e1d408e8d 100644
--- a/indra/newview/llspeakingindicatormanager.cpp
+++ b/indra/newview/llspeakingindicatormanager.cpp
@@ -36,7 +36,6 @@
#include "llspeakingindicatormanager.h"
-#include "llagentdata.h"
#include "llvoicechannel.h"
#include "llvoiceclient.h"
@@ -134,7 +133,7 @@ private:
//////////////////////////////////////////////////////////////////////////
void SpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator)
{
- if (speaker_id == gAgentID) return;
+ // do not exclude agent's indicators. They should be processed in the same way as others. See EXT-3889.
LL_DEBUGS("SpeakingIndicator") << "Registering indicator: " << speaker_id << LL_ENDL;
speaking_indicator_value_t value_type(speaker_id, speaking_indicator);
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index b980f65e68..9c4825763b 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -878,6 +878,7 @@ LLTextureCtrl::LLTextureCtrl(const LLTextureCtrl::Params& p)
{
setAllowNoTexture(p.allow_no_texture);
setCanApplyImmediately(p.can_apply_immediately);
+ mCommitOnSelection = !p.no_commit_on_selection;
LLTextBox::Params params(p.caption_text);
params.name(p.label);
@@ -1122,7 +1123,11 @@ void LLTextureCtrl::onFloaterCommit(ETexturePickOp op)
}
else
{
- onCommit();
+ // If the "no_commit_on_selection" parameter is set
+ // we commit only when user presses OK in the picker
+ // (i.e. op == TEXTURE_SELECT) or changes texture via DnD.
+ if (mCommitOnSelection || op == TEXTURE_SELECT)
+ onCommit();
}
}
}
diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h
index fb1d591e32..023329a9b2 100644
--- a/indra/newview/lltexturectrl.h
+++ b/indra/newview/lltexturectrl.h
@@ -74,6 +74,7 @@ public:
Optional<std::string> default_image_name;
Optional<bool> allow_no_texture;
Optional<bool> can_apply_immediately;
+ Optional<bool> no_commit_on_selection; // don't commit unless it's DnD or OK button press
Optional<S32> label_width;
Optional<LLUIColor> border_color;
@@ -88,6 +89,7 @@ public:
default_image_name("default_image_name"),
allow_no_texture("allow_no_texture"),
can_apply_immediately("can_apply_immediately"),
+ no_commit_on_selection("no_commit_on_selection", false),
label_width("label_width", -1),
border_color("border_color"),
multiselect_text("multiselect_text"),
@@ -204,6 +206,7 @@ private:
PermissionMask mImmediateFilterPermMask;
PermissionMask mNonImmediateFilterPermMask;
BOOL mCanApplyImmediately;
+ BOOL mCommitOnSelection;
BOOL mNeedsRawImageData;
LLViewBorder* mBorder;
BOOL mValid;
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index d96d7df24a..3f556e5608 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -6373,8 +6373,57 @@ class LLToolsSelectedScriptAction : public view_listener_t
void handle_selected_texture_info(void*)
{
- //useless without LLFloaterChat
- //as since we don't use LLFloaterChat...
+ for (LLObjectSelection::valid_iterator iter = LLSelectMgr::getInstance()->getSelection()->valid_begin();
+ iter != LLSelectMgr::getInstance()->getSelection()->valid_end(); iter++)
+ {
+ LLSelectNode* node = *iter;
+
+ std::string msg;
+ msg.assign("Texture info for: ");
+ msg.append(node->mName);
+
+ //TODO* CHAT: how to show this?
+ //LLSD args;
+ //args["MESSAGE"] = msg;
+ //LLNotificationsUtil::add("SystemMessage", args);
+
+ U8 te_count = node->getObject()->getNumTEs();
+ // map from texture ID to list of faces using it
+ typedef std::map< LLUUID, std::vector<U8> > map_t;
+ map_t faces_per_texture;
+ for (U8 i = 0; i < te_count; i++)
+ {
+ if (!node->isTESelected(i)) continue;
+
+ LLViewerTexture* img = node->getObject()->getTEImage(i);
+ LLUUID image_id = img->getID();
+ faces_per_texture[image_id].push_back(i);
+ }
+ // Per-texture, dump which faces are using it.
+ map_t::iterator it;
+ for (it = faces_per_texture.begin(); it != faces_per_texture.end(); ++it)
+ {
+ LLUUID image_id = it->first;
+ U8 te = it->second[0];
+ LLViewerTexture* img = node->getObject()->getTEImage(te);
+ S32 height = img->getHeight();
+ S32 width = img->getWidth();
+ S32 components = img->getComponents();
+ msg = llformat("%dx%d %s on face ",
+ width,
+ height,
+ (components == 4 ? "alpha" : "opaque"));
+ for (U8 i = 0; i < it->second.size(); ++i)
+ {
+ msg.append( llformat("%d ", (S32)(it->second[i])));
+ }
+
+ //TODO* CHAT: how to show this?
+ //LLSD args;
+ //args["MESSAGE"] = msg;
+ //LLNotificationsUtil::add("SystemMessage", args);
+ }
+ }
}
void handle_test_male(void*)
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 5279c4174a..31a18a2e98 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -908,6 +908,14 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f
LLSideTray::getInstance()->showPanel("panel_places",
LLSD().with("type", "landmark").with("id", item->getUUID()));
}
+ else if("group_offer" == from_name)
+ {
+ // do not open inventory when we open group notice attachment because
+ // we already opened landmark info panel
+ // "group_offer" is passed by LLOpenTaskGroupOffer
+
+ continue;
+ }
else if(from_name.empty())
{
// we receive a message from LLOpenTaskOffer, it mean that new landmark has been added.
@@ -1356,7 +1364,7 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
if (check_offer_throttle(mFromName, true))
{
log_message = chatHistory_string + " " + LLTrans::getString("InvOfferGaveYou") + " " + mDesc + LLTrans::getString(".");
- //TODO* should go to history only - how?
+ //TODO* CHAT: how to show this?
//LLSD args;
//args["MESSAGE"] = log_message;
//LLNotificationsUtil::add("SystemMessage", args);
@@ -1401,7 +1409,7 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
// send the message
msg->sendReliable(mHost);
- //TODO* should go to message history only...
+ //TODO* CHAT: how to show this?
//log_message = LLTrans::getString("InvOfferYouDecline") + " " + mDesc + " " + LLTrans::getString("InvOfferFrom") + " " + mFromName +".";
//LLSD args;
//args["MESSAGE"] = log_message;
@@ -1829,17 +1837,11 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
// history. Pretend the chat is from a local agent,
// so it will go into the history but not be shown on screen.
- //TODO* should go to message hisyory only
+ //TODO* CHAT: how to show this?
//and this is not system message...
//LLSD args;
//args["MESSAGE"] = buffer;
//LLNotificationsUtil::add("SystemMessage", args);
-
- /*
- chat.mText = buffer;
- BOOL local_agent = TRUE;
- LLFloaterChat::addChat( chat, TRUE, local_agent );
- */
}
}
break;
@@ -3076,7 +3078,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
{
// Chat the "back" SLURL. (DEV-4907)
- //should go to history only so leave commented
+ //TODO* CHAT: how to show this?
//LLSD args;
//args["MESSAGE"] = message;
//LLNotificationsUtil::add("SystemMessage", args);
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 21fe2bb242..a98a049c17 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1603,17 +1603,6 @@
function="ToggleControl"
parameter="MouseSmooth" />
</menu_item_check>
- <menu_item_check
- label="Show IMs in Nearby Chat"
- layout="topleft"
- name="IMInChat">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="IMInChat" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="IMInChat" />
- </menu_item_check>
<menu_item_separator
layout="topleft" />
<menu
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 1ec004b194..dddd178aea 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -770,6 +770,16 @@ Save changes to classified [NAME]?
notext="Don&apos;t Save"
yestext="Save"/>
</notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="ClassifiedInsufficientFunds"
+ type="alertmodal">
+Insufficient funds to create classified.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
<notification
icon="alertmodal.tga"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
index 15eff4b67c..8e39697a16 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
@@ -61,6 +61,7 @@
height="197"
width="280"
layout="topleft"
+ no_commit_on_selection="true"
top="20"
left="10"
name="pick_snapshot" />
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index 58cb5fed5d..bfc97ed5da 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -127,7 +127,11 @@
label="Search [SECOND_LIFE]"
name="search_combo_editor"/>
<combo_list
- draw_border="true" />
+ draw_border="true"
+ border.highlight_light_color="FocusColor"
+ border.highlight_dark_color="FocusColor"
+ border.shadow_light_color="FocusColor"
+ border.shadow_dark_color="FocusColor"/>
</search_combo_box>
</panel>
<favorites_bar
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 1e7acb566f..141678f7eb 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -34,7 +34,14 @@
name="background"
tool_tip="Choose color for bubble chat"
top_delta="1"
- width="44" />
+ width="44">
+ <color_swatch.init_callback
+ function="Pref.getUIColor"
+ parameter="BackgroundChatColor" />
+ <color_swatch.commit_callback
+ function="Pref.applyUIColor"
+ parameter="BackgroundChatColor" />
+ </color_swatch>
<slider
control_name="ChatBubbleOpacity"
follows="left|top"
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
index 2bec5b8a29..328d521636 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<chiclet_im_adhoc
- height="25"
+ height="23"
name="im_adhoc_chiclet"
show_speaker="false"
width="25">
<chiclet_im_adhoc.chiclet_button
- height="25"
+ height="23"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
name="chiclet_button"
@@ -14,27 +14,27 @@
<chiclet_im_adhoc.speaker
auto_update="true"
draw_border="false"
- height="25"
+ height="23"
left="25"
name="speaker"
visible="false"
width="20" />
<chiclet_im_adhoc.avatar_icon
- bottom="3"
+ bottom="2"
follows="left|top|bottom"
height="19"
left="3"
mouse_opaque="true"
name="adhoc_icon"
- width="19" />
+ width="18" />
<chiclet_im_adhoc.unread_notifications
font_halign="center"
- height="25"
+ height="23"
left="25"
mouse_opaque="false"
name="unread"
text_color="white"
- v_pad="5"
+ v_pad="3"
visible="false"
width="20" />
<chiclet_im_adhoc.new_message_icon
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
index 1d7f3208af..60658899ee 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<chiclet_im_group
- height="25"
+ height="23"
name="im_group_chiclet"
show_speaker="false"
width="25">
<chiclet_im_group.chiclet_button
- height="25"
+ height="23"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
name="chiclet_button"
@@ -14,28 +14,28 @@
<chiclet_im_group.speaker
auto_update="true"
draw_border="false"
- height="25"
+ height="23"
left="25"
name="speaker"
visible="false"
width="20" />
<chiclet_im_group.group_icon
- bottom="3"
+ bottom="2"
default_icon="Generic_Group"
follows="left|top|bottom"
- height="19"
+ height="18"
left="3"
mouse_opaque="false"
name="group_icon"
width="19" />
<chiclet_im_group.unread_notifications
- height="25"
+ height="23"
font_halign="center"
left="25"
mouse_opaque="false"
name="unread"
text_color="white"
- v_pad="5"
+ v_pad="3"
visible="false"
width="20"/>
<chiclet_im_group.new_message_icon
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
index e6289f7cef..b5b8f0d07a 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<chiclet_im_p2p
- height="25"
+ height="23"
name="im_p2p_chiclet"
show_speaker="false"
width="25">
<chiclet_im_p2p.chiclet_button
- height="25"
+ height="23"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
name="chiclet_button"
@@ -14,27 +14,27 @@
<chiclet_im_p2p.speaker
auto_update="true"
draw_border="false"
- height="25"
+ height="23"
left="25"
name="speaker"
visible="false"
width="20"/>
<chiclet_im_p2p.avatar_icon
- bottom="3"
+ bottom="2"
follows="left|top|bottom"
- height="19"
+ height="18"
left="3"
mouse_opaque="false"
name="avatar_icon"
width="19" />
<chiclet_im_p2p.unread_notifications
- height="25"
+ height="23"
font_halign="center"
left="25"
mouse_opaque="false"
name="unread"
text_color="white"
- v_pad="5"
+ v_pad="3"
visible="false"
width="20"/>
<chiclet_im_p2p.new_message_icon
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
index 138b50c968..1bf9bc9e71 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<chiclet_offer
- height="25"
+ height="23"
name="offer_chiclet"
width="25">
<chiclet_offer.chiclet_button
- height="25"
+ height="23"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
name="chiclet_button"
tab_stop="false"
width="25"/>
<chiclet_offer.icon
- bottom="3"
+ bottom="2"
default_icon="Generic_Object_Small"
follows="all"
- height="19"
+ height="18"
left="3"
mouse_opaque="false"
name="chiclet_icon"
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
index ecf149dc76..38d9904d13 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<chiclet_script
- height="25"
+ height="23"
name="script_chiclet"
width="25">
<chiclet_script.chiclet_button
- height="25"
+ height="23"
image_selected="PushButton_Selected"
image_unselected="PushButton_Off"
name="chiclet_button"
tab_stop="false"
width="25"/>
<chiclet_script.icon
- bottom="3"
+ bottom="2"
follows="all"
- height="19"
+ height="18"
image_name="Generic_Object_Small"
left="3"
mouse_opaque="false"
diff --git a/indra/newview/skins/default/xui/en/widgets/scroll_list.xml b/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
index 4520768216..63166f32b7 100644
--- a/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
@@ -15,4 +15,6 @@
background_visible="true"
heading_height="23"
draw_border="false"
- draw_heading="false" />
+ draw_heading="false"
+ border.name="dig border"
+ border.bevel_style="in" />