summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llchat.h3
-rw-r--r--indra/llrender/llrender.cpp10
-rw-r--r--indra/llrender/llrender.h8
-rw-r--r--indra/llui/lldockablefloater.cpp8
-rw-r--r--indra/llui/lldockablefloater.h2
-rw-r--r--indra/llui/lllayoutstack.cpp38
-rw-r--r--indra/llui/lllayoutstack.h10
-rw-r--r--indra/llui/llscrolllistctrl.h2
-rw-r--r--indra/llui/lltabcontainer.cpp2
-rw-r--r--indra/newview/gpu_table.txt18
-rw-r--r--indra/newview/llavatarlist.cpp2
-rw-r--r--indra/newview/llavatarlist.h3
-rw-r--r--indra/newview/llavatarlistitem.cpp4
-rw-r--r--indra/newview/llavatarlistitem.h2
-rw-r--r--indra/newview/llbottomtray.cpp21
-rw-r--r--indra/newview/llchathistory.cpp15
-rw-r--r--indra/newview/llface.cpp4
-rw-r--r--indra/newview/llfloaternotificationsconsole.cpp2
-rw-r--r--indra/newview/llfloaterpreference.cpp4
-rw-r--r--indra/newview/llgroupmgr.cpp20
-rw-r--r--indra/newview/llimfloater.cpp2
-rw-r--r--indra/newview/lllocationinputctrl.cpp12
-rw-r--r--indra/newview/lllocationinputctrl.h7
-rw-r--r--indra/newview/lllogchat.cpp10
-rw-r--r--indra/newview/llnearbychat.cpp19
-rw-r--r--indra/newview/llnearbychatbar.cpp26
-rw-r--r--indra/newview/llnearbychatbar.h3
-rw-r--r--indra/newview/llnearbychathandler.cpp5
-rw-r--r--indra/newview/lloutputmonitorctrl.cpp8
-rw-r--r--indra/newview/lloutputmonitorctrl.h10
-rw-r--r--indra/newview/llpanelclassified.cpp2
-rw-r--r--indra/newview/llpanelgroupgeneral.h1
-rw-r--r--indra/newview/llpanelnearbymedia.cpp22
-rw-r--r--indra/newview/llparticipantlist.cpp2
-rw-r--r--indra/newview/llscriptfloater.cpp4
-rw-r--r--indra/newview/llspeakingindicatormanager.cpp47
-rw-r--r--indra/newview/llspeakingindicatormanager.h24
-rw-r--r--indra/newview/lltexturefetch.cpp2
-rw-r--r--indra/newview/llviewermediafocus.cpp2
-rw-r--r--indra/newview/llviewermenu.cpp38
-rw-r--r--indra/newview/llviewertexture.cpp273
-rw-r--r--indra/newview/llviewertexture.h5
-rw-r--r--indra/newview/llviewertexturelist.cpp12
-rw-r--r--indra/newview/skins/default/colors.xml2
-rw-r--r--indra/newview/skins/default/textures/icons/unknown_icon.pngbin0 -> 884 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml1
-rw-r--r--indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/en/floater_camera.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_moveview.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_preferences.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_tools.xml21
-rw-r--r--indra/newview/skins/default/xui/en/menu_object.xml28
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml30
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about_land.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/floater_buy_contents.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_buy_object.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_customize.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_pay.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_tools.xml26
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory.xml22
-rw-r--r--indra/newview/skins/default/xui/ja/menu_viewer.xml130
-rw-r--r--indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml6
72 files changed, 555 insertions, 495 deletions
diff --git a/indra/llcommon/llchat.h b/indra/llcommon/llchat.h
index 52238d4533..f1b9091298 100644
--- a/indra/llcommon/llchat.h
+++ b/indra/llcommon/llchat.h
@@ -43,7 +43,8 @@ typedef enum e_chat_source_type
{
CHAT_SOURCE_SYSTEM = 0,
CHAT_SOURCE_AGENT = 1,
- CHAT_SOURCE_OBJECT = 2
+ CHAT_SOURCE_OBJECT = 2,
+ CHAT_SOURCE_UNKNOWN = 3
} EChatSourceType;
typedef enum e_chat_type
diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 55c5b4531b..656f690db5 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -93,7 +93,9 @@ static GLenum sGLBlendFactor[] =
GL_DST_ALPHA,
GL_SRC_ALPHA,
GL_ONE_MINUS_DST_ALPHA,
- GL_ONE_MINUS_SRC_ALPHA
+ GL_ONE_MINUS_SRC_ALPHA,
+
+ GL_ZERO // 'BF_UNDEF'
};
LLTexUnit::LLTexUnit(S32 index)
@@ -763,8 +765,8 @@ LLRender::LLRender()
mCurrAlphaFunc = CF_DEFAULT;
mCurrAlphaFuncVal = 0.01f;
- mCurrBlendSFactor = BF_ONE;
- mCurrBlendDFactor = BF_ZERO;
+ mCurrBlendSFactor = BF_UNDEF;
+ mCurrBlendDFactor = BF_UNDEF;
}
LLRender::~LLRender()
@@ -970,6 +972,8 @@ void LLRender::setAlphaRejectSettings(eCompareFunc func, F32 value)
void LLRender::blendFunc(eBlendFactor sfactor, eBlendFactor dfactor)
{
+ llassert(sfactor < BF_UNDEF);
+ llassert(dfactor < BF_UNDEF);
if (mCurrBlendSFactor != sfactor || mCurrBlendDFactor != dfactor)
{
mCurrBlendSFactor = sfactor;
diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h
index a70ccf4d80..a90fbd4a5c 100644
--- a/indra/llrender/llrender.h
+++ b/indra/llrender/llrender.h
@@ -270,7 +270,9 @@ public:
BF_DEST_ALPHA,
BF_SOURCE_ALPHA,
BF_ONE_MINUS_DEST_ALPHA,
- BF_ONE_MINUS_SOURCE_ALPHA
+ BF_ONE_MINUS_SOURCE_ALPHA,
+
+ BF_UNDEF
} eBlendFactor;
LLRender();
@@ -360,8 +362,8 @@ private:
std::vector<LLTexUnit*> mTexUnits;
LLTexUnit* mDummyTexUnit;
- U32 mCurrBlendSFactor;
- U32 mCurrBlendDFactor;
+ eBlendFactor mCurrBlendSFactor;
+ eBlendFactor mCurrBlendDFactor;
F32 mMaxAnisotropy;
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index 0492ab0f25..3d8670fef2 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -202,10 +202,6 @@ void LLDockableFloater::setDocked(bool docked, bool pop_on_undock)
translate(0, UNDOCK_LEAP_HEIGHT);
}
}
- else
- {
- docked = false;
- }
LLFloater::setDocked(docked, pop_on_undock);
}
@@ -223,10 +219,10 @@ void LLDockableFloater::draw()
LLFloater::draw();
}
-void LLDockableFloater::setDockControl(LLDockControl* dockControl, bool docked /* = true */)
+void LLDockableFloater::setDockControl(LLDockControl* dockControl)
{
mDockControl.reset(dockControl);
- setDocked(docked && mDockControl.get() != NULL && mDockControl.get()->isDockVisible());
+ setDocked(isDocked());
}
const LLUIImagePtr& LLDockableFloater::getDockTongue()
diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h
index 4d747390af..2b1ce99ae2 100644
--- a/indra/llui/lldockablefloater.h
+++ b/indra/llui/lldockablefloater.h
@@ -127,7 +127,7 @@ private:
void resetInstance();
protected:
- void setDockControl(LLDockControl* dockControl, bool docked = true);
+ void setDockControl(LLDockControl* dockControl);
const LLUIImagePtr& getDockTongue();
private:
diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp
index dc79550eb4..4512091371 100644
--- a/indra/llui/lllayoutstack.cpp
+++ b/indra/llui/lllayoutstack.cpp
@@ -49,9 +49,11 @@ static LLDefaultChildRegistry::Register<LLLayoutStack> register_layout_stack("la
//
struct LLLayoutStack::LayoutPanel
{
- LayoutPanel(LLPanel* panelp, ELayoutOrientation orientation, S32 min_width, S32 min_height, BOOL auto_resize, BOOL user_resize) : mPanel(panelp),
+ LayoutPanel(LLPanel* panelp, ELayoutOrientation orientation, S32 min_width, S32 min_height, S32 max_width, S32 max_height, BOOL auto_resize, BOOL user_resize) : mPanel(panelp),
mMinWidth(min_width),
mMinHeight(min_height),
+ mMaxWidth(max_width),
+ mMaxHeight(max_height),
mAutoResize(auto_resize),
mUserResize(user_resize),
mOrientation(orientation),
@@ -112,6 +114,11 @@ struct LLLayoutStack::LayoutPanel
LLPanel* mPanel;
S32 mMinWidth;
S32 mMinHeight;
+
+ // mMaxWidth & mMaxHeight are added to make configurable max width of the nearby chat bar. EXT-5589
+ // they are not processed by LLLayoutStack but they can be if necessary
+ S32 mMaxWidth;
+ S32 mMaxHeight;
BOOL mAutoResize;
BOOL mUserResize;
BOOL mCollapsed;
@@ -261,10 +268,14 @@ LLView* LLLayoutStack::fromXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr o
{
const S32 DEFAULT_MIN_WIDTH = 0;
const S32 DEFAULT_MIN_HEIGHT = 0;
+ const S32 DEFAULT_MAX_WIDTH = S32_MAX;
+ const S32 DEFAULT_MAX_HEIGHT = S32_MAX;
const BOOL DEFAULT_AUTO_RESIZE = TRUE;
S32 min_width = DEFAULT_MIN_WIDTH;
S32 min_height = DEFAULT_MIN_HEIGHT;
+ S32 max_width = DEFAULT_MAX_WIDTH;
+ S32 max_height = DEFAULT_MAX_HEIGHT;
BOOL auto_resize = DEFAULT_AUTO_RESIZE;
LLXMLNodePtr output_child;
@@ -281,6 +292,10 @@ LLView* LLLayoutStack::fromXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr o
DEFAULT_MIN_WIDTH, output_child);
get_attribute_s32_and_write(child_node, "min_height", &min_height,
DEFAULT_MIN_HEIGHT, output_child);
+ get_attribute_s32_and_write(child_node, "max_width", &max_width,
+ DEFAULT_MAX_WIDTH, output_child);
+ get_attribute_s32_and_write(child_node, "max_height", &max_height,
+ DEFAULT_MAX_HEIGHT, output_child);
get_attribute_bool_and_write(child_node, "auto_resize", &auto_resize,
DEFAULT_AUTO_RESIZE, output_child);
@@ -293,7 +308,7 @@ LLView* LLLayoutStack::fromXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr o
if (panelp)
{
panelp->setFollowsNone();
- layout_stackp->addPanel(panelp, min_width, min_height, auto_resize, user_resize);
+ layout_stackp->addPanel(panelp, min_width, min_height, max_width, max_height, auto_resize, user_resize);
}
}
else
@@ -309,7 +324,7 @@ LLView* LLLayoutStack::fromXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr o
if (new_child)
{
// put child in new embedded panel
- layout_stackp->addPanel(panelp, min_width, min_height, auto_resize, user_resize);
+ layout_stackp->addPanel(panelp, min_width, min_height, max_width, max_height, auto_resize, user_resize);
// resize panel to contain widget and move widget to be contained in panel
panelp->setRect(new_child->getRect());
new_child->setOrigin(0, 0);
@@ -359,14 +374,14 @@ S32 LLLayoutStack::getDefaultWidth(S32 cur_width)
return cur_width;
}
-void LLLayoutStack::addPanel(LLPanel* panel, S32 min_width, S32 min_height, BOOL auto_resize, BOOL user_resize, EAnimate animate, S32 index)
+void LLLayoutStack::addPanel(LLPanel* panel, S32 min_width, S32 min_height, S32 max_width, S32 max_height, BOOL auto_resize, BOOL user_resize, EAnimate animate, S32 index)
{
// panel starts off invisible (collapsed)
if (animate == ANIMATE)
{
panel->setVisible(FALSE);
}
- LayoutPanel* embedded_panel = new LayoutPanel(panel, mOrientation, min_width, min_height, auto_resize, user_resize);
+ LayoutPanel* embedded_panel = new LayoutPanel(panel, mOrientation, min_width, min_height, max_width, max_height, auto_resize, user_resize);
mPanels.insert(mPanels.begin() + llclamp(index, 0, (S32)mPanels.size()), embedded_panel);
@@ -437,6 +452,19 @@ bool LLLayoutStack::getPanelMinSize(const std::string& panel_name, S32* min_widt
return NULL != panel;
}
+bool LLLayoutStack::getPanelMaxSize(const std::string& panel_name, S32* max_widthp, S32* max_heightp)
+{
+ LayoutPanel* panel = findEmbeddedPanelByName(panel_name);
+
+ if (panel)
+ {
+ if (max_widthp) *max_widthp = panel->mMaxWidth;
+ if (max_heightp) *max_heightp = panel->mMaxHeight;
+ }
+
+ return NULL != panel;
+}
+
static LLFastTimer::DeclareTimer FTM_UPDATE_LAYOUT("Update LayoutStacks");
void LLLayoutStack::updateLayout(BOOL force_resize)
{
diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h
index c4f10038f8..e454454fe2 100644
--- a/indra/llui/lllayoutstack.h
+++ b/indra/llui/lllayoutstack.h
@@ -74,7 +74,7 @@ public:
ANIMATE
} EAnimate;
- void addPanel(LLPanel* panel, S32 min_width, S32 min_height, BOOL auto_resize, BOOL user_resize, EAnimate animate = NO_ANIMATE, S32 index = S32_MAX);
+ void addPanel(LLPanel* panel, S32 min_width, S32 min_height, S32 max_width, S32 max_height, BOOL auto_resize, BOOL user_resize, EAnimate animate = NO_ANIMATE, S32 index = S32_MAX);
void removePanel(LLPanel* panel);
void collapsePanel(LLPanel* panel, BOOL collapsed = TRUE);
S32 getNumPanels() { return mPanels.size(); }
@@ -89,6 +89,14 @@ public:
* @returns true if specified by panel_name internal panel exists, false otherwise.
*/
bool getPanelMinSize(const std::string& panel_name, S32* min_widthp, S32* min_heightp);
+
+ /**
+ * Gets maximal width and/or height of the specified by name panel.
+ *
+ * If it is necessary to get only the one dimension pass NULL for another one.
+ * @returns true if specified by panel_name internal panel exists, false otherwise.
+ */
+ bool getPanelMaxSize(const std::string& panel_name, S32* max_width, S32* max_height);
void updateLayout(BOOL force_resize = FALSE);
diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h
index 1983891649..e819c5fdea 100644
--- a/indra/llui/llscrolllistctrl.h
+++ b/indra/llui/llscrolllistctrl.h
@@ -96,8 +96,6 @@ public:
};
- //typedef boost::signals2::signal<void (S32,const LLScrollListItem*,const LLScrollListItem*),maximum<S32>> sort_signal_t;
- //typedef boost::signals2::signal<void (S32,const LLScrollListItem*,const LLScrollListItem*)> sort_signal_t;
typedef boost::signals2::signal<S32 (S32,const LLScrollListItem*,const LLScrollListItem*),maximum<S32> > sort_signal_t;
struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp
index cafb7c45f6..85ae13a889 100644
--- a/indra/llui/lltabcontainer.cpp
+++ b/indra/llui/lltabcontainer.cpp
@@ -955,7 +955,7 @@ void LLTabContainer::addTabPanel(const TabPanelParams& panel)
LLRect tab_panel_rect;
if (!getTabsHidden() && mIsVertical)
{
- tab_panel_rect = LLRect(mMinTabWidth + (LLPANEL_BORDER_WIDTH * 2) + tabcntrv_pad,
+ tab_panel_rect = LLRect(mMinTabWidth + mRightTabBtnOffset + (LLPANEL_BORDER_WIDTH * 2) + tabcntrv_pad,
getRect().getHeight() - LLPANEL_BORDER_WIDTH,
getRect().getWidth() - LLPANEL_BORDER_WIDTH,
LLPANEL_BORDER_WIDTH);
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index 887dab66d1..aa0e21ea8f 100644
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
@@ -47,8 +47,10 @@ ATI ASUS EAH26xx .*ATI.*ASUS.*EAH26.* 3 1
ATI ASUS EAH34xx .*ATI.*ASUS.*EAH34.* 1 1
ATI ASUS EAH36xx .*ATI.*ASUS.*EAH36.* 3 1
ATI ASUS EAH38xx .*ATI.*ASUS.*EAH38.* 3 1
+ATI ASUS EAH45xx .*ATI.*ASUS.*EAH45.* 1 1
ATI ASUS EAH48xx .*ATI.*ASUS.*EAH48.* 3 1
-ATI Radeon X1xxx .*ATI.*ASUS.*X1.* 2 1
+ATI ASUS EAH57xx .*ATI.*ASUS.*EAH57.* 3 1
+ATI Radeon X1xxx .*ATI.*ASUS.*X1.* 3 1
ATI Radeon X7xx .*ATI.*ASUS.*X7.* 1 1
ATI Radeon X500 .*ATI.*Diamond X5.* 1 1
ATI Radeon X13xx .*ATI.*Diamond X13.* 1 1
@@ -95,10 +97,16 @@ ATI Radeon HD 3300 .*ATI.*Radeon HD.*33.* 1 1
ATI Radeon HD 3400 .*ATI.*Radeon HD.*34.* 1 1
ATI Radeon HD 3600 .*ATI.*Radeon HD.*36.* 3 1
ATI Radeon HD 3800 .*ATI.*Radeon HD.*38.* 3 1
+ATI Radeon HD 4200 .*ATI.*Radeon HD 42.* 1 1
ATI Radeon HD 4300 .*ATI.*Radeon HD 43.* 1 1
-ATI Radeon HD 4500 .*ATI.*Radeon HD 45.* 2 1
-ATI Radeon HD 4600 .*ATI.*Radeon HD 46.* 3 1
+ATI Radeon HD 4500 .*ATI.*Radeon HD 45.* 3 1
+ATI Radeon HD 4600 .*ATI.*Radeon HD.*46.* 3 1
+ATI Radeon HD 4700 .*ATI.*Radeon HD 47.* 3 1
ATI Radeon HD 4800 .*ATI.*Radeon.*HD.*48.* 3 1
+ATI Radeon HD 5600 .*ATI.*Radeon.*HD.*56.* 3 1
+ATI Radeon HD 5700 .*ATI.*Radeon.*HD.*57.* 3 1
+ATI Radeon HD 5800 .*ATI.*Radeon.*HD.*58.* 3 1
+ATI Radeon HD 5900 .*ATI.*Radeon.*HD.*59.* 3 1
ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0
ATI Radeon 2100 .*ATI.*Radeon 21.* 0 1
ATI Radeon 3100 .*ATI.*Radeon 31.* 1 1
@@ -152,13 +160,17 @@ Intel 945G .*Intel.*945G.* 0 1
Intel 950 .*Intel.*950.* 0 1
Intel 965 .*Intel.*965.* 0 1
Intel G33 .*Intel.*G33.* 0 0
+Intel G41 .*Intel.*G41.* 0 1
Intel G45 .*Intel.*G45.* 0 1
Intel Bear Lake .*Intel.*Bear Lake.* 0 0
Intel Broadwater .*Intel.*Broadwater.* 0 0
Intel Brookdale .*Intel.*Brookdale.* 0 0
Intel Cantiga .*Intel.*Cantiga.* 0 0
Intel Eaglelake .*Intel.*Eaglelake.* 0 1
+Intel Mobile 4 Series .*Intel.*Mobile.*4 Series.* 0 1
+Intel Media Graphics HD .*Intel.*Media.*Graphics.*HD.* 0 1
Intel Montara .*Intel.*Montara.* 0 0
+Intel Pineview .*Intel.*Pineview.* 0 1
Intel Springdale .*Intel.*Springdale.* 0 0
Matrox .*Matrox.* 0 0
Mesa .*Mesa.* 0 0
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 6784e6693b..50d8672083 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -329,7 +329,7 @@ void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is
{
LLAvatarListItem* item = new LLAvatarListItem();
item->setName(name);
- item->setAvatarId(id, mIgnoreOnlineStatus);
+ item->setAvatarId(id, mSessionID, mIgnoreOnlineStatus);
item->setOnline(mIgnoreOnlineStatus ? true : is_online);
item->showLastInteractionTime(mShowLastInteractionTime);
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index aeed4fee08..0e4215e91a 100644
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -78,6 +78,8 @@ public:
bool contains(const LLUUID& id);
void setContextMenu(LLAvatarListItem::ContextMenu* menu) { mContextMenu = menu; }
+ void setSessionID(const LLUUID& session_id) { mSessionID = session_id; }
+ const LLUUID& getSessionID() { return mSessionID; }
void toggleIcons();
void setSpeakingIndicatorsVisible(bool visible);
@@ -119,6 +121,7 @@ private:
std::string mIconParamName;
std::string mNameFilter;
uuid_vector_t mIDs;
+ LLUUID mSessionID;
LLAvatarListItem::ContextMenu* mContextMenu;
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
index 5011b191f4..9645e75e60 100644
--- a/indra/newview/llavatarlistitem.cpp
+++ b/indra/newview/llavatarlistitem.cpp
@@ -211,14 +211,14 @@ void LLAvatarListItem::setState(EItemState item_style)
mAvatarIcon->setColor(item_icon_color_map[item_style]);
}
-void LLAvatarListItem::setAvatarId(const LLUUID& id, bool ignore_status_changes)
+void LLAvatarListItem::setAvatarId(const LLUUID& id, const LLUUID& session_id, bool ignore_status_changes)
{
if (mAvatarId.notNull())
LLAvatarTracker::instance().removeParticularFriendObserver(mAvatarId, this);
mAvatarId = id;
mAvatarIcon->setValue(id);
- mSpeakingIndicator->setSpeakerId(id);
+ mSpeakingIndicator->setSpeakerId(id, session_id);
// We'll be notified on avatar online status changes
if (!ignore_status_changes && mAvatarId.notNull())
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index 426d80e0a8..cecb64add7 100644
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
@@ -100,7 +100,7 @@ public:
void setName(const std::string& name);
void setHighlight(const std::string& highlight);
void setState(EItemState item_style);
- void setAvatarId(const LLUUID& id, bool ignore_status_changes = false);
+ void setAvatarId(const LLUUID& id, const LLUUID& session_id, bool ignore_status_changes = false);
void setLastInteractionTime(U32 secs_since);
//Show/hide profile/info btn, translating speaker indicator and avatar name coordinates accordingly
void setShowProfileBtn(bool show);
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 24b8ef3320..b88be53d79 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -72,6 +72,17 @@ namespace
return minimal_width;
}
+ S32 get_panel_max_width(LLLayoutStack* stack, LLPanel* panel)
+ {
+ S32 max_width = 0;
+ llassert(stack);
+ if ( stack && panel && panel->getVisible() )
+ {
+ stack->getPanelMaxSize(panel->getName(), &max_width, NULL);
+ }
+ return max_width;
+ }
+
S32 get_curr_width(LLUICtrl* ctrl)
{
S32 cur_width = 0;
@@ -672,7 +683,7 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)
}
const S32 chatbar_panel_width = mNearbyChatBar->getRect().getWidth();
- const S32 chatbar_panel_min_width = mNearbyChatBar->getMinWidth();
+ const S32 chatbar_panel_min_width = get_panel_min_width(mToolbarStack, mNearbyChatBar);
if (still_should_be_processed && chatbar_panel_width > chatbar_panel_min_width)
{
// we have some space to decrease chatbar panel
@@ -745,11 +756,11 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)
if (delta_width <= 0) return;
const S32 chiclet_panel_width = mChicletPanel->getParent()->getRect().getWidth();
- const S32 chiclet_panel_min_width = mChicletPanel->getMinWidth();
+ static const S32 chiclet_panel_min_width = mChicletPanel->getMinWidth();
const S32 chatbar_panel_width = mNearbyChatBar->getRect().getWidth();
- const S32 chatbar_panel_min_width = mNearbyChatBar->getMinWidth();
- const S32 chatbar_panel_max_width = mNearbyChatBar->getMaxWidth();
+ static const S32 chatbar_panel_min_width = get_panel_min_width(mToolbarStack, mNearbyChatBar);
+ static const S32 chatbar_panel_max_width = get_panel_max_width(mToolbarStack, mNearbyChatBar);
const S32 chatbar_available_shrink_width = chatbar_panel_width - chatbar_panel_min_width;
const S32 available_width_chiclet = chiclet_panel_width - chiclet_panel_min_width;
@@ -1186,7 +1197,7 @@ bool LLBottomTray::setVisibleAndFitWidths(EResizeState object_type, bool visible
{
// Calculate the possible shrunk width as difference between current and minimal widths
const S32 chatbar_shrunk_width =
- mNearbyChatBar->getRect().getWidth() - mNearbyChatBar->getMinWidth();
+ mNearbyChatBar->getRect().getWidth() - get_panel_min_width(mToolbarStack, mNearbyChatBar);
const S32 sum_of_min_widths =
get_panel_min_width(mToolbarStack, mStateProcessedObjectMap[RS_BUTTON_CAMERA]) +
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 5e8d5a63d0..e1c96d4a16 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -209,6 +209,8 @@ public:
void showInspector()
{
+ if (mAvatarID.isNull() && CHAT_SOURCE_SYSTEM != mSourceType) return;
+
if (mSourceType == CHAT_SOURCE_OBJECT)
{
LLFloaterReg::showInstance("inspect_object", LLSD().with("object_id", mAvatarID));
@@ -279,6 +281,9 @@ public:
break;
case CHAT_SOURCE_SYSTEM:
icon->setValue(LLSD("SL_Logo"));
+ break;
+ case CHAT_SOURCE_UNKNOWN:
+ icon->setValue(LLSD("Unknown_Icon"));
}
}
@@ -325,9 +330,9 @@ protected:
{
if(mSourceType == CHAT_SOURCE_SYSTEM)
showSystemContextMenu(x,y);
- if(mSourceType == CHAT_SOURCE_AGENT)
+ if(mAvatarID.notNull() && mSourceType == CHAT_SOURCE_AGENT)
showAvatarContextMenu(x,y);
- if(mSourceType == CHAT_SOURCE_OBJECT && SYSTEM_FROM != mFrom)
+ if(mAvatarID.notNull() && mSourceType == CHAT_SOURCE_OBJECT && SYSTEM_FROM != mFrom)
showObjectContextMenu(x,y);
}
@@ -486,7 +491,7 @@ void LLChatHistory::initFromParams(const LLChatHistory::Params& p)
panel_p.background_visible = false;
panel_p.has_border = false;
panel_p.mouse_opaque = false;
- stackp->addPanel(LLUICtrlFactory::create<LLPanel>(panel_p), 0, 30, true, false, LLLayoutStack::ANIMATE);
+ stackp->addPanel(LLUICtrlFactory::create<LLPanel>(panel_p), 0, 30, S32_MAX, S32_MAX, true, false, LLLayoutStack::ANIMATE);
panel_p.name = "new_text_notice_holder";
LLRect new_text_notice_rect = getLocalRect();
@@ -504,7 +509,7 @@ void LLChatHistory::initFromParams(const LLChatHistory::Params& p)
mMoreChatText = LLUICtrlFactory::create<LLTextBox>(text_p, mMoreChatPanel);
mMoreChatText->setClickedCallback(boost::bind(&LLChatHistory::onClickMoreText, this));
- stackp->addPanel(mMoreChatPanel, 0, 0, false, false, LLLayoutStack::ANIMATE);
+ stackp->addPanel(mMoreChatPanel, 0, 0, S32_MAX, S32_MAX, false, false, LLLayoutStack::ANIMATE);
}
@@ -632,7 +637,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
if (utf8str_trim(chat.mFromName).size() != 0)
{
// Don't hotlink any messages from the system (e.g. "Second Life:"), so just add those in plain text.
- if ( chat.mSourceType == CHAT_SOURCE_OBJECT )
+ if ( chat.mSourceType == CHAT_SOURCE_OBJECT && chat.mFromID.notNull())
{
// for object IMs, create a secondlife:///app/objectim SLapp
std::string url = LLSLURL::buildCommand("objectim", chat.mFromID, "");
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index ebebd485d2..9de69a8173 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -1065,14 +1065,14 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
mVertexBuffer->getIndexStrider(indicesp, mIndicesIndex);
if (LLPipeline::sUseTriStrips)
{
- for (U16 i = 0; i < num_indices; i++)
+ for (U32 i = 0; i < (U32) num_indices; i++)
{
*indicesp++ = vf.mTriStrip[i] + index_offset;
}
}
else
{
- for (U16 i = 0; i < num_indices; i++)
+ for (U32 i = 0; i < (U32) num_indices; i++)
{
*indicesp++ = vf.mIndices[i] + index_offset;
}
diff --git a/indra/newview/llfloaternotificationsconsole.cpp b/indra/newview/llfloaternotificationsconsole.cpp
index 94b5ebba00..b744bff084 100644
--- a/indra/newview/llfloaternotificationsconsole.cpp
+++ b/indra/newview/llfloaternotificationsconsole.cpp
@@ -210,7 +210,7 @@ void LLFloaterNotificationConsole::addChannel(const std::string& name, bool open
{
LLLayoutStack& stack = getChildRef<LLLayoutStack>("notification_channels");
LLNotificationChannelPanel* panelp = new LLNotificationChannelPanel(name);
- stack.addPanel(panelp, 0, NOTIFICATION_PANEL_HEADER_HEIGHT, TRUE, TRUE, LLLayoutStack::ANIMATE);
+ stack.addPanel(panelp, 0, NOTIFICATION_PANEL_HEADER_HEIGHT, S32_MAX, S32_MAX, TRUE, TRUE, LLLayoutStack::ANIMATE);
LLButton& header_button = panelp->getChildRef<LLButton>("header");
header_button.setToggleState(!open);
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 853693b927..fb7e757c43 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -335,6 +335,10 @@ BOOL LLFloaterPreference::postBuild()
gSavedSettings.getControl("PlainTextChatHistory")->getSignal()->connect(boost::bind(&LLNearbyChat::processChatHistoryStyleUpdate, _2));
+ gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&LLIMFloater::processChatHistoryStyleUpdate, _2));
+
+ gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&LLNearbyChat::processChatHistoryStyleUpdate, _2));
+
LLTabContainer* tabcontainer = getChild<LLTabContainer>("pref core");
if (!tabcontainer->selectTab(gSavedSettings.getS32("LastPrefTab")))
tabcontainer->selectFirstTab();
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index ea5462a3e3..aeac3841f9 100644
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -56,6 +56,16 @@
#include "lluictrlfactory.h"
#include <boost/regex.hpp>
+#if LL_MSVC
+// disable boost::lexical_cast warning
+#pragma warning (disable:4702)
+#endif
+
+#include <boost/lexical_cast.hpp>
+
+#if LL_MSVC
+#pragma warning(pop) // Restore all warnings to the previous state
+#endif
const U32 MAX_CACHED_GROUPS = 10;
@@ -833,13 +843,13 @@ static void formatDateString(std::string &date_string)
const regex expression("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})");
if (regex_match(date_string.c_str(), result, expression))
{
- std::string year = result[3];
- std::string month = result[1];
- std::string day = result[2];
+ // convert matches to integers so that we can pad them with zeroes on Linux
+ S32 year = boost::lexical_cast<S32>(result[3]);
+ S32 month = boost::lexical_cast<S32>(result[1]);
+ S32 day = boost::lexical_cast<S32>(result[2]);
// ISO 8601 date format
- //date_string = llformat("%02s/%02s/%04s", month.c_str(), day.c_str(), year.c_str());
- date_string = llformat("%04s/%02s/%04s", year.c_str(), month.c_str(), day.c_str());
+ date_string = llformat("%04d/%02d/%02d", year, month, day);
}
}
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 098e540678..8cdc50eb70 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -112,6 +112,8 @@ LLIMFloater::LLIMFloater(const LLUUID& session_id)
setOverlapsScreenChannel(true);
LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::IM, this);
+
+ setDocked(true);
}
void LLIMFloater::onFocusLost()
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index f8f9ea7379..5f233bece0 100644
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -473,6 +473,7 @@ BOOL LLLocationInputCtrl::handleKeyHere(KEY key, MASK mask)
void LLLocationInputCtrl::onTextEntry(LLLineEditor* line_editor)
{
KEY key = gKeyboard->currentKey();
+ MASK mask = gKeyboard->currentMask(TRUE);
if (line_editor->getText().empty())
{
@@ -480,7 +481,7 @@ void LLLocationInputCtrl::onTextEntry(LLLineEditor* line_editor)
hideList();
}
// Typing? (moving cursor should not affect showing the list)
- else if (key != KEY_LEFT && key != KEY_RIGHT && key != KEY_HOME && key != KEY_END)
+ else if (mask != MASK_CONTROL && key != KEY_LEFT && key != KEY_RIGHT && key != KEY_HOME && key != KEY_END)
{
prearrangeList(line_editor->getText());
if (mList->getItemCount() != 0)
@@ -674,15 +675,6 @@ void LLLocationInputCtrl::onLocationPrearrange(const LLSD& data)
_1, filter));
}
}
- if(mList->isEmpty())
- {
- /**
- * Add a couple of empty items for a better view.
- * EXT-5194
- */
- for(int i = 0; i < NUMBER_OF_EMPTY_ITEMS; i++ )
- add("", LLSD());
- }
sortByName();
mList->mouseOverHighlightNthItem(-1); // Clear highlight on the last selected item.
diff --git a/indra/newview/lllocationinputctrl.h b/indra/newview/lllocationinputctrl.h
index ee128a5cf7..4bb41f3bf4 100644
--- a/indra/newview/lllocationinputctrl.h
+++ b/indra/newview/lllocationinputctrl.h
@@ -120,13 +120,6 @@ private:
ICON_COUNT
};
- /**
- * This constant holds number of empty dropdown items, which will be displayed instead of doing nothing when the list is empty.
- * Added due to EXT-5194
- */
- static const S32 NUMBER_OF_EMPTY_ITEMS = 3;
-
-
friend class LLUICtrlFactory;
LLLocationInputCtrl(const Params&);
virtual ~LLLocationInputCtrl();
diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp
index 16b13d9218..be8b2363ad 100644
--- a/indra/newview/lllogchat.cpp
+++ b/indra/newview/lllogchat.cpp
@@ -46,7 +46,17 @@
#include <boost/regex.hpp>
#include <boost/regex/v4/match_results.hpp>
+#if LL_MSVC
+// disable warning about boost::lexical_cast unreachable code
+// when it fails to parse the string
+#pragma warning (disable:4702)
+#endif
+
#include <boost/date_time/gregorian/gregorian.hpp>
+#if LL_MSVC
+#pragma warning(pop) // Restore all warnings to the previous state
+#endif
+
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/local_time_adjustor.hpp>
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 16384ef6e0..c8d5d782b7 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -278,6 +278,13 @@ void LLNearbyChat::processChatHistoryStyleUpdate(const LLSD& newvalue)
nearby_chat->updateChatHistoryStyle();
}
+bool isTwoWordsName(const std::string& name)
+{
+ //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;
+}
+
void LLNearbyChat::loadHistory()
{
LLSD do_not_log;
@@ -304,6 +311,18 @@ void LLNearbyChat::loadHistory()
chat.mText = msg[IM_TEXT].asString();
chat.mTimeStr = msg[IM_TIME].asString();
chat.mChatStyle = CHAT_STYLE_HISTORY;
+
+ chat.mSourceType = CHAT_SOURCE_AGENT;
+ if (from_id.isNull() && SYSTEM_FROM == from)
+ {
+ chat.mSourceType = CHAT_SOURCE_SYSTEM;
+
+ }
+ else if (from_id.isNull())
+ {
+ chat.mSourceType = isTwoWordsName(from) ? CHAT_SOURCE_UNKNOWN : CHAT_SOURCE_OBJECT;
+ }
+
addMessage(chat, true, do_not_log);
it++;
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index ad98a29fb2..483756b16e 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -407,32 +407,6 @@ BOOL LLNearbyChatBar::handleKeyHere( KEY key, MASK mask )
return handled;
}
-S32 LLNearbyChatBar::getMinWidth() const
-{
- static S32 min_width = -1;
-
- if (min_width < 0)
- {
- const std::string& s = getString("min_width");
- min_width = !s.empty() ? atoi(s.c_str()) : 300;
- }
-
- return min_width;
-}
-
-S32 LLNearbyChatBar::getMaxWidth() const
-{
- static S32 max_width = -1;
-
- if (max_width < 0)
- {
- const std::string& s = getString("max_width");
- max_width = !s.empty() ? atoi(s.c_str()) : 510;
- }
-
- return max_width;
-}
-
BOOL LLNearbyChatBar::matchChatTypeTrigger(const std::string& in_str, std::string* out_str)
{
U32 in_len = in_str.length();
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index d9a7403611..559c1ee091 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -117,9 +117,6 @@ public:
static void sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate);
static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate);
- S32 getMinWidth() const;
- S32 getMaxWidth() const;
-
protected:
static BOOL matchChatTypeTrigger(const std::string& in_str, std::string* out_str);
static void onChatBoxKeystroke(LLLineEditor* caller, void* userdata);
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index 3c390c0281..a211adc79d 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -34,6 +34,7 @@
#include "llnearbychathandler.h"
+#include "llbottomtray.h"
#include "llchatitemscontainerctrl.h"
#include "llnearbychat.h"
#include "llrecentpeople.h"
@@ -319,9 +320,9 @@ LLNearbyChatHandler::~LLNearbyChatHandler()
void LLNearbyChatHandler::initChannel()
{
LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat", LLSD());
+ LLView* chat_box = LLBottomTray::getInstance()->getChildView("chat_box");
S32 channel_right_bound = nearby_chat->getRect().mRight;
- S32 channel_width = nearby_chat->getRect().mRight;
- mChannel->init(channel_right_bound - channel_width, channel_right_bound);
+ mChannel->init(chat_box->getRect().mLeft, channel_right_bound);
}
diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp
index 9857e37bc3..d6d48a4ead 100644
--- a/indra/newview/lloutputmonitorctrl.cpp
+++ b/indra/newview/lloutputmonitorctrl.cpp
@@ -247,7 +247,7 @@ void LLOutputMonitorCtrl::draw()
gl_rect_2d(0, monh, monw, 0, sColorBound, FALSE);
}
-void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id)
+void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id, const LLUUID& session_id/* = LLUUID::null*/)
{
if (speaker_id.isNull() && mSpeakerId.notNull())
{
@@ -263,7 +263,7 @@ void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id)
}
mSpeakerId = speaker_id;
- LLSpeakingIndicatorManager::registerSpeakingIndicator(mSpeakerId, this);
+ LLSpeakingIndicatorManager::registerSpeakingIndicator(mSpeakerId, this, session_id);
//mute management
if (mAutoUpdate)
@@ -303,7 +303,7 @@ void LLOutputMonitorCtrl::switchIndicator(bool switch_on)
}
// otherwise remember necessary state and mark itself as dirty.
- // State will be applied i next draw when parents chain became visible.
+ // State will be applied in next draw when parents chain becomes visible.
else
{
LL_DEBUGS("SpeakingIndicator") << "Indicator is not in visible chain, parent won't be notified: " << mSpeakerId << LL_ENDL;
@@ -317,7 +317,7 @@ void LLOutputMonitorCtrl::switchIndicator(bool switch_on)
//////////////////////////////////////////////////////////////////////////
void LLOutputMonitorCtrl::notifyParentVisibilityChanged()
{
- LL_DEBUGS("SpeakingIndicator") << "Notify parent that visibility was changed: " << mSpeakerId << " ,new_visibility: " << getVisible() << LL_ENDL;
+ LL_DEBUGS("SpeakingIndicator") << "Notify parent that visibility was changed: " << mSpeakerId << ", new_visibility: " << getVisible() << LL_ENDL;
LLSD params = LLSD().with("visibility_changed", getVisible());
diff --git a/indra/newview/lloutputmonitorctrl.h b/indra/newview/lloutputmonitorctrl.h
index 2bbfa251e9..b7454a5066 100644
--- a/indra/newview/lloutputmonitorctrl.h
+++ b/indra/newview/lloutputmonitorctrl.h
@@ -86,7 +86,15 @@ public:
void setIsTalking(bool val) { mIsTalking = val; }
- void setSpeakerId(const LLUUID& speaker_id);
+ /**
+ * Sets avatar UUID to interact with voice channel.
+ *
+ * @param speaker_id LLUUID of an avatar whose voice level is displayed.
+ * @param session_id session UUID for which indicator should be shown only. Passed to LLSpeakingIndicatorManager
+ * If this parameter is set registered indicator will be shown only in voice channel
+ * which has the same session id (EXT-5562).
+ */
+ void setSpeakerId(const LLUUID& speaker_id, const LLUUID& session_id = LLUUID::null);
//called by mute list
virtual void onChange();
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 2a794a06b5..b4c13da91e 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -1153,6 +1153,8 @@ void LLPanelClassified::setDefaultAccessCombo()
LLPanelClassifiedInfo::LLPanelClassifiedInfo()
: LLPanel()
, mInfoLoaded(false)
+ , mScrollingPanel(NULL)
+ , mScrollContainer(NULL)
{
}
diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h
index cc3101539a..6245018871 100644
--- a/indra/newview/llpanelgroupgeneral.h
+++ b/indra/newview/llpanelgroupgeneral.h
@@ -84,7 +84,6 @@ private:
static void openProfile(void* data);
S32 sortMembersList(S32,const LLScrollListItem*,const LLScrollListItem*);
- //void sortMembersList(S32 column);
static bool joinDlgCB(const LLSD& notification, const LLSD& response);
diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp
index fe77689d63..a73c25a979 100644
--- a/indra/newview/llpanelnearbymedia.cpp
+++ b/indra/newview/llpanelnearbymedia.cpp
@@ -573,13 +573,16 @@ void LLPanelNearByMedia::refreshParcelItems()
if (NULL != mParcelMediaItem)
{
std::string name, url, tooltip;
- getNameAndUrlHelper(LLViewerParcelMedia::getParcelMedia(), name, url, "");
- if (name.empty() || name == url)
+ if (!LLViewerParcelMgr::getInstance()->getAgentParcel()->getObscureMedia())
{
- tooltip = url;
- }
- else {
- tooltip = name + " : " + url;
+ getNameAndUrlHelper(LLViewerParcelMedia::getParcelMedia(), name, url, "");
+ if (name.empty() || name == url)
+ {
+ tooltip = url;
+ }
+ else {
+ tooltip = name + " : " + url;
+ }
}
LLViewerMediaImpl *impl = LLViewerParcelMedia::getParcelMedia();
updateListItem(mParcelMediaItem,
@@ -616,9 +619,14 @@ void LLPanelNearByMedia::refreshParcelItems()
{
bool is_playing = LLViewerMedia::isParcelAudioPlaying();
+ std::string url;
+ if (!LLViewerParcelMgr::getInstance()->getAgentParcel()->getObscureMusic())
+ {
+ url = LLViewerMedia::getParcelAudioURL();
+ }
updateListItem(mParcelAudioItem,
mParcelAudioName,
- LLViewerMedia::getParcelAudioURL(),
+ url,
-1, // Proximity after Parcel Media, but closer than anything else
(!is_playing),
is_playing,
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index 1c4004c37a..2748daaffa 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -70,6 +70,8 @@ LLParticipantList::LLParticipantList(LLSpeakerMgr* data_source, LLAvatarList* av
mSpeakerMgr->addListener(mSpeakerModeratorListener, "update_moderator");
mAvatarList->setNoItemsCommentText(LLTrans::getString("LoadingData"));
+ LL_DEBUGS("SpeakingIndicator") << "Set session for speaking indicators: " << mSpeakerMgr->getSessionID() << LL_ENDL;
+ mAvatarList->setSessionID(mSpeakerMgr->getSessionID());
mAvatarListDoubleClickConnection = mAvatarList->setItemDoubleClickCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this, _1));
mAvatarListRefreshConnection = mAvatarList->setRefreshCompleteCallback(boost::bind(&LLParticipantList::onAvatarListRefreshed, this, _1, _2));
// Set onAvatarListDoubleClicked as default on_return action.
diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp
index a88a242fbe..32fd42aded 100644
--- a/indra/newview/llscriptfloater.cpp
+++ b/indra/newview/llscriptfloater.cpp
@@ -283,7 +283,9 @@ void LLScriptFloater::dockToChiclet(bool dock)
setSavePosition(false);
setDockControl(new LLDockControl(chiclet, this, getDockTongue(),
- LLDockControl::TOP, boost::bind(&LLScriptFloater::getAllowedRect, this, _1)), dock);
+ LLDockControl::TOP, boost::bind(&LLScriptFloater::getAllowedRect, this, _1)));
+
+ setDocked(dock);
// Restore saving
setSavePosition(save);
diff --git a/indra/newview/llspeakingindicatormanager.cpp b/indra/newview/llspeakingindicatormanager.cpp
index d33c050ee4..cc06179481 100644
--- a/indra/newview/llspeakingindicatormanager.cpp
+++ b/indra/newview/llspeakingindicatormanager.cpp
@@ -65,8 +65,12 @@ public:
*
* @param speaker_id LLUUID of an avatar whose speaking indicator is registered.
* @param speaking_indicator instance of the speaking indicator to be registered.
+ * @param session_id session UUID for which indicator should be shown only.
+ * If this parameter is set registered indicator will be shown only in voice channel
+ * which has the same session id (EXT-5562).
*/
- void registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator);
+ void registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator,
+ const LLUUID& session_id = LLUUID::null);
/**
* Removes passed speaking indicator from observing.
@@ -138,15 +142,18 @@ private:
//////////////////////////////////////////////////////////////////////////
// PUBLIC SECTION
//////////////////////////////////////////////////////////////////////////
-void SpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator)
+void SpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator,
+ const LLUUID& session_id)
{
// 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 << "|"<< speaking_indicator << LL_ENDL;
+ LL_DEBUGS("SpeakingIndicator") << "Registering indicator: " << speaker_id << "|"<< speaking_indicator << ", session: " << session_id << LL_ENDL;
ensureInstanceDoesNotExist(speaking_indicator);
+ speaking_indicator->setTargetSessionID(session_id);
+
speaking_indicator_value_t value_type(speaker_id, speaking_indicator);
mSpeakingIndicators.insert(value_type);
@@ -217,6 +224,13 @@ void SpeakingIndicatorManager::onChange()
void SpeakingIndicatorManager::switchSpeakerIndicators(const speaker_ids_t& speakers_uuids, BOOL switch_on)
{
+ LLVoiceChannel* voice_channel = LLVoiceChannel::getCurrentVoiceChannel();
+ LLUUID session_id;
+ if (voice_channel)
+ {
+ session_id = voice_channel->getSessionID();
+ }
+
speaker_ids_t::const_iterator it_uuid = speakers_uuids.begin();
for (; it_uuid != speakers_uuids.end(); ++it_uuid)
{
@@ -224,18 +238,36 @@ void SpeakingIndicatorManager::switchSpeakerIndicators(const speaker_ids_t& spea
indicator_range_t it_range = mSpeakingIndicators.equal_range(*it_uuid);
indicator_const_iterator it_indicator = it_range.first;
bool was_found = false;
+ bool was_switched_on = false;
for (; it_indicator != it_range.second; ++it_indicator)
{
was_found = true;
LLSpeakingIndicator* indicator = (*it_indicator).second;
- indicator->switchIndicator(switch_on);
+
+ BOOL switch_current_on = switch_on;
+
+ // we should show indicator for specified voice session only if this is current channel. EXT-5562.
+ if (switch_current_on && indicator->getTargetSessionID().notNull())
+ {
+ switch_current_on = indicator->getTargetSessionID() == session_id;
+ LL_DEBUGS("SpeakingIndicator") << "Session: " << session_id << ", target: " << indicator->getTargetSessionID() << ", the same? = " << switch_current_on << LL_ENDL;
+ }
+ was_switched_on = was_switched_on || switch_current_on;
+
+ indicator->switchIndicator(switch_current_on);
+
}
if (was_found)
{
LL_DEBUGS("SpeakingIndicator") << mSpeakingIndicators.count(*it_uuid) << " indicators where found" << LL_ENDL;
- if (switch_on)
+ if (switch_on && !was_switched_on)
+ {
+ LL_DEBUGS("SpeakingIndicator") << "but non of them where switched on" << LL_ENDL;
+ }
+
+ if (was_switched_on)
{
// store switched on indicator to be able switch it off
mSwitchedIndicatorsOn.insert(*it_uuid);
@@ -274,9 +306,10 @@ void SpeakingIndicatorManager::ensureInstanceDoesNotExist(LLSpeakingIndicator* c
/* LLSpeakingIndicatorManager namespace implementation */
/************************************************************************/
-void LLSpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator)
+void LLSpeakingIndicatorManager::registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator,
+ const LLUUID& session_id)
{
- SpeakingIndicatorManager::instance().registerSpeakingIndicator(speaker_id, speaking_indicator);
+ SpeakingIndicatorManager::instance().registerSpeakingIndicator(speaker_id, speaking_indicator, session_id);
}
void LLSpeakingIndicatorManager::unregisterSpeakingIndicator(const LLUUID& speaker_id, const LLSpeakingIndicator* const speaking_indicator)
diff --git a/indra/newview/llspeakingindicatormanager.h b/indra/newview/llspeakingindicatormanager.h
index ce0158f7d8..8d7aba1d6c 100644
--- a/indra/newview/llspeakingindicatormanager.h
+++ b/indra/newview/llspeakingindicatormanager.h
@@ -35,10 +35,28 @@
#ifndef LL_LLSPEAKINGINDICATORMANAGER_H
#define LL_LLSPEAKINGINDICATORMANAGER_H
+class SpeakingIndicatorManager;
+
class LLSpeakingIndicator
{
public:
+ virtual ~LLSpeakingIndicator(){}
virtual void switchIndicator(bool switch_on) = 0;
+
+private:
+ friend class SpeakingIndicatorManager;
+ // Accessors for target voice session UUID.
+ // They are intended to be used only from SpeakingIndicatorManager to ensure target session is
+ // the same indicator was registered with.
+ void setTargetSessionID(const LLUUID& session_id) { mTargetSessionID = session_id; }
+ const LLUUID& getTargetSessionID() { return mTargetSessionID; }
+
+ /**
+ * session UUID for which indicator should be shown only.
+ * If it is set, registered indicator will be shown only in voice channel
+ * which has the same session id (EXT-5562).
+ */
+ LLUUID mTargetSessionID;
};
// See EXT-3976.
@@ -52,8 +70,12 @@ namespace LLSpeakingIndicatorManager
*
* @param speaker_id LLUUID of an avatar whose speaker indicator is registered.
* @param speaking_indicator instance of the speaker indicator to be registered.
+ * @param session_id session UUID for which indicator should be shown only.
+ * If this parameter is set registered indicator will be shown only in voice channel
+ * which has the same session id (EXT-5562).
*/
- void registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator);
+ void registerSpeakingIndicator(const LLUUID& speaker_id, LLSpeakingIndicator* const speaking_indicator,
+ const LLUUID& session_id);
/**
* Removes passed speaking indicator from observing.
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index 6c35464a51..0053ce8df8 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -491,7 +491,7 @@ U32 LLTextureFetchWorker::calcWorkPriority()
//llassert_always(mImagePriority >= 0 && mImagePriority <= LLViewerFetchedTexture::maxDecodePriority());
static const F32 PRIORITY_SCALE = (F32)LLWorkerThread::PRIORITY_LOWBITS / LLViewerFetchedTexture::maxDecodePriority();
- mWorkPriority = (U32)(mImagePriority * PRIORITY_SCALE);
+ mWorkPriority = llmin((U32)LLWorkerThread::PRIORITY_LOWBITS, (U32)(mImagePriority * PRIORITY_SCALE));
return mWorkPriority;
}
diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp
index 88e7cfec86..b8179f7fc2 100644
--- a/indra/newview/llviewermediafocus.cpp
+++ b/indra/newview/llviewermediafocus.cpp
@@ -126,7 +126,7 @@ void LLViewerMediaFocus::setFocusFace(LLPointer<LLViewerObject> objectp, S32 fac
if(face_auto_zoom && ! parcel->getMediaPreventCameraZoom())
{
// Zoom in on this face
- mMediaControls.get()->resetZoomLevel();
+ mMediaControls.get()->resetZoomLevel(false);
mMediaControls.get()->nextZoomLevel();
}
else
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 02bde51fb6..15c72fdef1 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -4422,35 +4422,22 @@ bool visible_take_object()
return !is_selection_buy_not_take() && enable_take();
}
+bool tools_visible_buy_object()
+{
+ return is_selection_buy_not_take();
+}
+
+bool tools_visible_take_object()
+{
+ return !is_selection_buy_not_take();
+}
+
class LLToolsEnableBuyOrTake : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
bool is_buy = is_selection_buy_not_take();
bool new_value = is_buy ? enable_buy_object() : enable_take();
-
- // Update label
- std::string label;
- std::string buy_text;
- std::string take_text;
- std::string param = userdata.asString();
- std::string::size_type offset = param.find(",");
- if (offset != param.npos)
- {
- buy_text = param.substr(0, offset);
- take_text = param.substr(offset+1);
- }
- if (is_buy)
- {
- label = buy_text;
- }
- else
- {
- label = take_text;
- }
- gMenuHolder->childSetText("Pie Object Take", label);
- gMenuHolder->childSetText("Menu Object Take", label);
-
return new_value;
}
};
@@ -7802,12 +7789,11 @@ void initialize_menus()
view_listener_t::addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink");
view_listener_t::addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake");
enable.add("Tools.EnableTakeCopy", boost::bind(&enable_object_take_copy));
+ enable.add("Tools.VisibleBuyObject", boost::bind(&tools_visible_buy_object));
+ enable.add("Tools.VisibleTakeObject", boost::bind(&tools_visible_take_object));
view_listener_t::addMenu(new LLToolsEnableSaveToInventory(), "Tools.EnableSaveToInventory");
view_listener_t::addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.EnableSaveToObjectInventory");
- /*view_listener_t::addMenu(new LLToolsVisibleBuyObject(), "Tools.VisibleBuyObject");
- view_listener_t::addMenu(new LLToolsVisibleTakeObject(), "Tools.VisibleTakeObject");*/
-
// Help menu
// most items use the ShowFloater method
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 6add8a7e92..01d437f9eb 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1257,20 +1257,30 @@ void LLViewerFetchedTexture::destroyTexture()
mFullyLoaded = FALSE ;
}
-//
-//do not change the discard level of the loaded texture image.
-BOOL LLViewerFetchedTexture::keepReuestedDiscardLevel()
+void LLViewerFetchedTexture::addToCreateTexture()
{
- if (!mLoadedCallbackList.empty())
+ bool force_update = false ;
+ if (getComponents() != mRawImage->getComponents())
{
- return TRUE ;
- }
+ // We've changed the number of components, so we need to move any
+ // objects using this pool to a different pool.
+ mComponents = mRawImage->getComponents();
+ mGLTexturep->setComponents(mComponents) ;
+ force_update = true ;
- return FALSE ;
-}
+ for(U32 i = 0 ; i < mNumFaces ; i++)
+ {
+ mFaceList[i]->dirtyTexture() ;
+ }
+
+ //discard the cached raw image and the saved raw image
+ mCachedRawImageReady = FALSE ;
+ mCachedRawDiscardLevel = -1 ;
+ mCachedRawImage = NULL ;
+ mSavedRawDiscardLevel = -1 ;
+ mSavedRawImage = NULL ;
+ }
-void LLViewerFetchedTexture::addToCreateTexture()
-{
if(isForSculptOnly())
{
//just update some variables, not to create a real GL texture.
@@ -1278,6 +1288,11 @@ void LLViewerFetchedTexture::addToCreateTexture()
mNeedsCreateTexture = FALSE ;
destroyRawImage();
}
+ else if(!force_update && getDiscardLevel() > -1 && getDiscardLevel() <= mRawDiscardLevel)
+ {
+ mNeedsCreateTexture = FALSE ;
+ destroyRawImage();
+ }
else
{
#if 1
@@ -1286,7 +1301,7 @@ void LLViewerFetchedTexture::addToCreateTexture()
//so do not scale down the over qualified image.
//Note: scaling down image is expensensive. Do it only when very necessary.
//
- if(mRequestedDiscardLevel <= mDesiredDiscardLevel && !keepReuestedDiscardLevel())
+ if(mRequestedDiscardLevel <= mDesiredDiscardLevel && !mForceToSaveRawImage)
{
S32 w = mFullWidth >> mRawDiscardLevel;
S32 h = mFullHeight >> mRawDiscardLevel;
@@ -1399,28 +1414,12 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/)
setActive() ;
}
- //
- // Iterate through the list of image loading callbacks to see
- // what sort of data they need.
- //
- // *TODO: Fix image callback code
- BOOL imageraw_callbacks = FALSE;
- for(callback_list_t::iterator iter = mLoadedCallbackList.begin();
- iter != mLoadedCallbackList.end(); )
- {
- LLLoadedCallbackEntry *entryp = *iter++;
- if (entryp->mNeedsImageRaw)
- {
- imageraw_callbacks = TRUE;
- break;
- }
- }
-
- if (!imageraw_callbacks)
+ if (!mForceToSaveRawImage)
{
mNeedsAux = FALSE;
- destroyRawImage();
}
+ destroyRawImage();
+
return res;
}
@@ -1503,21 +1502,16 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
}
#endif
- if(mFullyLoaded)//already loaded for static texture
- {
- return -4.0f ; //alreay fetched
- }
-
if (mNeedsCreateTexture)
{
return mDecodePriority; // no change while waiting to create
}
- if(mForceToSaveRawImage)
+ if(mFullyLoaded && !mForceToSaveRawImage)//already loaded for static texture
{
- return maxDecodePriority() ;
+ return -4.0f ; //alreay fetched
}
-
- S32 cur_discard = getDiscardLevel();
+
+ S32 cur_discard = getCurrentDiscardLevelForFetching();
bool have_all_data = (cur_discard >= 0 && (cur_discard <= mDesiredDiscardLevel));
F32 pixel_priority = fsqrtf(mMaxVirtualSize);
@@ -1642,11 +1636,8 @@ F32 LLViewerFetchedTexture::maxDecodePriority()
void LLViewerFetchedTexture::setDecodePriority(F32 priority)
{
- //llassert(!mInImageList); // firing a lot, figure out why
- if (mInImageList) // above llassert() softened to a warning
- {
- llwarns << "BAD STUFF! mInImageList" << llendl;
- }
+ llassert(!mInImageList);
+
mDecodePriority = priority;
}
@@ -1666,6 +1657,11 @@ void LLViewerFetchedTexture::updateVirtualSize()
addTextureStats(0.f, FALSE) ;//reset
}
+ if(mForceToSaveRawImage)
+ {
+ setAdditionalDecodePriority(0.75f) ; //boost the fetching priority
+ }
+
for(U32 i = 0 ; i < mNumFaces ; i++)
{
LLFace* facep = mFaceList[i] ;
@@ -1680,6 +1676,24 @@ void LLViewerFetchedTexture::updateVirtualSize()
reorganizeVolumeList();
}
+S32 LLViewerFetchedTexture::getCurrentDiscardLevelForFetching()
+{
+ S32 current_discard = getDiscardLevel() ;
+ if(mForceToSaveRawImage)
+ {
+ if(mSavedRawDiscardLevel < 0 || current_discard < 0)
+ {
+ current_discard = -1 ;
+ }
+ else
+ {
+ current_discard = llmax(current_discard, mSavedRawDiscardLevel) ;
+ }
+ }
+
+ return current_discard ;
+}
+
bool LLViewerFetchedTexture::updateFetch()
{
static LLCachedControl<bool> textures_decode_disabled(gSavedSettings,"TextureDecodeDisabled");
@@ -1716,7 +1730,7 @@ bool LLViewerFetchedTexture::updateFetch()
return false; // process any raw image data in callbacks before replacing
}
- S32 current_discard = getDiscardLevel() ;
+ S32 current_discard = getCurrentDiscardLevelForFetching() ;
S32 desired_discard = getDesiredDiscardLevel();
F32 decode_priority = getDecodePriority();
decode_priority = llmax(decode_priority, 0.0f);
@@ -1726,14 +1740,6 @@ bool LLViewerFetchedTexture::updateFetch()
// Sets mRawDiscardLevel, mRawImage, mAuxRawImage
S32 fetch_discard = current_discard;
- if(mForceToSaveRawImage)
- {
- if(fetch_discard >= 0)
- {
- fetch_discard = llmax(fetch_discard, mSavedRawDiscardLevel) ;
- }
- }
-
if (mRawImage.notNull()) sRawCount--;
if (mAuxRawImage.notNull()) sAuxCount--;
bool finished = LLAppViewer::getTextureFetch()->getRequestFinished(getID(), fetch_discard, mRawImage, mAuxRawImage);
@@ -1761,18 +1767,6 @@ bool LLViewerFetchedTexture::updateFetch()
if ((mRawImage->getDataSize() > 0 && mRawDiscardLevel >= 0) &&
(current_discard < 0 || mRawDiscardLevel < current_discard))
{
- if (getComponents() != mRawImage->getComponents())
- {
- // We've changed the number of components, so we need to move any
- // objects using this pool to a different pool.
- mComponents = mRawImage->getComponents();
- mGLTexturep->setComponents(mComponents) ;
-
- for(U32 i = 0 ; i < mNumFaces ; i++)
- {
- mFaceList[i]->dirtyTexture() ;
- }
- }
mFullWidth = mRawImage->getWidth() << mRawDiscardLevel;
mFullHeight = mRawImage->getHeight() << mRawDiscardLevel;
@@ -1838,18 +1832,6 @@ bool LLViewerFetchedTexture::updateFetch()
}
}
- if (!mDontDiscard)
- {
- if (mBoostLevel == 0)
- {
- desired_discard = llmax(desired_discard, current_discard-1);
- }
- else
- {
- desired_discard = llmax(desired_discard, current_discard-2);
- }
- }
-
bool make_request = true;
if (decode_priority <= 0)
{
@@ -1867,8 +1849,20 @@ bool LLViewerFetchedTexture::updateFetch()
//{
// make_request = false;
//}
- else
+
+ if(make_request)
{
+ //load the texture progressively.
+ S32 delta_level = (mBoostLevel > LLViewerTexture::BOOST_NONE) ? 2 : 1 ;
+ if(current_discard < 0)
+ {
+ desired_discard = llmax(desired_discard, getMaxDiscardLevel() - delta_level);
+ }
+ else
+ {
+ desired_discard = llmax(desired_discard, current_discard - delta_level);
+ }
+
if (mIsFetching)
{
if (mRequestedDiscardLevel <= desired_discard)
@@ -1888,7 +1882,7 @@ bool LLViewerFetchedTexture::updateFetch()
if (make_request)
{
S32 w=0, h=0, c=0;
- if (current_discard >= 0)
+ if (getDiscardLevel() >= 0)
{
w = mGLTexturep->getWidth(0);
h = mGLTexturep->getHeight(0);
@@ -1929,73 +1923,6 @@ bool LLViewerFetchedTexture::updateFetch()
return mIsFetching ? true : false;
}
-//
-//force to fetch a new raw image for this texture
-//
-BOOL LLViewerFetchedTexture::forceFetch()
-{
- if(!mForceToSaveRawImage)
- {
- return false ;
- }
- //if(mDesiredSavedRawDiscardLevel < getDiscardLevel())
- {
- //no need to force fetching. normal fetching flow will do the work.
- //return false ;
- }
- //if (mNeedsCreateTexture)
- {
- // We may be fetching still (e.g. waiting on write)
- // but don't check until we've processed the raw data we have
- //return false;
- }
- if(mIsFetching)
- {
- return false ;
- }
- if (mIsMissingAsset)
- {
- mForceToSaveRawImage = false ;
- llassert_always(!mHasFetcher);
- return false; // skip
- }
- if (!mLoadedCallbackList.empty() && mRawImage.notNull())
- {
- return false; // process any raw image data in callbacks before replacing
- }
- if(mRawImage.notNull() && mRawDiscardLevel <= mDesiredSavedRawDiscardLevel)
- {
- return false ; // mRawImage is enough
- }
-
- S32 desired_discard = mDesiredSavedRawDiscardLevel ;
- S32 current_discard = getDiscardLevel();
-
- bool fetch_request_created = false;
- S32 w=0, h=0, c=0;
- if (current_discard >= 0)
- {
- w = getWidth(0);
- h = getHeight(0);
- c = getComponents();
- }
- setDecodePriority(maxDecodePriority()) ;
- fetch_request_created = LLAppViewer::getTextureFetch()->createRequest(mUrl, getID(),getTargetHost(), getDecodePriority(),
- w, h, c, desired_discard, needsAux());
-
- if (fetch_request_created)
- {
- mHasFetcher = TRUE;
- mIsFetching = TRUE;
- mRequestedDiscardLevel = desired_discard ;
-
- mFetchState = LLAppViewer::getTextureFetch()->getFetchState(mID, mDownloadProgress, mRequestedDownloadPriority,
- mFetchPriority, mFetchDeltaTime, mRequestDeltaTime);
- }
-
- return mIsFetching ? true : false;
-}
-
void LLViewerFetchedTexture::setIsMissingAsset()
{
if (mUrl.empty())
@@ -2037,6 +1964,10 @@ void LLViewerFetchedTexture::setLoadedCallback( loaded_callback_func loaded_call
LLLoadedCallbackEntry* entryp = new LLLoadedCallbackEntry(loaded_callback, discard_level, keep_imageraw, userdata);
mLoadedCallbackList.push_back(entryp);
mNeedsAux |= needs_aux;
+ if(keep_imageraw)
+ {
+ forceToSaveRawImage(discard_level) ;
+ }
if (mNeedsAux && mAuxRawImage.isNull() && getDiscardLevel() >= 0)
{
// We need aux data, but we've already loaded the image, and it didn't have any
@@ -2285,8 +2216,15 @@ LLImageRaw* LLViewerFetchedTexture::reloadRawImage(S8 discard_level)
if(mSavedRawDiscardLevel >= 0 && mSavedRawDiscardLevel <= discard_level)
{
- mRawImage = new LLImageRaw(getWidth(discard_level), getHeight(discard_level), getComponents()) ;
- mRawImage->copy(getSavedRawImage()) ;
+ if(mSavedRawDiscardLevel != discard_level)
+ {
+ mRawImage = new LLImageRaw(getWidth(discard_level), getHeight(discard_level), getComponents()) ;
+ mRawImage->copy(getSavedRawImage()) ;
+ }
+ else
+ {
+ mRawImage = getSavedRawImage() ;
+ }
mRawDiscardLevel = discard_level ;
}
else
@@ -2296,13 +2234,18 @@ LLImageRaw* LLViewerFetchedTexture::reloadRawImage(S8 discard_level)
{
mRawImage = mCachedRawImage ;
mRawDiscardLevel = mCachedRawDiscardLevel;
-
- forceToSaveRawImage(discard_level) ;
}
else //cached raw image is good enough, copy it.
{
- mRawImage = new LLImageRaw(getWidth(discard_level), getHeight(discard_level), getComponents()) ;
- mRawImage->copy(mCachedRawImage) ;
+ if(mCachedRawDiscardLevel != discard_level)
+ {
+ mRawImage = new LLImageRaw(getWidth(discard_level), getHeight(discard_level), getComponents()) ;
+ mRawImage->copy(mCachedRawImage) ;
+ }
+ else
+ {
+ mRawImage = mCachedRawImage ;
+ }
mRawDiscardLevel = discard_level ;
}
}
@@ -2331,11 +2274,6 @@ void LLViewerFetchedTexture::destroyRawImage()
mAuxRawImage = NULL;
mIsRawImageValid = FALSE;
mRawDiscardLevel = INVALID_DISCARD_LEVEL;
-
- if(mForceToSaveRawImage)
- {
- forceFetch() ;
- }
}
//use the mCachedRawImage to (re)generate the gl texture.
@@ -2448,7 +2386,7 @@ void LLViewerFetchedTexture::checkCachedRawSculptImage()
void LLViewerFetchedTexture::saveRawImage()
{
- if(mRawImage.isNull() || mSavedRawDiscardLevel == mRawDiscardLevel)
+ if(mRawImage.isNull() || mRawImage == mSavedRawImage || (mSavedRawDiscardLevel >= 0 && mSavedRawDiscardLevel <= mRawDiscardLevel))
{
return ;
}
@@ -2466,12 +2404,22 @@ void LLViewerFetchedTexture::saveRawImage()
void LLViewerFetchedTexture::forceToSaveRawImage(S32 desired_discard)
{
- if(!mForceToSaveRawImage && (mDesiredSavedRawDiscardLevel < 0 || mDesiredSavedRawDiscardLevel > desired_discard))
+ if(!mForceToSaveRawImage || mDesiredSavedRawDiscardLevel < 0 || mDesiredSavedRawDiscardLevel > desired_discard)
{
mForceToSaveRawImage = TRUE ;
mDesiredSavedRawDiscardLevel = desired_discard ;
- forceFetch() ;
+ //copy from the cached raw image if exists.
+ if(mCachedRawImage.notNull() && mRawImage.isNull() )
+ {
+ mRawImage = mCachedRawImage ;
+ mRawDiscardLevel = mCachedRawDiscardLevel ;
+
+ saveRawImage() ;
+
+ mRawImage = NULL ;
+ mRawDiscardLevel = INVALID_DISCARD_LEVEL ;
+ }
}
}
void LLViewerFetchedTexture::destroySavedRawImage()
@@ -2838,6 +2786,11 @@ void LLViewerLODTexture::processTextureStats()
}
}
}
+
+ if(mForceToSaveRawImage && mDesiredSavedRawDiscardLevel >= 0)
+ {
+ mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, (S8)mDesiredSavedRawDiscardLevel) ;
+ }
}
void LLViewerLODTexture::scaleDown()
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index 79db754072..84377198eb 100644
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -424,7 +424,6 @@ public:
LLImageRaw* reloadRawImage(S8 discard_level) ;
void destroyRawImage();
- /*virtual*/ void setCachedRawImage(S32 discard_level, LLImageRaw* imageraw) ;
const std::string& getUrl() const {return mUrl;}
//---------------
@@ -449,6 +448,7 @@ public:
BOOL isCachedRawImageReady() const {return mCachedRawImageReady ;}
BOOL isRawImageValid()const { return mIsRawImageValid ; }
void forceToSaveRawImage(S32 desired_discard = 0) ;
+ /*virtual*/ void setCachedRawImage(S32 discard_level, LLImageRaw* imageraw) ;
void destroySavedRawImage() ;
LLImageRaw* getSavedRawImage() ;
BOOL hasSavedRawImage() const ;
@@ -457,15 +457,14 @@ public:
protected:
/*virtual*/ void switchToCachedImage();
+ S32 getCurrentDiscardLevelForFetching() ;
private:
void init(bool firstinit) ;
void cleanup() ;
void saveRawImage() ;
- BOOL forceFetch() ;
void setCachedRawImage() ;
- BOOL keepReuestedDiscardLevel();
//for atlas
void resetFaceAtlas() ;
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index ee934ab9c5..eaef93a81d 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -502,10 +502,8 @@ void LLViewerTextureList::addImageToList(LLViewerFetchedTexture *image)
{
llerrs << "LLViewerTextureList::addImageToList - Image already in list" << llendl;
}
- if ((mImageList.insert(image)).second != true)
- {
- llwarns << "BAD STUFF! (mImageList.insert(image)).second != true" << llendl;
- }
+ llassert((mImageList.insert(image)).second == true) ;
+
image->setInImageList(TRUE) ;
}
@@ -522,10 +520,8 @@ void LLViewerTextureList::removeImageFromList(LLViewerFetchedTexture *image)
}
llerrs << "LLViewerTextureList::removeImageFromList - Image not in list" << llendl;
}
- if (mImageList.erase(image) != 1)
- {
- llwarns << "BAD STUFF! mImageList.erase(image) != 1" << llendl;
- }
+ llassert(mImageList.erase(image) == 1) ;
+
image->setInImageList(FALSE) ;
}
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 45050de044..c617dacec5 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -359,7 +359,7 @@
reference="White"/>
<color
name="GroupNotifyDimmedTextColor"
- reference="DkGray" />
+ reference="LtGray" />
<color
name="GroupOverTierColor"
value="0.43 0.06 0.06 1" />
diff --git a/indra/newview/skins/default/textures/icons/unknown_icon.png b/indra/newview/skins/default/textures/icons/unknown_icon.png
new file mode 100644
index 0000000000..8441d86596
--- /dev/null
+++ b/indra/newview/skins/default/textures/icons/unknown_icon.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index f200566c0e..4768cf14fb 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -516,6 +516,7 @@ with the same filename but different name
<texture name="SL_Logo" file_name="icons/SL_Logo.png" preload="true" />
<texture name="OBJECT_Icon" file_name="icons/object_icon.png" preload="true" />
+ <texture name="Unknown_Icon" file_name="icons/unknown_icon.png" preload="true" />
<texture name="Snapshot_Off" file_name="bottomtray/Snapshot_Off.png" preload="true" scale.left="4" scale.top="19" scale.right="22" scale.bottom="4" />
<texture name="Snapshot_Over" file_name="bottomtray/Snapshot_Over.png" preload="false" />
diff --git a/indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml
index 2aa7ed7c6c..949cbcbd7b 100644
--- a/indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/da/panel_nearby_chat_bar.xml
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="chat_bar">
- <string name="min_width">
- 192
- </string>
- <string name="max_width">
- 320
- </string>
<line_editor label="Klik her for at chatte." name="chat_box" tool_tip="Tryk på enter for at tale, Ctrl-Enter for at råbe."/>
<button name="show_nearby_chat" tool_tip="Viser/skjuler log for chat nærved"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml
index 5e6e460c65..08cc0b0ec8 100644
--- a/indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_nearby_chat_bar.xml
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="chat_bar">
- <string name="min_width">
- 192
- </string>
- <string name="max_width">
- 320
- </string>
<line_editor label="Zum Chatten hier klicken." name="chat_box" tool_tip="Eingabe drücken, um zu sprechen, Strg-Eingabe drücken, um zu Rufen."/>
<button name="show_nearby_chat" tool_tip="Protokoll des Chats in der Nähe anzeigen/ausblenden"/>
</panel>
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index 2bd8420925..1b8bbe42d2 100644
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -12,6 +12,7 @@
help_topic="camera_floater"
save_rect="true"
save_visibility="true"
+ save_dock_state="true"
single_instance="true"
width="150">
<floater.string
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
index 851a689d42..0a5820ce73 100644
--- a/indra/newview/skins/default/xui/en/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
@@ -12,6 +12,7 @@
help_topic="move_floater"
save_rect="true"
save_visibility="true"
+ save_dock_state="true"
width="115">
<string
name="walk_forward_tooltip">
diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml
index 7aa8e23e76..d7a7daf30c 100644
--- a/indra/newview/skins/default/xui/en/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences.xml
@@ -46,6 +46,7 @@
tab_group="1"
tab_position="left"
tab_width="115"
+ tab_padding_right="5"
top="21"
width="620">
<panel
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index d989282b9f..4e59a9b1ca 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -2,7 +2,7 @@
<floater
legacy_header_height="18"
follows="left|top|right"
- height="570"
+ height="580"
layout="topleft"
bg_opaque_image="Window_NoTitle_Foreground"
bg_alpha_image="Window_NoTitle_Background"
@@ -737,7 +737,7 @@
</text>
<tab_container
follows="left|top"
- height="400"
+ height="410"
halign="center"
left="0"
name="Object Info Tabs"
@@ -1054,7 +1054,7 @@ even though the user gets a free copy.
name="perms_build"
left="0"
top="241"
- height="120"
+ height="130"
width="278">
<text
type="string"
@@ -1135,7 +1135,7 @@ even though the user gets a free copy.
left="10"
name="B:"
height="10"
- width="45">
+ width="80">
B:
</text>
<text
@@ -1147,7 +1147,7 @@ even though the user gets a free copy.
left_pad="0"
name="O:"
height="10"
- width="44">
+ width="80">
O:
</text>
<text
@@ -1159,7 +1159,7 @@ even though the user gets a free copy.
left_pad="0"
name="G:"
height="10"
- width="43">
+ width="80">
G:
</text>
<text
@@ -1167,11 +1167,12 @@ even though the user gets a free copy.
text_color="White"
length="1"
follows="left|top"
- left_pad="0"
+ left="10"
+ top_pad="2"
layout="topleft"
name="E:"
height="10"
- width="43">
+ width="80">
E:
</text>
<text
@@ -1183,7 +1184,7 @@ even though the user gets a free copy.
left_pad="0"
name="N:"
height="10"
- width="48">
+ width="80">
N:
</text>
<text
@@ -1195,7 +1196,7 @@ even though the user gets a free copy.
left_pad="0"
name="F:"
height="10"
- width="50">
+ width="80">
F:
</text>
</panel>
diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml
index d66818e91a..9436b2cd73 100644
--- a/indra/newview/skins/default/xui/en/menu_object.xml
+++ b/indra/newview/skins/default/xui/en/menu_object.xml
@@ -124,16 +124,28 @@
</menu_item_call>
</context_menu>
<menu_item_separator layout="topleft" />
- <menu_item_call
- enabled="false"
+ <menu_item_call
+ label="Buy"
+ layout="topleft"
+ name="Pie Object Bye">
+ <menu_item_call.on_click
+ function="Tools.BuyOrTake"/>
+ <menu_item_call.on_visible
+ function="Tools.VisibleBuyObject"/>
+ <menu_item_call.on_enable
+ function="Tools.EnableBuyOrTake"/>
+ </menu_item_call>
+ <menu_item_call
label="Take"
+ layout="topleft"
name="Pie Object Take">
- <menu_item_call.on_click
- function="Tools.BuyOrTake" />
- <menu_item_call.on_enable
- function="Tools.EnableBuyOrTake"
- parameter="Buy,Take" />
- </menu_item_call>
+ <menu_item_call.on_click
+ function="Tools.BuyOrTake"/>
+ <menu_item_call.on_visible
+ function="Tools.VisibleTakeObject"/>
+ <menu_item_call.on_enable
+ function="Tools.EnableBuyOrTake"/>
+ </menu_item_call>
<menu_item_call
enabled="false"
label="Take Copy"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 4c4867b862..158e764eae 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -719,16 +719,26 @@
name="Object"
tear_off="true">
<menu_item_call
- label="Buy"
- layout="topleft"
- name="Menu Object Take"
- visible="true">
- <menu_item_call.on_click
- function="Tools.BuyOrTake" />
- <menu_item_call.on_enable
- function="Tools.EnableBuyOrTake"
- name="EnableBuyOrTake"
- parameter="Buy,Take" />
+ label="Buy"
+ layout="topleft"
+ name="Menu Object Buy">
+ <menu_item_call.on_click
+ function="Tools.BuyOrTake"/>
+ <menu_item_call.on_visible
+ function="Tools.VisibleBuyObject"/>
+ <menu_item_call.on_enable
+ function="Tools.EnableBuyOrTake"/>
+ </menu_item_call>
+ <menu_item_call
+ label="Take"
+ layout="topleft"
+ name="Menu Object Take">
+ <menu_item_call.on_click
+ function="Tools.BuyOrTake"/>
+ <menu_item_call.on_visible
+ function="Tools.VisibleTakeObject"/>
+ <menu_item_call.on_enable
+ function="Tools.EnableBuyOrTake"/>
</menu_item_call>
<menu_item_call
label="Take Copy"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 8f1812830f..9d2c7b8bcc 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -5850,7 +5850,8 @@ Are you sure you want to close all IMs?
<usetemplate
name="okcancelignore"
notext="Cancel"
- yestext="OK"/>
+ yestext="OK"
+ ignoretext="Confirm before I close all IMs"/>
</notification>
<notification icon="notifytip.tga"
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index 4c5d5a1b96..015a2e91ff 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -47,6 +47,7 @@
min_height="23"
width="310"
top="4"
+ max_width="320"
min_width="216"
name="chat_bar"
user_resize="false"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
index d31e7d2ed8..66d5389d9b 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
@@ -59,7 +59,7 @@
layout="topleft"
top="0"
background_visible="false"
- height="600"
+ height="610"
left="0"
width="285">
<texture_picker
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
index 088f098f85..1d99de1fa7 100644
--- a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
@@ -8,12 +8,6 @@
name="chat_bar"
top="21"
width="310">
- <string name="min_width">
- 216
- </string>
- <string name="max_width">
- 320
- </string>
<line_editor
border_style="line"
border_thickness="1"
diff --git a/indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml
index 1df45108ab..af2b6e920b 100644
--- a/indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/es/panel_nearby_chat_bar.xml
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="chat_bar">
- <string name="min_width">
- 192
- </string>
- <string name="max_width">
- 320
- </string>
<line_editor label="Pulsa aquí para chatear." name="chat_box" tool_tip="Pulsa Enter para decirlo o Ctrl+Enter para gritarlo"/>
<button name="show_nearby_chat" tool_tip="Muestra o esconde el registro del chat"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml
index 8ed441cbae..82cdf292ab 100644
--- a/indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_nearby_chat_bar.xml
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="chat_bar">
- <string name="min_width">
- 192
- </string>
- <string name="max_width">
- 320
- </string>
<line_editor label="Cliquer ici pour chatter." name="chat_box" tool_tip="Appuyer sur Entrée pour dire, Ctrl-Entrée pour crier"/>
<button name="show_nearby_chat" tool_tip="Affiche/Masque le journal de chats près de vous"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml
index 0361eb49ed..f7a58581d4 100644
--- a/indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/it/panel_nearby_chat_bar.xml
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="chat_bar">
- <string name="min_width">
- 192
- </string>
- <string name="max_width">
- 320
- </string>
<line_editor label="Clicca qui per la chat." name="chat_box" tool_tip="Premi Invio per dire, Ctrl+Invio per gridare"/>
<button name="show_nearby_chat" tool_tip="Mostra/Nasconde la chat log nei dintorni"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index f363c2d85d..42f3211ada 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -85,8 +85,8 @@
Leyla Linden
</text>
<button label="設定" label_selected="設定..." name="Set..."/>
- <check_box label="グループへの譲渡を許可" name="check deed" tool_tip="グループのオフィサーはこの土地をグループに譲渡できます。そうするとグループの土地割り当てによってサポートされます。"/>
- <button label="譲渡" label_selected="譲渡..." name="Deed..." tool_tip="選択したグループのオフィサーであるときのみ、土地を譲渡できます。"/>
+ <check_box label="グループへの譲渡を許可" name="check deed" tool_tip="グループのオフィサーはこの土地をグループに譲渡できます。グループの土地割り当てによってサポートされます。"/>
+ <button label="譲渡" label_selected="譲渡..." name="Deed..." tool_tip="選択したグループのオフィサーのみ、土地を譲渡できます。"/>
<check_box label="所有者が譲渡と共に寄付" name="check contrib" tool_tip="土地がグループに譲渡されるとき、前の所有者は譲渡が成立するよう、十分な土地を寄付します。"/>
<text name="For Sale:">
販売の有無:
@@ -195,7 +195,6 @@
</text>
<text name="changeable_clause">
このリージョン(地域)にある土地は統合または分割ができないことがあります。
-ません。
</text>
</panel>
<panel label="オブジェクト" name="land_objects_panel">
@@ -422,7 +421,7 @@
<text name="MusicURL:">
音楽 URL:
</text>
- <check_box label="URL を非表示にする" name="hide_music_url" tool_tip="このオプションにチェックを入れると、権限のない人が区画情報を見たときに音楽のURLが隠れます。"/>
+ <check_box label="URL を非表示にする" name="hide_music_url" tool_tip="このオプションにチェックを入れると、権限のない人が区画情報を見たときに音楽の URL が隠れます。"/>
<text name="Sound:">
サウンド:
</text>
@@ -451,7 +450,7 @@
<check_box label="支払情報登録済 [ESTATE_PAYMENT_LIMIT]" name="limit_payment" tool_tip="未確認の住人の立入を禁止します。"/>
<check_box label="年齢確認 [ESTATE_AGE_LIMIT]" name="limit_age_verified" tool_tip="年齢確認を済ませていない住人の立入を禁止します。 詳しい情報は [SUPPORT_SITE] をご覧下さい。"/>
<check_box label="グループのアクセスを許可:[GROUP]" name="GroupCheck" tool_tip="「一般」タブで、グループを選択してください。"/>
- <check_box label="入場許可を販売:" name="PassCheck" tool_tip="この区画への一時的なアクセスを許可します"/>
+ <check_box label="入場許可を販売:" name="PassCheck" tool_tip="この区画への一時的なアクセスを許可します。"/>
<combo_box name="pass_combo">
<combo_box.item label="誰でも" name="Anyone"/>
<combo_box.item label="グループ" name="Group"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml
index eda71c3575..ed17736eb3 100644
--- a/indra/newview/skins/default/xui/ja/floater_buy_contents.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_contents.xml
@@ -5,7 +5,7 @@
</text>
<scroll_list name="item_list" width="310"/>
<text name="buy_text" width="320">
- 中身を[NAME] から L$[AMOUNT] で購入しますか?
+ 中身を [NAME] から L$[AMOUNT] で購入しますか?
</text>
<button label="取り消し" label_selected="取り消し" name="cancel_btn" width="73"/>
<button label="購入" label_selected="購入" left_delta="-77" name="buy_btn" width="73"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_buy_object.xml b/indra/newview/skins/default/xui/ja/floater_buy_object.xml
index ddec8c2e69..f323263699 100644
--- a/indra/newview/skins/default/xui/ja/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/ja/floater_buy_object.xml
@@ -4,7 +4,7 @@
中身:
</text>
<text name="buy_text">
- [NAME]から L$[AMOUNT] で購入しますか?
+ [NAME] から L$[AMOUNT] で購入しますか?
</text>
<button label="取消" label_selected="取消" name="cancel_btn"/>
<button label="購入" label_selected="購入" name="buy_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml
index bd8535353d..cc0032e1ab 100644
--- a/indra/newview/skins/default/xui/ja/floater_customize.xml
+++ b/indra/newview/skins/default/xui/ja/floater_customize.xml
@@ -522,7 +522,7 @@
<button label="元に戻す" label_selected="元に戻す" name="Revert"/>
</panel>
</tab_container>
- <button label="スクリプト情報" label_selected="スクリプト情報" name="script_info" tool_tip="あなたのアバターに付いているスクリプトを表示する"/>
+ <button label="スクリプト情報" label_selected="スクリプト情報" name="script_info" tool_tip="あなたのアバターに付いているスクリプトを表示します"/>
<button label="アウトフィット作成" label_selected="アウトフィット作成" name="make_outfit_btn"/>
<button label="キャンセル" label_selected="キャンセル" name="Cancel"/>
<button label="OK" label_selected="OK" name="Ok"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_pay.xml b/indra/newview/skins/default/xui/ja/floater_pay.xml
index aa67c78aea..39bc37bc6c 100644
--- a/indra/newview/skins/default/xui/ja/floater_pay.xml
+++ b/indra/newview/skins/default/xui/ja/floater_pay.xml
@@ -20,6 +20,6 @@
<text name="amount text">
金額を指定:
</text>
- <button label="支払い" label_selected="支払い" name="pay btn"/>
+ <button label="支払う" label_selected="支払う" name="pay btn"/>
<button label="取り消し" label_selected="取り消し" name="cancel btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml
index e154f5af83..e9de43189c 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -4,7 +4,7 @@
色の付いたバンドをドラッグしてオブジェクトを回転
</floater.string>
<floater.string name="status_scale">
- 選択した側をクリックし、ドラッグして引き伸ばす
+ 選択した側をクリックし、ドラッグで引き伸ばす
</floater.string>
<floater.string name="status_move">
移動:ドラッグ、コピー:Shift + ドラッグ
@@ -70,7 +70,7 @@
<check_box label="両側を引伸ばす" left="116" name="checkbox uniform"/>
<check_box initial_value="true" label="テクスチャを引伸ばす" name="checkbox stretch textures"/>
<check_box initial_value="true" label="グリッドポイントにスナップ" left_delta="27" name="checkbox snap to grid"/>
- <combo_box left_delta="60" name="combobox grid mode" tool_tip="オブジェクトの配置に使うグリッドルーラを選択" width="76">
+ <combo_box left_delta="60" name="combobox grid mode" tool_tip="オブジェクトの配置に使うグリッドルーラを選択します" width="76">
<combo_box.item label="インワールドグリッド" name="World"/>
<combo_box.item label="ローカルグリッド" name="Local"/>
<combo_box.item label="リファレンスグリッド" name="Reference"/>
@@ -113,7 +113,7 @@
<text name="Strength:">
強度
</text>
- <button label="適用" label_selected="適用" name="button apply to selection" tool_tip="選択した土地を修正"/>
+ <button label="適用" label_selected="適用" name="button apply to selection" tool_tip="選択した土地を修正します"/>
<text name="obj_count">
オブジェクト: [COUNT]
</text>
@@ -179,20 +179,20 @@
<text name="Group:">
グループ:
</text>
- <button label="設定..." label_selected="設定..." name="button set group" tool_tip="このオブジェクト権限を共有するグループを選択"/>
+ <button label="設定..." label_selected="設定..." name="button set group" tool_tip="このオブジェクト権限を共有するグループを選択します"/>
<name_box initial_value="ローディング..." name="Group Name Proxy"/>
- <button label="譲渡" label_selected="譲渡" name="button deed" tool_tip="このアイテムを譲渡すると「次の所有者」の権限が適用されます。 グループ共有オブジェクトは、グループのオフィサーが譲渡できます。"/>
- <check_box label="共有" name="checkbox share with group" tool_tip="設定したグループのメンバー全員にこのオブジェクトの修正権限を与えます。 譲渡しない限り、役割制限を有効にはできません。"/>
+ <button label="譲渡" label_selected="譲渡" name="button deed" tool_tip="このアイテムを譲渡すると「次の所有者」の権限が適用されます。 グループ共有オブジェクトは、グループのオフィサーが譲渡できます"/>
+ <check_box label="共有" name="checkbox share with group" tool_tip="設定したグループのメンバー全員にこのオブジェクトの修正権限を与えます。 譲渡しない限り、役割制限を有効にはできません"/>
<text name="label click action">
クリックで:
</text>
<combo_box name="clickaction">
<combo_box.item label="触る(デフォルト)" name="Touch/grab(default)"/>
<combo_box.item label="オブジェクトに座る" name="Sitonobject"/>
- <combo_box.item label="オブジェクトを購入" name="Buyobject"/>
- <combo_box.item label="オブジェクトへの支払い" name="Payobject"/>
+ <combo_box.item label="オブジェクトを購入する" name="Buyobject"/>
+ <combo_box.item label="オブジェクトに支払う" name="Payobject"/>
<combo_box.item label="開く" name="Open"/>
- <combo_box.item label="ズーム" name="Zoom"/>
+ <combo_box.item label="ズームする" name="Zoom"/>
</combo_box>
<check_box label="販売対象:" name="checkbox for sale"/>
<combo_box name="sale type">
@@ -216,7 +216,7 @@
</text>
<check_box label="修正" name="checkbox next owner can modify"/>
<check_box label="コピー" name="checkbox next owner can copy"/>
- <check_box label="再販・プレゼント" name="checkbox next owner can transfer" tool_tip="次の所有者はこのオブジェクトを他人にあげたり再販できます"/>
+ <check_box label="再販・プレゼント" name="checkbox next owner can transfer" tool_tip="次に所有する人は、このオブジェクトを他人にあげたり再販できます"/>
<text name="B:">
B:
</text>
@@ -238,7 +238,7 @@
</panel>
</panel>
<panel label="形状" name="Object">
- <check_box label="ロック済み" name="checkbox locked" tool_tip="オブジェクトの移動と削除を禁止します。 この機能を使うと、制作中の意図せぬ編集を防ぐことができます。"/>
+ <check_box label="ロック" name="checkbox locked" tool_tip="オブジェクトの移動と削除を禁止します。 この機能を使うと、制作中の意図せぬ編集を防ぐことができます"/>
<check_box label="物理" name="Physical Checkbox Ctrl" tool_tip="オブジェクトに対する重力の作用と影響を有効にします"/>
<check_box label="臨時" name="Temporary Checkbox Ctrl" tool_tip="制作後 1 分でオブジェクトは削除されます"/>
<check_box label="ファントム" name="Phantom Checkbox Ctrl" tool_tip="オブジェクト同士の衝突またはオブジェクトとアバターの衝突を回避します"/>
@@ -339,7 +339,7 @@
<text name="text revolutions">
回転体
</text>
- <texture_picker label="スカルプトテクスチャ" name="sculpt texture control" tool_tip="クリックして写真を選択してください。"/>
+ <texture_picker label="スカルプトテクスチャ" name="sculpt texture control" tool_tip="クリックして写真を選択してください"/>
<check_box label="ミラー" name="sculpt mirror control" tool_tip="スカルプトプリムを X 軸上で反転させます"/>
<check_box label="裏返し" name="sculpt invert control" tool_tip="スカルプトプリムを反転させて裏返します"/>
<text name="label sculpt type">
@@ -386,7 +386,7 @@
<panel.string name="string repeats per face">
面ごとに繰り返す
</panel.string>
- <texture_picker label="テクスチャ" name="texture control" tool_tip="写真をクリックして選択"/>
+ <texture_picker label="テクスチャ" name="texture control" tool_tip="写真をクリックして選択します"/>
<color_swatch label="色" name="colorswatch" tool_tip="クリックしてカラーピッカーを開きます"/>
<text name="color trans">
透過度 %
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 17b059c5d6..1607b2647e 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -49,30 +49,30 @@
<menu_item_call label="着用中のアウトフィットを入れ替える" name="Replace Outfit"/>
<menu_item_call label="着用中のアウトフィットに追加する" name="Add To Outfit"/>
<menu_item_call label="着用中のアウトフィットから取り除く" name="Remove From Outfit"/>
- <menu_item_call label="アイテムを除外" name="Purge Item"/>
- <menu_item_call label="アイテムを復元" name="Restore Item"/>
+ <menu_item_call label="アイテムを除外する" name="Purge Item"/>
+ <menu_item_call label="アイテムを復元する" name="Restore Item"/>
<menu_item_call label="オリジナルを探す" name="Find Original"/>
<menu_item_call label="開く" name="Open"/>
<menu_item_call label="プロパティ" name="Properties"/>
- <menu_item_call label="名前の変更" name="Rename"/>
- <menu_item_call label="UUID をコピー" name="Copy Asset UUID"/>
+ <menu_item_call label="名前を変更する" name="Rename"/>
+ <menu_item_call label="UUID をコピーする" name="Copy Asset UUID"/>
<menu_item_call label="コピー" name="Copy"/>
<menu_item_call label="貼り付け" name="Paste"/>
- <menu_item_call label="リンクの貼り付け" name="Paste As Link"/>
+ <menu_item_call label="リンクを貼り付ける" name="Paste As Link"/>
<menu_item_call label="リンクを外す" name="Remove Link"/>
<menu_item_call label="削除" name="Delete"/>
<menu_item_call label="システムフォルダを削除する" name="Delete System Folder"/>
- <menu_item_call label="コンファレンスチャットを開始" name="Conference Chat Folder"/>
- <menu_item_call label="再生" name="Sound Play"/>
+ <menu_item_call label="コンファレンスチャットを開始する" name="Conference Chat Folder"/>
+ <menu_item_call label="再生する" name="Sound Play"/>
<menu_item_call label="ランドマークの情報" name="About Landmark"/>
<menu_item_call label="インワールドで再生する" name="Animation Play"/>
- <menu_item_call label="ローカル再生" name="Animation Audition"/>
- <menu_item_call label="インスタントメッセージを送信" name="Send Instant Message"/>
+ <menu_item_call label="ローカルで再生する" name="Animation Audition"/>
+ <menu_item_call label="インスタントメッセージを送信する" name="Send Instant Message"/>
<menu_item_call label="テレポートを送る..." name="Offer Teleport..."/>
- <menu_item_call label="コンファレンスチャットを開始" name="Conference Chat"/>
+ <menu_item_call label="コンファレンスチャットを開始する" name="Conference Chat"/>
<menu_item_call label="アクティブ" name="Activate"/>
<menu_item_call label="非アクティブ" name="Deactivate"/>
- <menu_item_call label="別名で保存" name="Save As"/>
+ <menu_item_call label="別名で保存する" name="Save As"/>
<menu_item_call label="自分から取り外す" name="Detach From Yourself"/>
<menu_item_call label="装着" name="Object Wear"/>
<menu label="装着先" name="Attach To"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index a9af96ab0c..a97e7f2f5d 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -38,7 +38,7 @@
<menu_item_call label="自分の土地" name="My Land"/>
<menu label="表示" name="LandShow">
<menu_item_check label="移動コントロール" name="Movement Controls"/>
- <menu_item_check label="コントロールを表示" name="Camera Controls"/>
+ <menu_item_check label="カメラコントロール" name="Camera Controls"/>
<menu_item_check label="立入禁止ライン" name="Ban Lines"/>
<menu_item_check label="ビーコン(標識)" name="beacons"/>
<menu_item_check label="プロパティ境界線" name="Property Lines"/>
@@ -94,22 +94,22 @@
<menu_item_call label="スクリプトを実行停止にする" name="Set Scripts to Not Running"/>
</menu>
<menu label="オプション" name="Options">
- <menu_item_call label="デフォルトのアップロード権限を設定" name="perm prefs"/>
- <menu_item_check label="権限の詳細を表示" name="DebugPermissions"/>
- <menu_item_check label="私のオブジェクトだけを選択" name="Select Only My Objects"/>
- <menu_item_check label="動的オブジェクトだけを選択" name="Select Only Movable Objects"/>
- <menu_item_check label="範囲内を選択" name="Select By Surrounding"/>
- <menu_item_check label="隠れた位置の選択も表示" name="Show Hidden Selection"/>
- <menu_item_check label="選択した光の半径範囲を表示" name="Show Light Radius for Selection"/>
- <menu_item_check label="選択ビームを表示" name="Show Selection Beam"/>
- <menu_item_check label="グリッドポイントにスナップ" name="Snap to Grid"/>
- <menu_item_call label="オブジェクトの XY 軸をグリッドにスナップ" name="Snap Object XY to Grid"/>
- <menu_item_call label="選択をグリッドに使用" name="Use Selection for Grid"/>
+ <menu_item_call label="デフォルトのアップロード権限を設定する" name="perm prefs"/>
+ <menu_item_check label="権限の詳細を表示する" name="DebugPermissions"/>
+ <menu_item_check label="私のオブジェクトだけを選択する" name="Select Only My Objects"/>
+ <menu_item_check label="動的オブジェクトだけを選択する" name="Select Only Movable Objects"/>
+ <menu_item_check label="範囲内を選択する" name="Select By Surrounding"/>
+ <menu_item_check label="隠れた位置の選択も表示する" name="Show Hidden Selection"/>
+ <menu_item_check label="選択した光の半径範囲を表示する" name="Show Light Radius for Selection"/>
+ <menu_item_check label="選択ビームを表示する" name="Show Selection Beam"/>
+ <menu_item_check label="グリッドポイントにスナップする" name="Snap to Grid"/>
+ <menu_item_call label="オブジェクトの XY 軸をグリッドにスナップする" name="Snap Object XY to Grid"/>
+ <menu_item_call label="選択をグリッドに使用する" name="Use Selection for Grid"/>
<menu_item_call label="グリッドオプション" name="Grid Options"/>
</menu>
- <menu label="リンクした部分を選択" name="Select Linked Parts">
- <menu_item_call label="次の部分を選択" name="Select Next Part"/>
- <menu_item_call label="前回の部分を選択" name="Select Previous Part"/>
+ <menu label="リンクした部分を選択する" name="Select Linked Parts">
+ <menu_item_call label="次の部分を選択する" name="Select Next Part"/>
+ <menu_item_call label="前回の部分を選択する" name="Select Previous Part"/>
<menu_item_call label="次の部分を含める" name="Include Next Part"/>
<menu_item_call label="前回の部分を含める" name="Include Previous Part"/>
</menu>
@@ -121,28 +121,28 @@
<menu_item_call label="[APP_NAME] について" name="About Second Life"/>
</menu>
<menu label="アドバンス" name="Advanced">
- <menu_item_call label="私のアニメーションを停止する" name="Stop Animating My Avatar"/>
- <menu_item_call label="テクスチャのリベーク" name="Rebake Texture"/>
+ <menu_item_call label="自分のアニメーションを停止する" name="Stop Animating My Avatar"/>
+ <menu_item_call label="テクスチャのリベークをする" name="Rebake Texture"/>
<menu_item_call label="UI のサイズをデフォルトに設定する" name="Set UI Size to Default"/>
- <menu_item_call label="ウィンドウのサイズの設定:" name="Set Window Size..."/>
+ <menu_item_call label="ウィンドウのサイズを設定する" name="Set Window Size..."/>
<menu_item_check label="遠くのオブジェクトを選択しない" name="Limit Select Distance"/>
<menu_item_check label="カメラの距離移動を制限しない" name="Disable Camera Distance"/>
<menu_item_check label="高解像度スナップショット" name="HighResSnapshot"/>
- <menu_item_check label="シャッター音とアニメーションなしでスナップショットをディスクに保存" name="QuietSnapshotsToDisk"/>
+ <menu_item_check label="シャッター音とアニメーションなしでスナップショットをディスクに保存する" name="QuietSnapshotsToDisk"/>
<menu_item_check label="圧縮してスナップショットをディスクに保存する" name="CompressSnapshotsToDisk"/>
<menu label="パフォーマンスツール" name="Performance Tools">
<menu_item_call label="ラグ計測器" name="Lag Meter"/>
<menu_item_check label="統計バー" name="Statistics Bar"/>
- <menu_item_check label="アバターのレンダリングコストを表示" name="Avatar Rendering Cost"/>
+ <menu_item_check label="アバターのレンダリングコストを表示する" name="Avatar Rendering Cost"/>
</menu>
<menu label="ハイライトと目に見えるもの" name="Highlighting and Visibility">
<menu_item_check label="チージービーコン" name="Cheesy Beacon"/>
<menu_item_check label="パーティクルを非表示にする" name="Hide Particles"/>
<menu_item_check label="選択したものを非表示にする" name="Hide Selected"/>
- <menu_item_check label="透明部分をハイライト" name="Highlight Transparent"/>
- <menu_item_check label="HUD を表示" name="Show HUD Attachments"/>
- <menu_item_check label="一人称視点のときに十字線を表示" name="ShowCrosshairs"/>
- <menu_item_check label="土地のツールチップを表示" name="Land Tips"/>
+ <menu_item_check label="透明部分をハイライトする" name="Highlight Transparent"/>
+ <menu_item_check label="HUD を表示する" name="Show HUD Attachments"/>
+ <menu_item_check label="一人称視点のときに十字線を表示する" name="ShowCrosshairs"/>
+ <menu_item_check label="土地のツールチップを表示する" name="Land Tips"/>
</menu>
<menu label="レンダリング(種類)" name="Rendering Types">
<menu_item_check label="シンプル" name="Simple"/>
@@ -176,17 +176,17 @@
<menu_item_call label="画像 (L$ [COST] )..." name="Upload Image"/>
<menu_item_check label="検索" name="Search"/>
<menu_item_call label="キーをリリース" name="Release Keys"/>
- <menu_item_call label="UI のサイズをデフォルトに設定" name="Set UI Size to Default"/>
+ <menu_item_call label="UI のサイズをデフォルトに設定する" name="Set UI Size to Default"/>
<menu_item_check label="常に走る" name="Always Run"/>
- <menu_item_check label="飛行" name="Fly"/>
+ <menu_item_check label="飛行する" name="Fly"/>
<menu_item_call label="ウィンドウを閉じる" name="Close Window"/>
<menu_item_call label="全てのウィンドウを閉じる" name="Close All Windows"/>
- <menu_item_call label="スナップショットをディスクに保存" name="Snapshot to Disk"/>
+ <menu_item_call label="スナップショットをディスクに保存する" name="Snapshot to Disk"/>
<menu_item_call label="一人称視点" name="Mouselook"/>
<menu_item_check label="ジョイスティックフライカム" name="Joystick Flycam"/>
- <menu_item_call label="表示をリセット" name="Reset View"/>
+ <menu_item_call label="表示をリセットする" name="Reset View"/>
<menu_item_call label="最後の発言者を見る" name="Look at Last Chatter"/>
- <menu label="制作ツールを選択" name="Select Tool">
+ <menu label="制作ツールを選択する" name="Select Tool">
<menu_item_call label="焦点ツール" name="Focus"/>
<menu_item_call label="移動ツール" name="Move"/>
<menu_item_call label="編集ツール" name="Edit"/>
@@ -219,21 +219,21 @@
<menu_item_check label="バッジ" name="Badge"/>
</menu>
<menu label="情報を表示" name="Display Info">
- <menu_item_check label="時間を表示" name="Show Time"/>
- <menu_item_check label="描画情報を表示" name="Show Render Info"/>
- <menu_item_check label="マトリックスを表示" name="Show Matrices"/>
- <menu_item_check label="カーソルを乗せた場所の色を表示" name="Show Color Under Cursor"/>
- <menu_item_check label="オブジェクトのアップデートを表示" name="Show Updates"/>
+ <menu_item_check label="時間を表示する" name="Show Time"/>
+ <menu_item_check label="描画情報を表示する" name="Show Render Info"/>
+ <menu_item_check label="マトリックスを表示する" name="Show Matrices"/>
+ <menu_item_check label="カーソルを乗せた場所の色を表示する" name="Show Color Under Cursor"/>
+ <menu_item_check label="オブジェクトのアップデートを表示する" name="Show Updates"/>
</menu>
- <menu label="エラーを実行" name="Force Errors">
+ <menu label="エラー実行" name="Force Errors">
<menu_item_call label="ブレークポイント" name="Force Breakpoint"/>
- <menu_item_call label="LLError とクラッシュを実行" name="Force LLError And Crash"/>
- <menu_item_call label="バッドメモリアクセスを実行" name="Force Bad Memory Access"/>
+ <menu_item_call label="LLError とクラッシュを実行する" name="Force LLError And Crash"/>
+ <menu_item_call label="バッドメモリアクセスを実行する" name="Force Bad Memory Access"/>
<menu_item_call label="無限ループ" name="Force Infinite Loop"/>
- <menu_item_call label="ドライバのクラッシュを実行" name="Force Driver Carsh"/>
- <menu_item_call label="ソフトウェア例外エラーの実行" name="Force Software Exception"/>
- <menu_item_call label="ビューワの接続遮断を実行" name="Force Disconnect Viewer"/>
- <menu_item_call label="メモリリークのシミュレート" name="Memory Leaking Simulation"/>
+ <menu_item_call label="ドライバのクラッシュを実行する" name="Force Driver Carsh"/>
+ <menu_item_call label="ソフトウェア例外エラーの実行する" name="Force Software Exception"/>
+ <menu_item_call label="ビューワの接続遮断を実行する" name="Force Disconnect Viewer"/>
+ <menu_item_call label="メモリリークをシミュレートする" name="Memory Leaking Simulation"/>
</menu>
<menu label="レンダーテスト" name="Render Tests">
<menu_item_check label="カメラオフセット" name="Camera Offset"/>
@@ -261,7 +261,7 @@
<menu_item_call label="選択したテクスチャ情報基底" name="Selected Texture Info Basis"/>
<menu_item_check label="ワイヤーフレーム" name="Wireframe"/>
<menu_item_check label="オブジェクト間オクルージョン" name="Object-Object Occlusion"/>
- <menu_item_check label="フレームバッファ・オブジェクト" name="Framebuffer Objects"/>
+ <menu_item_check label="フレームバッファオブジェクト" name="Framebuffer Objects"/>
<menu_item_check label="遅延レンダリング" name="Deferred Rendering"/>
<menu_item_check label="グローバルイルミネーション" name="Global Illumination"/>
<menu_item_check label="GL デバッグ" name="Debug GL"/>
@@ -274,10 +274,10 @@
<menu_item_check label="テクスチャアトラス" name="Texture Atlas"/>
<menu_item_check label="装着された光源を描画する" name="Render Attached Lights"/>
<menu_item_check label="取り付けられたパーティクルを描画する" name="Render Attached Particles"/>
- <menu_item_check label="マウスオーバーで強調表示" name="Hover Glow Objects"/>
+ <menu_item_check label="マウスオーバーで強調表示する" name="Hover Glow Objects"/>
</menu>
<menu label="ネットワーク" name="Network">
- <menu_item_check label="エージェントを一時停止" name="AgentPause"/>
+ <menu_item_check label="エージェントを一時停止する" name="AgentPause"/>
<menu_item_call label="メッセージログを有効にする" name="Enable Message Log"/>
<menu_item_call label="メッセージログを使用不可にする" name="Disable Message Log"/>
<menu_item_check label="速力が挿入されたオブジェクト" name="Velocity Interpolate Objects"/>
@@ -295,9 +295,9 @@
</menu>
<menu label="世界" name="World">
<menu_item_check label="シムの太陽の設定を無視する" name="Sim Sun Override"/>
- <menu_item_check label="ビーコンの強調表示" name="Cheesy Beacon"/>
+ <menu_item_check label="ビーコンを強調表示する" name="Cheesy Beacon"/>
<menu_item_check label="固定された天気" name="Fixed Weather"/>
- <menu_item_call label="リージョンオブジェクトのキャッシュをダンプ" name="Dump Region Object Cache"/>
+ <menu_item_call label="リージョンオブジェクトのキャッシュをダンプする" name="Dump Region Object Cache"/>
</menu>
<menu label="UI" name="UI">
<menu_item_call label="Web ブラウザのテスト" name="Web Browser Test"/>
@@ -308,7 +308,7 @@
<menu_item_call label="選択したオブジェクト情報をプリント" name="Print Selected Object Info"/>
<menu_item_call label="エージェント情報をプリント" name="Print Agent Info"/>
<menu_item_call label="メモリ使用状況" name="Memory Stats"/>
- <menu_item_check label="ダブルクリックした場所に自動操作で移動" name="Double-ClickAuto-Pilot"/>
+ <menu_item_check label="ダブルクリックした場所に自動操作で移動する" name="Double-ClickAuto-Pilot"/>
<menu_item_check label="SelectMgr のデバッグ" name="Debug SelectMgr"/>
<menu_item_check label="ダブルクリック" name="Debug Clicks"/>
<menu_item_check label="デバッグ表示" name="Debug Views"/>
@@ -318,15 +318,15 @@
<menu_item_check label="WindowProc のデバッグ" name="Debug WindowProc"/>
</menu>
<menu label="XUI" name="XUI">
- <menu_item_call label="色の設定を更新" name="Reload Color Settings"/>
- <menu_item_call label="フォントテストを表示" name="Show Font Test"/>
+ <menu_item_call label="色の設定を更新する" name="Reload Color Settings"/>
+ <menu_item_call label="フォントテストを表示する" name="Show Font Test"/>
<menu_item_call label="XML から読み込む" name="Load from XML"/>
- <menu_item_call label="XML で保存" name="Save to XML"/>
- <menu_item_check label="XUI ネームを表示" name="Show XUI Names"/>
- <menu_item_call label="テスト用 IM を送信" name="Send Test IMs"/>
+ <menu_item_call label="XML で保存する" name="Save to XML"/>
+ <menu_item_check label="XUI ネームを表示する" name="Show XUI Names"/>
+ <menu_item_call label="テスト用 IM を送信する" name="Send Test IMs"/>
</menu>
<menu label="アバター" name="Character">
- <menu label="ベークドテクスチャを取得" name="Grab Baked Texture">
+ <menu label="ベークドテクスチャを取得する" name="Grab Baked Texture">
<menu_item_call label="瞳" name="Iris"/>
<menu_item_call label="頭" name="Head"/>
<menu_item_call label="上半身" name="Upper Body"/>
@@ -334,23 +334,23 @@
<menu_item_call label="スカート" name="Skirt"/>
</menu>
<menu label="キャラクターテスト" name="Character Tests">
- <menu_item_call label="容姿を XML に保存" name="Appearance To XML"/>
+ <menu_item_call label="容姿を XML に保存する" name="Appearance To XML"/>
<menu_item_call label="キャラクタジオメトリの切り替え" name="Toggle Character Geometry"/>
<menu_item_call label="男性アバターのテスト" name="Test Male"/>
<menu_item_call label="女性アバターのテスト" name="Test Female"/>
<menu_item_call label="PG のトグル" name="Toggle PG"/>
<menu_item_check label="選択アバター許可" name="Allow Select Avatar"/>
</menu>
- <menu_item_call label="Params をデフォルトに実行" name="Force Params to Default"/>
+ <menu_item_call label="Params をデフォルトで実行する" name="Force Params to Default"/>
<menu_item_check label="アニメーション情報" name="Animation Info"/>
- <menu_item_check label="アニメーションをスローモーション" name="Slow Motion Animations"/>
+ <menu_item_check label="スローモーションのアニメーション" name="Slow Motion Animations"/>
<menu_item_check label="見ているものを表示する" name="Show Look At"/>
<menu_item_check label="クリックした場所を表示する" name="Show Point At"/>
<menu_item_check label="結合部のアップデートのデバッグ" name="Debug Joint Updates"/>
<menu_item_check label="LOD を無効にする" name="Disable LOD"/>
<menu_item_check label="キャラクター Vis のデバッグ" name="Debug Character Vis"/>
- <menu_item_check label="骨組みの衝突判定を表示" name="Show Collision Skeleton"/>
- <menu_item_check label="エージェントのターゲットを表示" name="Display Agent Target"/>
+ <menu_item_check label="骨組みの衝突判定を表示する" name="Show Collision Skeleton"/>
+ <menu_item_check label="エージェントのターゲットを表示する" name="Display Agent Target"/>
--&gt;
<menu_item_call label="アタッチメントをダンプ" name="Dump Attachments"/>
<menu_item_call label="アバターテクスチャをデバッグ" name="Debug Avatar Textures"/>
@@ -359,8 +359,8 @@
<menu_item_check label="HTTP Texture" name="HTTP Textures"/>
<menu_item_call label="圧縮画像" name="Compress Images"/>
<menu_item_check label="Output Debug Minidump" name="Output Debug Minidump"/>
- <menu_item_check label="次回の起動時にコンソールウィンドウを表示" name="Console Window"/>
- <menu_item_check label="管理者メニューを表示" name="View Admin Options"/>
+ <menu_item_check label="次回の起動時にコンソールウィンドウを表示する" name="Console Window"/>
+ <menu_item_check label="管理者メニューを表示する" name="View Admin Options"/>
<menu_item_call label="管理者ステータスの呼び出し" name="Request Admin Options"/>
<menu_item_call label="管理者ステータス解除" name="Leave Admin Options"/>
</menu>
@@ -368,19 +368,19 @@
<menu label="Object">
<menu_item_call label="コピーを取る" name="Take Copy"/>
<menu_item_call label="私を所有者にする" name="Force Owner To Me"/>
- <menu_item_call label="所有者権限の実行" name="Force Owner Permissive"/>
+ <menu_item_call label="所有者権限を実行する" name="Force Owner Permissive"/>
<menu_item_call label="削除" name="Delete"/>
<menu_item_call label="ロック" name="Lock"/>
- <menu_item_call label="アセット ID を取得" name="Get Assets IDs"/>
+ <menu_item_call label="アセット ID を取得する" name="Get Assets IDs"/>
</menu>
<menu label="区画" name="Parcel">
<menu_item_call label="私を所有者にする" name="Owner To Me"/>
- <menu_item_call label="リンデンコンテンツに設定" name="Set to Linden Content"/>
- <menu_item_call label="パブリックの土地を取得" name="Claim Public Land"/>
+ <menu_item_call label="リンデンコンテンツに設定する" name="Set to Linden Content"/>
+ <menu_item_call label="パブリックの土地を取得する" name="Claim Public Land"/>
</menu>
<menu label="リージョン/地域" name="Region">
<menu_item_call label="一時アセットデータをダンプ" name="Dump Temp Asset Data"/>
- <menu_item_call label="リージョンの状態を保存" name="Save Region State"/>
+ <menu_item_call label="リージョンの状態を保存する" name="Save Region State"/>
</menu>
<menu_item_call label="グリッドツール" name="God Tools"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
index 3dbabc62be..5998206f27 100644
--- a/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_chat_bar.xml
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="chat_bar">
- <string name="min_width">
- 192
- </string>
- <string name="max_width">
- 320
- </string>
<line_editor label="ここをクリックしてチャットを開始します。" name="chat_box" tool_tip="Enter キーを押して発言し、Ctrl + Enter キーで叫びます。"/>
<button name="show_nearby_chat" tool_tip="近くのチャットログを表示・非表示"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
index e0c25c35a1..87cd772143 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_advanced.xml
@@ -22,7 +22,7 @@
<radio_item label="近くのチャット" name="0"/>
<radio_item label="別々のウィンドウ" name="1"/>
</radio_group>
- <check_box label="押すとボイスのオン・オフを切り替えます:" name="push_to_talk_toggle_check" tool_tip="トグルモードの時にトリガーキーを1度押して放すと、マイクのオン・オフ設定を切り替えます。 トグルモードではないときは、トリガーキーを押した状態の時のみあなたの声が相手に聞こえます。"/>
+ <check_box label="ボイスのオン・オフ切り替えに使用するトリガーキー:" name="push_to_talk_toggle_check" tool_tip="トグルモードの時にトリガーキーを 1 度押して放すと、マイクのオン・オフ設定を切り替えます。 トグルモードではないときは、トリガーキーを押した状態の時のみあなたの声が相手に聞こえます。"/>
<line_editor label="プッシュ・トゥ・スピークのトリガー" name="modifier_combo"/>
<button label="キー設定" name="set_voice_hotkey_button"/>
<button label="マウスの中央ボタン" name="set_voice_middlemouse_button" tool_tip="マウスの中央ボタンにリセットします"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml
index a8c74d50e4..9b993488be 100644
--- a/indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/pt/panel_nearby_chat_bar.xml
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="chat_bar">
- <string name="min_width">
- 192
- </string>
- <string name="max_width">
- 320
- </string>
<line_editor label="Clique aqui para bater papo." name="chat_box" tool_tip="Tecle Enter para falar, Ctrl+Enter para gritar"/>
<button name="show_nearby_chat" tool_tip="Mostra/oculta o histórico do bate-papo local"/>
</panel>