summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2010-02-25 16:50:21 -0800
committerRoxie Linden <roxie@lindenlab.com>2010-02-25 16:50:21 -0800
commit5ed6e0720af1b6cdf1a983e2c040eeb5d8ae33ba (patch)
tree5d0141f43cfaf59e5cb62eb2f4ca9541160e6173 /indra/newview
parent3ab4b0f58326a01a09aa99f262c03d2703215af2 (diff)
parent6e932911d5b0a02b44caf3bf81a9c00fd0e1dc89 (diff)
warn-on-failure:unix-eol
automated merge from trunk
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/app_settings/keywords.ini4
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/llappearancemgr.cpp22
-rw-r--r--indra/newview/llappearancemgr.h10
-rw-r--r--indra/newview/llcallfloater.cpp6
-rw-r--r--indra/newview/llfloaterpreference.cpp9
-rw-r--r--indra/newview/llfloaterpreference.h3
-rw-r--r--indra/newview/llgesturemgr.cpp35
-rw-r--r--indra/newview/llgesturemgr.h3
-rw-r--r--indra/newview/llinventorybridge.cpp50
-rw-r--r--indra/newview/llinventorymodel.cpp4
-rw-r--r--indra/newview/llinventoryobserver.h5
-rw-r--r--indra/newview/llinventorypanel.cpp8
-rw-r--r--indra/newview/llinventorypanel.h2
-rw-r--r--indra/newview/llmediactrl.cpp109
-rw-r--r--indra/newview/llmediactrl.h1
-rw-r--r--indra/newview/llmutelist.cpp76
-rw-r--r--indra/newview/llmutelist.h9
-rw-r--r--indra/newview/llnearbychat.cpp5
-rw-r--r--indra/newview/llpanelavatar.cpp17
-rw-r--r--indra/newview/llpanelavatar.h5
-rw-r--r--indra/newview/llpanelme.cpp2
-rw-r--r--indra/newview/llpaneloutfitsinventory.cpp40
-rw-r--r--indra/newview/llpaneloutfitsinventory.h24
-rw-r--r--indra/newview/llpanelplaces.cpp14
-rw-r--r--indra/newview/llpanelprofileview.cpp54
-rw-r--r--indra/newview/llpanelprofileview.h20
-rw-r--r--indra/newview/llspeakers.cpp2
-rw-r--r--indra/newview/lltoolpie.cpp572
-rw-r--r--indra/newview/lltoolpie.h4
-rw-r--r--indra/newview/lltransientdockablefloater.cpp24
-rw-r--r--indra/newview/lltransientfloatermgr.cpp4
-rw-r--r--indra/newview/lltransientfloatermgr.h2
-rw-r--r--indra/newview/llviewermenu.cpp13
-rw-r--r--indra/newview/llvoiceclient.cpp76
-rw-r--r--indra/newview/llvoiceclient.h42
-rw-r--r--indra/newview/llvoicevivox.cpp5
-rw-r--r--indra/newview/skins/default/textures/bottomtray/WellButton_Lit.pngbin490 -> 309 bytes
-rw-r--r--indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.pngbin302 -> 309 bytes
-rw-r--r--indra/newview/skins/default/xui/da/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_profile.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_customize.xml1490
-rw-r--r--indra/newview/skins/default/xui/en/floater_sys_well.xml8
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_checkbox.xml79
-rw-r--r--indra/newview/skins/default/xui/en/floater_tools.xml10
-rw-r--r--indra/newview/skins/default/xui/en/main_view.xml20
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml12
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml22
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_land_money.xml90
-rw-r--r--indra/newview/skins/default/xui/en/panel_navigation_bar.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_outfits_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_setup.xml646
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile.xml11
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml9
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml16
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml18
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml18
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml16
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml4
-rw-r--r--indra/newview/skins/default/xui/en/widgets/chiclet_script.xml12
-rw-r--r--indra/newview/skins/default/xui/en/widgets/color_swatch.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_bulk_perms.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_buy_currency.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml3
-rw-r--r--indra/newview/skins/default/xui/fr/menu_viewer.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_profile.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_skin.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/panel_main_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_notes.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_people.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_chat.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_general.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_profile_view.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/strings.xml58
-rw-r--r--indra/newview/skins/default/xui/it/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_profile.xml2
-rw-r--r--indra/newview/skins/default/xui/nl/floater_about.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about.xml2
-rwxr-xr-xindra/newview/viewer_manifest.py6
87 files changed, 2104 insertions, 1814 deletions
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index 14025c8061..0805e94b10 100644
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -268,8 +268,8 @@ ATTACH_LHIP Passed to llAttachToAvatar to attach task to left hip
ATTACH_LULEG Passed to llAttachToAvatar to attach task to left upper leg
ATTACH_LLLEG Passed to llAttachToAvatar to attach task to left lower leg
ATTACH_BELLY Passed to llAttachToAvatar to attach task to belly
-ATTACH_RPEC Passed to llAttachToAvatar to attach task to right pectoral
-ATTACH_LPEC Passed to llAttachToAvatar to attach task to left pectoral
+ATTACH_LEFT_PEC Passed to llAttachToAvatar to attach task to left pectoral
+ATTACH_RIGHT_PEC Passed to llAttachToAvatar to attach task to right pectoral
LAND_LEVEL Passed to llModifyLand to level terrain
LAND_RAISE Passed to llModifyLand to raise terrain
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 05f1e71711..f4a0bdb077 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -10380,6 +10380,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>VoiceDefaultInternalLevel</key>
+ <map>
+ <key>Comment</key>
+ <string>Internal level of voice set by default. Is equivalent to 0.5 (from 0.0-1.0 range) external voice level (internal = 400 * external^2).</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>100</integer>
+ </map>
<key>VoiceEarLocation</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 61d60fdff9..03180b6a9d 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -428,7 +428,7 @@ static void onWearableAssetFetch(LLWearable* wearable, void* data)
holder->mResolved += 1;
}
-LLUUID LLAppearanceManager::getCOF()
+const LLUUID LLAppearanceManager::getCOF() const
{
return gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
}
@@ -1311,3 +1311,23 @@ void LLAppearanceManager::linkRegisteredAttachments()
}
mRegisteredAttachments.clear();
}
+
+BOOL LLAppearanceManager::getIsInCOF(const LLUUID& obj_id) const
+{
+ return gInventory.isObjectDescendentOf(obj_id, getCOF());
+}
+
+BOOL LLAppearanceManager::getIsProtectedCOFItem(const LLUUID& obj_id) const
+{
+ if (!getIsInCOF(obj_id)) return FALSE;
+ const LLInventoryObject *obj = gInventory.getObject(obj_id);
+ if (!obj) return FALSE;
+
+ // Can't delete bodyparts, since this would be equivalent to removing the item.
+ if (obj->getType() == LLAssetType::AT_BODYPART) return TRUE;
+
+ // Can't delete the folder link, since this is saved for bookkeeping.
+ if (obj->getActualType() == LLAssetType::AT_LINK_FOLDER) return TRUE;
+
+ return FALSE;
+}
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index 517face777..dd50b482cf 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -59,7 +59,7 @@ public:
LLPointer<LLInventoryCallback> cb);
// Find the Current Outfit folder.
- LLUUID getCOF();
+ const LLUUID getCOF() const;
// Finds the folder link to the currently worn outfit
const LLViewerInventoryItem *getBaseOutfitLink();
@@ -132,6 +132,14 @@ private:
std::set<LLUUID> mRegisteredAttachments;
bool mAttachmentInvLinkEnabled;
bool mOutfitIsDirty;
+
+ //////////////////////////////////////////////////////////////////////////////////
+ // Item-specific convenience functions
+public:
+ // Is this in the COF?
+ BOOL getIsInCOF(const LLUUID& obj_id) const;
+ // Is this in the COF and can the user delete it from the COF?
+ BOOL getIsProtectedCOFItem(const LLUUID& obj_id) const;
};
#define SUPPORT_ENSEMBLES 0
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index 289b4d1542..1640081ee6 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -43,6 +43,7 @@
#include "llavatariconctrl.h"
#include "llavatarlist.h"
#include "llbottomtray.h"
+#include "lldraghandle.h"
#include "llimfloater.h"
#include "llfloaterreg.h"
#include "llparticipantlist.h"
@@ -158,6 +159,11 @@ BOOL LLCallFloater::postBuild()
connectToChannel(LLVoiceChannel::getCurrentVoiceChannel());
+ setIsChrome(true);
+ //chrome="true" hides floater caption
+ if (mDragHandle)
+ mDragHandle->setTitleVisible(TRUE);
+
return TRUE;
}
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 7d8259126e..df57085ae1 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -1435,6 +1435,7 @@ BOOL LLPanelPreference::postBuild()
media_enabled_ctrl->set(enabled);
media_enabled_ctrl->setTentative(!(video_enabled == music_enabled == media_enabled));
getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(enabled);
+ getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2));
}
apply();
@@ -1485,6 +1486,14 @@ void LLPanelPreference::saveSettings()
}
}
+void LLPanelPreference::showFriendsOnlyWarning(LLUICtrl* checkbox, const LLSD& value)
+{
+ if (checkbox && checkbox->getValue())
+ {
+ LLNotificationsUtil::add("FriendsAndGroupsOnly");
+ }
+}
+
void LLPanelPreference::cancel()
{
for (control_values_map_t::iterator iter = mSavedValues.begin();
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index 6f382620ee..8b02a4049d 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -166,6 +166,9 @@ public:
virtual void saveSettings();
private:
+ //for "Only friends and groups can call or IM me"
+ static void showFriendsOnlyWarning(LLUICtrl*, const LLSD&);
+
typedef std::map<LLControlVariable*, LLSD> control_values_map_t;
control_values_map_t mSavedValues;
diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp
index 82293b4aa0..0ba7bdf613 100644
--- a/indra/newview/llgesturemgr.cpp
+++ b/indra/newview/llgesturemgr.cpp
@@ -98,6 +98,41 @@ void LLGestureManager::init()
// TODO
}
+void LLGestureManager::changed(U32 mask)
+{
+ LLInventoryFetchObserver::changed(mask);
+
+ if (mask & LLInventoryObserver::GESTURE)
+ {
+ // If there was a gesture label changed, update all the names in the
+ // active gestures and then notify observers
+ if (mask & LLInventoryObserver::LABEL)
+ {
+ for(item_map_t::iterator it = mActive.begin(); it != mActive.end(); ++it)
+ {
+ if(it->second)
+ {
+ LLViewerInventoryItem* item = gInventory.getItem(it->first);
+ if(item)
+ {
+ it->second->mName = item->getName();
+ }
+ }
+ }
+ notifyObservers();
+ }
+ // If there was a gesture added or removed notify observers
+ // STRUCTURE denotes that the inventory item has been moved
+ // In the case of deleting gesture, it is moved to the trash
+ else if(mask & LLInventoryObserver::ADD ||
+ mask & LLInventoryObserver::REMOVE ||
+ mask & LLInventoryObserver::STRUCTURE)
+ {
+ notifyObservers();
+ }
+ }
+}
+
// Use this version when you have the item_id but not the asset_id,
// and you KNOW the inventory is loaded.
diff --git a/indra/newview/llgesturemgr.h b/indra/newview/llgesturemgr.h
index c562587c6f..3dd184ddc7 100644
--- a/indra/newview/llgesturemgr.h
+++ b/indra/newview/llgesturemgr.h
@@ -140,6 +140,9 @@ public:
void removeObserver(LLGestureManagerObserver* observer);
void notifyObservers();
+ // Overriding so we can update active gesture names and notify observers
+ void changed(U32 mask);
+
BOOL matchPrefix(const std::string& in_str, std::string* out_str);
// Copy item ids into the vector
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 2f4f285065..6c9c7d15be 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -185,6 +185,11 @@ BOOL LLInvFVBridge::isItemRemovable()
{
return FALSE;
}
+ if (LLAppearanceManager::instance().getIsProtectedCOFItem(mUUID))
+ {
+ return FALSE;
+ }
+
const LLInventoryObject *obj = model->getItem(mUUID);
if (obj && obj->getIsLinkType())
{
@@ -574,8 +579,8 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
disabled_items.push_back(std::string("Paste As Link"));
}
}
- items.push_back(std::string("Paste Separator"));
+ items.push_back(std::string("Paste Separator"));
if (obj && obj->getIsLinkType() && !get_is_item_worn(mUUID))
{
@@ -712,14 +717,7 @@ BOOL LLInvFVBridge::isAgentInventory() const
BOOL LLInvFVBridge::isCOFFolder() const
{
- const LLInventoryModel* model = getInventoryModel();
- if(!model) return TRUE;
- const LLUUID cof_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
- if (mUUID == cof_id || model->isObjectDescendentOf(mUUID, cof_id))
- {
- return TRUE;
- }
- return FALSE;
+ return LLAppearanceManager::instance().getIsInCOF(mUUID);
}
BOOL LLInvFVBridge::isItemPermissive() const
@@ -3798,8 +3796,25 @@ void LLGestureBridge::openItem()
BOOL LLGestureBridge::removeItem()
{
- // Force close the preview window, if it exists
- LLGestureManager::instance().deactivateGesture(mUUID);
+ // Grab class information locally since *this may be deleted
+ // within this function. Not a great pattern...
+ const LLInventoryModel* model = getInventoryModel();
+ if(!model)
+ {
+ return FALSE;
+ }
+ const LLUUID item_id = mUUID;
+
+ // This will also force close the preview window, if it exists.
+ // This may actually delete *this, if mUUID is in the COF.
+ LLGestureManager::instance().deactivateGesture(item_id);
+
+ // If deactivateGesture deleted *this, then return out immediately.
+ if (!model->getObject(item_id))
+ {
+ return TRUE;
+ }
+
return LLItemBridge::removeItem();
}
@@ -4593,7 +4608,10 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
getClipboardEntries(true, items, disabled_items, flags);
- items.push_back(std::string("Wearable Separator"));
+ if (!is_sidepanel)
+ {
+ items.push_back(std::string("Wearable Separator"));
+ }
items.push_back(std::string("Wearable Edit"));
@@ -5058,8 +5076,12 @@ void LLLandmarkBridgeAction::doIt()
// Opening (double-clicking) a landmark immediately teleports,
// but warns you the first time.
LLSD payload;
- payload["asset_id"] = item->getAssetUUID();
- LLNotificationsUtil::add("TeleportFromLandmark", LLSD(), payload);
+ payload["asset_id"] = item->getAssetUUID();
+
+ LLSD args;
+ args["LOCATION"] = item->getDisplayName();
+
+ LLNotificationsUtil::add("TeleportFromLandmark", args, payload);
}
LLInvFVBridgeAction::doIt();
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 8fab8d116a..bd766e8519 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -755,6 +755,10 @@ U32 LLInventoryModel::updateItem(const LLViewerInventoryItem* item)
gCacheName->get(id, FALSE, boost::bind(&LLViewerInventoryItem::onCallingCardNameLookup, new_item.get(), _1, _2, _3));
}
}
+ else if (new_item->getType() == LLAssetType::AT_GESTURE)
+ {
+ mask |= LLInventoryObserver::GESTURE;
+ }
addChangedMask(mask, new_item->getUUID());
return mask;
}
diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h
index c1f192e2bf..d6dded52d4 100644
--- a/indra/newview/llinventoryobserver.h
+++ b/indra/newview/llinventoryobserver.h
@@ -61,8 +61,9 @@ public:
REMOVE = 8, // something deleted
STRUCTURE = 16, // structural change (eg item or folder moved)
CALLING_CARD = 32, // (eg online, grant status, cancel)
- REBUILD = 64, // item UI changed (eg item type different)
- SORT = 128, // folder needs to be resorted.
+ GESTURE = 64,
+ REBUILD = 128, // item UI changed (eg item type different)
+ SORT = 256, // folder needs to be resorted.
ALL = 0xffffffff
};
LLInventoryObserver();
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 9141d50829..7e71ac90b4 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -682,6 +682,14 @@ void LLInventoryPanel::setSelection(const LLUUID& obj_id, BOOL take_keyboard_foc
mFolders->setSelectionByID(obj_id, take_keyboard_focus);
}
+void LLInventoryPanel::setSelectCallback(const LLFolderView::signal_t::slot_type& cb)
+{
+ if (mFolders)
+ {
+ mFolders->setSelectCallback(cb);
+ }
+}
+
void LLInventoryPanel::clearSelection()
{
mFolders->clearSelection();
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index 09533b52f1..ccff795a51 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -123,7 +123,7 @@ public:
// Call this method to set the selection.
void openAllFolders();
void setSelection(const LLUUID& obj_id, BOOL take_keyboard_focus);
- void setSelectCallback(const LLFolderView::signal_t::slot_type& cb) { if (mFolders) mFolders->setSelectCallback(cb); }
+ void setSelectCallback(const LLFolderView::signal_t::slot_type& cb);
void clearSelection();
LLInventoryFilter* getFilter();
void setFilterTypes(U64 filter, LLInventoryFilter::EFilterType = LLInventoryFilter::FILTERTYPE_OBJECT);
diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp
index 87ebce1d34..d464862eed 100644
--- a/indra/newview/llmediactrl.cpp
+++ b/indra/newview/llmediactrl.cpp
@@ -870,38 +870,6 @@ void LLMediaCtrl::convertInputCoords(S32& x, S32& y)
}
////////////////////////////////////////////////////////////////////////////////
-// static
-bool LLMediaCtrl::onClickLinkExternalTarget(const LLSD& notification, const LLSD& response )
-{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- if ( 0 == option )
- {
- LLSD payload = notification["payload"];
- std::string url = payload["url"].asString();
- S32 target_type = payload["target_type"].asInteger();
-
- switch (target_type)
- {
- case LLPluginClassMedia::TARGET_EXTERNAL:
- // load target in an external browser
- LLWeb::loadURLExternal(url);
- break;
-
- case LLPluginClassMedia::TARGET_BLANK:
- // load target in the user's preferred browser
- LLWeb::loadURL(url);
- break;
-
- default:
- // unsupported link target - shouldn't happen
- LL_WARNS("LinkTarget") << "Unsupported link target type" << LL_ENDL;
- break;
- }
- }
- return false;
-}
-
-////////////////////////////////////////////////////////////////////////////////
// inherited from LLViewerMediaObserver
//virtual
void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
@@ -1014,44 +982,83 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self )
U32 target_type = self->getClickTargetType();
// is there is a target specified for the link?
- if (target_type == LLPluginClassMedia::TARGET_EXTERNAL ||
- target_type == LLPluginClassMedia::TARGET_BLANK)
+ if (gSavedSettings.getBOOL("UseExternalBrowser") || target_type == LLPluginClassMedia::TARGET_EXTERNAL)
{
LLSD payload;
payload["url"] = url;
payload["target_type"] = LLSD::Integer(target_type);
LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, onClickLinkExternalTarget);
- return;
}
-
- const std::string protocol1( "http://" );
- const std::string protocol2( "https://" );
- if( mOpenLinksInExternalBrowser )
+ else if (target_type == LLPluginClassMedia::TARGET_BLANK)
{
- if ( !url.empty() )
+ clickLinkWithTarget(url, target_type);
+ }
+ else {
+ const std::string protocol1( "http://" );
+ const std::string protocol2( "https://" );
+ if( mOpenLinksInExternalBrowser )
{
- if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 ||
- LLStringUtil::compareInsensitive( url.substr( 0, protocol2.length() ), protocol2 ) == 0 )
+ if ( !url.empty() )
{
- LLWeb::loadURLExternal( url );
+ if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 ||
+ LLStringUtil::compareInsensitive( url.substr( 0, protocol2.length() ), protocol2 ) == 0 )
+ {
+ LLWeb::loadURLExternal( url );
+ }
}
}
- }
- else
- if( mOpenLinksInInternalBrowser )
- {
- if ( !url.empty() )
+ else
+ if( mOpenLinksInInternalBrowser )
{
- if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 ||
- LLStringUtil::compareInsensitive( url.substr( 0, protocol2.length() ), protocol2 ) == 0 )
+ if ( !url.empty() )
{
- llwarns << "Dead, unimplemented path that we used to send to the built-in browser long ago." << llendl;
+ if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 ||
+ LLStringUtil::compareInsensitive( url.substr( 0, protocol2.length() ), protocol2 ) == 0 )
+ {
+ llwarns << "Dead, unimplemented path that we used to send to the built-in browser long ago." << llendl;
+ }
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
+// static
+bool LLMediaCtrl::onClickLinkExternalTarget(const LLSD& notification, const LLSD& response )
+{
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ if ( 0 == option )
+ {
+ LLSD payload = notification["payload"];
+ std::string url = payload["url"].asString();
+ S32 target_type = payload["target_type"].asInteger();
+ clickLinkWithTarget(url, target_type);
+ }
+ return false;
+}
+
+
+////////////////////////////////////////////////////////////////////////////////
+// static
+void LLMediaCtrl::clickLinkWithTarget(const std::string& url, const S32& target_type )
+{
+ if (gSavedSettings.getBOOL("UseExternalBrowser") || target_type == LLPluginClassMedia::TARGET_EXTERNAL)
+ {
+ // load target in an external browser
+ LLWeb::loadURLExternal(url);
+ }
+ else if (target_type == LLPluginClassMedia::TARGET_BLANK)
+ {
+ // load target in the user's preferred browser
+ LLWeb::loadURL(url);
+ }
+ else {
+ // unsupported link target - shouldn't happen
+ LL_WARNS("LinkTarget") << "Unsupported link target type" << LL_ENDL;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
//
void LLMediaCtrl::onClickLinkNoFollow( LLPluginClassMedia* self )
{
diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h
index b0aca3cfa4..60e0c4073b 100644
--- a/indra/newview/llmediactrl.h
+++ b/indra/newview/llmediactrl.h
@@ -172,6 +172,7 @@ public:
private:
void onVisibilityChange ( const LLSD& new_visibility );
static bool onClickLinkExternalTarget( const LLSD&, const LLSD& );
+ static void clickLinkWithTarget(const std::string& url, const S32& target_type );
const S32 mTextureDepthBytes;
LLUUID mMediaTextureID;
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index 7ee4c64f8f..c1666f5666 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -52,23 +52,15 @@
#include <boost/tokenizer.hpp>
-#include "llcrc.h"
-#include "lldir.h"
#include "lldispatcher.h"
-#include "llsdserialize.h"
#include "llxfermanager.h"
-#include "message.h"
#include "llagent.h"
#include "llviewergenericmessage.h" // for gGenericDispatcher
-#include "llviewerwindow.h"
#include "llworld.h" //for particle system banning
-#include "llchat.h"
#include "llimpanel.h"
#include "llimview.h"
#include "llnotifications.h"
-#include "lluistring.h"
-#include "llviewerobject.h"
#include "llviewerobjectlist.h"
#include "lltrans.h"
@@ -219,61 +211,17 @@ LLMuteList* LLMuteList::getInstance()
// LLMuteList()
//-----------------------------------------------------------------------------
LLMuteList::LLMuteList() :
- mIsLoaded(FALSE),
- mUserVolumesLoaded(FALSE)
+ mIsLoaded(FALSE)
{
gGenericDispatcher.addHandler("emptymutelist", &sDispatchEmptyMuteList);
}
-void LLMuteList::loadUserVolumes()
-{
- // call once, after LLDir::setLindenUserDir() has been called
- if (mUserVolumesLoaded)
- return;
- mUserVolumesLoaded = TRUE;
-
- // load per-resident voice volume information
- // conceptually, this is part of the mute list information, although it is only stored locally
- std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml");
-
- LLSD settings_llsd;
- llifstream file;
- file.open(filename);
- if (file.is_open())
- {
- LLSDSerialize::fromXML(settings_llsd, file);
- }
-
- for (LLSD::map_const_iterator iter = settings_llsd.beginMap();
- iter != settings_llsd.endMap(); ++iter)
- {
- mUserVolumeSettings.insert(std::make_pair(LLUUID(iter->first), (F32)iter->second.asReal()));
- }
-}
-
//-----------------------------------------------------------------------------
// ~LLMuteList()
//-----------------------------------------------------------------------------
LLMuteList::~LLMuteList()
{
- // If we quit from the login screen we will not have an SL account
- // name. Don't try to save, otherwise we'll dump a file in
- // C:\Program Files\SecondLife\ or similar. JC
- std::string user_dir = gDirUtilp->getLindenUserDir();
- if (!user_dir.empty())
- {
- std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml");
- LLSD settings_llsd;
-
- for(user_volume_map_t::iterator iter = mUserVolumeSettings.begin(); iter != mUserVolumeSettings.end(); ++iter)
- {
- settings_llsd[iter->first.asString()] = iter->second;
- }
- llofstream file;
- file.open(filename);
- LLSDSerialize::toPrettyXML(settings_llsd, file);
- }
}
BOOL LLMuteList::isLinden(const std::string& name) const
@@ -715,8 +663,6 @@ BOOL LLMuteList::isMuted(const LLUUID& id, const std::string& name, U32 flags) c
//-----------------------------------------------------------------------------
void LLMuteList::requestFromServer(const LLUUID& agent_id)
{
- loadUserVolumes();
-
std::string agent_id_string;
std::string filename;
agent_id.toString(agent_id_string);
@@ -751,26 +697,6 @@ void LLMuteList::cache(const LLUUID& agent_id)
}
}
-void LLMuteList::setSavedResidentVolume(const LLUUID& id, F32 volume)
-{
- // store new value in volume settings file
- mUserVolumeSettings[id] = volume;
-}
-
-F32 LLMuteList::getSavedResidentVolume(const LLUUID& id)
-{
- const F32 DEFAULT_VOLUME = 0.5f;
-
- user_volume_map_t::iterator found_it = mUserVolumeSettings.find(id);
- if (found_it != mUserVolumeSettings.end())
- {
- return found_it->second;
- }
- //FIXME: assumes default, should get this from somewhere
- return DEFAULT_VOLUME;
-}
-
-
//-----------------------------------------------------------------------------
// Static message handlers
//-----------------------------------------------------------------------------
diff --git a/indra/newview/llmutelist.h b/indra/newview/llmutelist.h
index 409b637bf2..e1e81a24b4 100644
--- a/indra/newview/llmutelist.h
+++ b/indra/newview/llmutelist.h
@@ -127,12 +127,7 @@ public:
// call this method on logout to save everything.
void cache(const LLUUID& agent_id);
- void setSavedResidentVolume(const LLUUID& id, F32 volume);
- F32 getSavedResidentVolume(const LLUUID& id);
-
private:
- void loadUserVolumes();
-
BOOL loadFromFile(const std::string& filename);
BOOL saveToFile(const std::string& filename);
@@ -179,12 +174,8 @@ private:
observer_set_t mObservers;
BOOL mIsLoaded;
- BOOL mUserVolumesLoaded;
friend class LLDispatchEmptyMuteList;
-
- typedef std::map<LLUUID, F32> user_volume_map_t;
- user_volume_map_t mUserVolumeSettings;
};
class LLMuteListObserver
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index a7c1e73328..0a8d020b4f 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -101,6 +101,11 @@ BOOL LLNearbyChat::postBuild()
getDockTongue(), LLDockControl::TOP, boost::bind(&LLNearbyChat::getAllowedRect, this, _1)));
}
+ setIsChrome(true);
+ //chrome="true" hides floater caption
+ if (mDragHandle)
+ mDragHandle->setTitleVisible(TRUE);
+
return true;
}
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index 176f7c7002..dc40ed9c6a 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -584,8 +584,6 @@ void LLPanelAvatarProfile::processProfileProperties(const LLAvatarData* avatar_d
fillPartnerData(avatar_data);
- fillOnlineStatus(avatar_data);
-
fillAccountStatus(avatar_data);
}
@@ -653,21 +651,6 @@ void LLPanelAvatarProfile::fillPartnerData(const LLAvatarData* avatar_data)
}
}
-void LLPanelAvatarProfile::fillOnlineStatus(const LLAvatarData* avatar_data)
-{
- bool online = avatar_data->flags & AVATAR_ONLINE;
- if(LLAvatarActions::isFriend(avatar_data->avatar_id))
- {
- // Online status NO could be because they are hidden
- // If they are a friend, we may know the truth!
- online = LLAvatarTracker::instance().isBuddyOnline(avatar_data->avatar_id);
- }
- childSetValue("online_status", online ?
- "Online" : "Offline");
- childSetColor("online_status", online ?
- LLColor4::green : LLColor4::red);
-}
-
void LLPanelAvatarProfile::fillAccountStatus(const LLAvatarData* avatar_data)
{
LLStringUtil::format_map_t args;
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index 1174c72d60..ce59f1e93d 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -178,11 +178,6 @@ protected:
virtual void fillPartnerData(const LLAvatarData* avatar_data);
/**
- * Fills Avatar's online status.
- */
- virtual void fillOnlineStatus(const LLAvatarData* avatar_data);
-
- /**
* Fills account status.
*/
virtual void fillAccountStatus(const LLAvatarData* avatar_data);
diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp
index ece93125b3..0f0fb4b94e 100644
--- a/indra/newview/llpanelme.cpp
+++ b/indra/newview/llpanelme.cpp
@@ -198,8 +198,6 @@ void LLPanelMyProfileEdit::processProfileProperties(const LLAvatarData* avatar_d
{
fillCommonData(avatar_data);
- fillOnlineStatus(avatar_data);
-
fillPartnerData(avatar_data);
fillAccountStatus(avatar_data);
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index fd5ce7a46d..cf903958ee 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -61,6 +61,9 @@
#include "llviewercontrol.h"
+static const std::string OUTFITS_TAB_NAME = "outfitslist_tab";
+static const std::string COF_TAB_NAME = "cof_tab";
+
static LLRegisterPanelClassWrapper<LLPanelOutfitsInventory> t_inventory("panel_outfits_inventory");
bool LLPanelOutfitsInventory::sShowDebugEditor = false;
@@ -267,7 +270,7 @@ void LLPanelOutfitsInventory::onSaveCommit(const std::string& outfit_name)
if (mAppearanceTabs)
{
- mAppearanceTabs->selectTabByName("outfitslist_tab");
+ mAppearanceTabs->selectTabByName(OUTFITS_TAB_NAME);
}
}
@@ -503,8 +506,7 @@ BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)
if (command_name == "wear")
{
- const BOOL is_my_outfits = (mActivePanel->getName() == "outfitslist_tab");
- if (!is_my_outfits)
+ if (isCOFPanelActive())
{
return FALSE;
}
@@ -558,17 +560,15 @@ bool LLPanelOutfitsInventory::handleDragAndDropToTrash(BOOL drop, EDragAndDropTy
void LLPanelOutfitsInventory::initTabPanels()
{
- mTabPanels.resize(2);
-
- LLInventoryPanel *cof_panel = getChild<LLInventoryPanel>("cof_tab");
+ LLInventoryPanel *cof_panel = getChild<LLInventoryPanel>(COF_TAB_NAME);
cof_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
- mTabPanels[0] = cof_panel;
-
- LLInventoryPanel *myoutfits_panel = getChild<LLInventoryPanel>("outfitslist_tab");
+ mTabPanels.push_back(cof_panel);
+
+ LLInventoryPanel *myoutfits_panel = getChild<LLInventoryPanel>(OUTFITS_TAB_NAME);
myoutfits_panel->setFilterTypes(1LL << LLFolderType::FT_OUTFIT, LLInventoryFilter::FILTERTYPE_CATEGORY);
myoutfits_panel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
- mTabPanels[1] = myoutfits_panel;
-
+ mTabPanels.push_back(myoutfits_panel);
+
for (tabpanels_vec_t::iterator iter = mTabPanels.begin();
iter != mTabPanels.end();
++iter)
@@ -615,19 +615,19 @@ void LLPanelOutfitsInventory::onTabChange()
updateVerbs();
}
-LLInventoryPanel* LLPanelOutfitsInventory::getActivePanel()
-{
- return mActivePanel;
-}
-
-bool LLPanelOutfitsInventory::isTabPanel(LLInventoryPanel *panel)
+BOOL LLPanelOutfitsInventory::isTabPanel(LLInventoryPanel *panel) const
{
- for(tabpanels_vec_t::iterator it = mTabPanels.begin();
+ for(tabpanels_vec_t::const_iterator it = mTabPanels.begin();
it != mTabPanels.end();
++it)
{
if (*it == panel)
- return true;
+ return TRUE;
}
- return false;
+ return FALSE;
+}
+
+BOOL LLPanelOutfitsInventory::isCOFPanelActive() const
+{
+ return (getActivePanel()->getName() == COF_TAB_NAME);
}
diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h
index 76110e2a3f..ab25ef0a49 100644
--- a/indra/newview/llpaneloutfitsinventory.h
+++ b/indra/newview/llpaneloutfitsinventory.h
@@ -78,24 +78,26 @@ protected:
bool getIsCorrectType(const LLFolderViewEventListener *listenerp) const;
private:
- LLSidepanelAppearance* mParent;
- LLSaveFolderState* mSavedFolderState;
- LLTabContainer* mAppearanceTabs;
- std::string mFilterSubString;
+ LLSidepanelAppearance* mParent;
+ LLSaveFolderState* mSavedFolderState;
+ LLTabContainer* mAppearanceTabs;
+ std::string mFilterSubString;
public:
//////////////////////////////////////////////////////////////////////////////////
// tab panels
- LLInventoryPanel* getActivePanel();
- bool isTabPanel(LLInventoryPanel *panel);
+ LLInventoryPanel* getActivePanel() { return mActivePanel; }
+ const LLInventoryPanel* getActivePanel() const { return mActivePanel; }
+ BOOL isTabPanel(LLInventoryPanel *panel) const;
protected:
- void initTabPanels();
- void onTabSelectionChange(LLInventoryPanel* tab_panel, const std::deque<LLFolderViewItem*> &items, BOOL user_action);
- void onTabChange();
-
+ void initTabPanels();
+ void onTabSelectionChange(LLInventoryPanel* tab_panel, const std::deque<LLFolderViewItem*> &items, BOOL user_action);
+ void onTabChange();
+ BOOL isCOFPanelActive() const;
+
private:
- LLInventoryPanel* mActivePanel;
+ LLInventoryPanel* mActivePanel;
typedef std::vector<LLInventoryPanel *> tabpanels_vec_t;
tabpanels_vec_t mTabPanels;
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index a4f0e55a93..a8a9717750 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -384,6 +384,10 @@ void LLPanelPlaces::onOpen(const LLSD& key)
// Otherwise stop using land selection and deselect land.
if (mPlaceInfoType == AGENT_INFO_TYPE)
{
+ // We don't know if we are already added to LLViewerParcelMgr observers list
+ // so try to remove observer not to add an extra one.
+ parcel_mgr->removeObserver(mParcelObserver);
+
parcel_mgr->addObserver(mParcelObserver);
parcel_mgr->selectParcelAt(gAgent.getPositionGlobal());
}
@@ -898,6 +902,8 @@ void LLPanelPlaces::changedParcelSelection()
if (!region || !parcel)
return;
+ LLVector3d prev_pos_global = mPosGlobal;
+
// If agent is inside the selected parcel show agent's region<X, Y, Z>,
// otherwise show region<X, Y, Z> of agent's selection point.
bool is_current_parcel = is_agent_in_selected_parcel(parcel);
@@ -914,7 +920,13 @@ void LLPanelPlaces::changedParcelSelection()
}
}
- mPlaceProfile->resetLocation();
+ // Reset location info only if global position is changed
+ // to reduce unnecessary text and icons updates.
+ if (prev_pos_global != mPosGlobal)
+ {
+ mPlaceProfile->resetLocation();
+ }
+
mPlaceProfile->displaySelectedParcelInfo(parcel, region, mPosGlobal, is_current_parcel);
updateVerbs();
diff --git a/indra/newview/llpanelprofileview.cpp b/indra/newview/llpanelprofileview.cpp
index 7832f63e6a..044036ea50 100644
--- a/indra/newview/llpanelprofileview.cpp
+++ b/indra/newview/llpanelprofileview.cpp
@@ -101,8 +101,6 @@ void LLPanelProfileView::onOpen(const LLSD& key)
id = key["id"];
}
- // subscribe observer to get online status. Request will be sent by LLPanelAvatarProfile itself
- mAvatarStatusObserver->subscribe();
if(id.notNull() && getAvatarId() != id)
{
setAvatarId(id);
@@ -111,12 +109,9 @@ void LLPanelProfileView::onOpen(const LLSD& key)
// Update the avatar name.
gCacheName->get(getAvatarId(), FALSE,
boost::bind(&LLPanelProfileView::onAvatarNameCached, this, _1, _2, _3, _4));
-/*
-// disable this part of code according to EXT-2022. See processOnlineStatus
- // status should only show if viewer has permission to view online/offline. EXT-453
- mStatusText->setVisible(isGrantedToSeeOnlineStatus());
+
updateOnlineStatus();
-*/
+
LLPanelProfile::onOpen(key);
}
@@ -164,27 +159,43 @@ bool LLPanelProfileView::isGrantedToSeeOnlineStatus()
// *NOTE: GRANT_ONLINE_STATUS is always set to false while changing any other status.
// When avatar disallow me to see her online status processOfflineNotification Message is received by the viewer
// see comments for ChangeUserRights template message. EXT-453.
-// return relationship->isRightGrantedFrom(LLRelationship::GRANT_ONLINE_STATUS);
- return true;
+ // If GRANT_ONLINE_STATUS flag is changed it will be applied when viewer restarts. EXT-3880
+ return relationship->isRightGrantedFrom(LLRelationship::GRANT_ONLINE_STATUS);
}
+// method was disabled according to EXT-2022. Re-enabled & improved according to EXT-3880
void LLPanelProfileView::updateOnlineStatus()
{
+ // set text box visible to show online status for non-friends who has not set in Preferences
+ // "Only Friends & Groups can see when I am online"
+ mStatusText->setVisible(TRUE);
+
const LLRelationship* relationship = LLAvatarTracker::instance().getBuddyInfo(getAvatarId());
if (NULL == relationship)
- return;
+ {
+ // this is non-friend avatar. Status will be updated from LLAvatarPropertiesProcessor.
+ // in LLPanelProfileView::processOnlineStatus()
- bool online = relationship->isOnline();
+ // subscribe observer to get online status. Request will be sent by LLPanelAvatarProfile itself.
+ // do not subscribe for friend avatar because online status can be wrong overridden
+ // via LLAvatarData::flags if Preferences: "Only Friends & Groups can see when I am online" is set.
+ mAvatarStatusObserver->subscribe();
+ return;
+ }
+ // For friend let check if he allowed me to see his status
- std::string status = getString(online ? "status_online" : "status_offline");
+ // status should only show if viewer has permission to view online/offline. EXT-453, EXT-3880
+ mStatusText->setVisible(isGrantedToSeeOnlineStatus());
- mStatusText->setValue(status);
+ bool online = relationship->isOnline();
+ processOnlineStatus(online);
}
void LLPanelProfileView::processOnlineStatus(bool online)
{
- mAvatarIsOnline = online;
- mStatusText->setVisible(online);
+ std::string status = getString(online ? "status_online" : "status_offline");
+
+ mStatusText->setValue(status);
}
void LLPanelProfileView::onAvatarNameCached(const LLUUID& id, const std::string& first_name, const std::string& last_name, BOOL is_group)
@@ -193,17 +204,4 @@ void LLPanelProfileView::onAvatarNameCached(const LLUUID& id, const std::string&
getChild<LLUICtrl>("user_name", FALSE)->setValue(first_name + " " + last_name);
}
-void LLPanelProfileView::togglePanel(LLPanel* panel, const LLSD& key)
-{
- // *TODO: unused method?
-
- LLPanelProfile::togglePanel(panel);
- if(FALSE == panel->getVisible())
- {
- // LLPanelProfile::togglePanel shows/hides all children,
- // we don't want to display online status for non friends, so re-hide it here
- mStatusText->setVisible(mAvatarIsOnline);
- }
-}
-
// EOF
diff --git a/indra/newview/llpanelprofileview.h b/indra/newview/llpanelprofileview.h
index 5dc617d4a0..9b87e146a8 100644
--- a/indra/newview/llpanelprofileview.h
+++ b/indra/newview/llpanelprofileview.h
@@ -64,8 +64,6 @@ public:
/*virtual*/ BOOL postBuild();
- /*virtual*/ void togglePanel(LLPanel* panel, const LLSD& key = LLSD());
-
BOOL handleDragAndDrop(S32 x, S32 y, MASK mask,
BOOL drop, EDragAndDropType cargo_type,
void *cargo_data, EAcceptance *accept,
@@ -81,8 +79,21 @@ public:
protected:
void onBackBtnClick();
- bool isGrantedToSeeOnlineStatus(); // deprecated after EXT-2022 is implemented
- void updateOnlineStatus(); // deprecated after EXT-2022 is implemented
+ bool isGrantedToSeeOnlineStatus();
+
+ /**
+ * Displays avatar's online status if possible.
+ *
+ * Requirements from EXT-3880:
+ * For friends:
+ * - Online when online and privacy settings allow to show
+ * - Offline when offline and privacy settings allow to show
+ * - Else: nothing
+ * For other avatars:
+ * - Online when online and was not set in Preferences/"Only Friends & Groups can see when I am online"
+ * - Else: Offline
+ */
+ void updateOnlineStatus();
void processOnlineStatus(bool online);
private:
@@ -96,7 +107,6 @@ private:
LLTextBox* mStatusText;
AvatarStatusObserver* mAvatarStatusObserver;
- bool mAvatarIsOnline;
};
#endif //LL_LLPANELPROFILEVIEW_H
diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp
index a161588ddd..35d17687a8 100644
--- a/indra/newview/llspeakers.cpp
+++ b/indra/newview/llspeakers.cpp
@@ -70,8 +70,6 @@ LLSpeaker::LLSpeaker(const LLUUID& id, const std::string& name, const ESpeakerTy
{
mDisplayName = name;
}
-
- LLVoiceClient::getInstance()->setUserVolume(id, LLMuteList::getInstance()->getSavedResidentVolume(id));
}
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index da68af1597..c79a66892d 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -68,7 +68,6 @@
#include "llviewermedia.h"
#include "llvoavatarself.h"
#include "llviewermediafocus.h"
-#include "llvovolume.h"
#include "llworld.h"
#include "llui.h"
#include "llweb.h"
@@ -630,14 +629,12 @@ static bool needs_tooltip(LLSelectNode* nodep)
return false;
LLViewerObject* object = nodep->getObject();
- LLVOVolume* vovolume = dynamic_cast<LLVOVolume*>(object);
LLViewerObject *parent = (LLViewerObject *)object->getParent();
if (object->flagHandleTouch()
|| (parent && parent->flagHandleTouch())
|| object->flagTakesMoney()
|| (parent && parent->flagTakesMoney())
|| object->flagAllowInventoryAdd()
- || (vovolume && vovolume->hasMedia())
)
{
return true;
@@ -661,341 +658,352 @@ static bool needs_tooltip(LLSelectNode* nodep)
return false;
}
-BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
-{
- if (!LLUI::sSettingGroups["config"]->getBOOL("ShowHoverTips")) return TRUE;
- if (!mHoverPick.isValid()) return TRUE;
-
- LLViewerObject* hover_object = mHoverPick.getObject();
-
- // update hover object and hover parcel
- LLSelectMgr::getInstance()->setHoverObject(hover_object, mHoverPick.mObjectFace);
- if (mHoverPick.mPickType == LLPickInfo::PICK_LAND)
+BOOL LLToolPie::handleTooltipLand(std::string line, std::string tooltip_msg)
+{
+ LLViewerParcelMgr::getInstance()->setHoverParcel( mHoverPick.mPosGlobal );
+ //
+ // Do not show hover for land unless prefs are set to allow it.
+ //
+
+ if (!gSavedSettings.getBOOL("ShowLandHoverTip")) return TRUE;
+
+ // Didn't hit an object, but since we have a land point we
+ // must be hovering over land.
+
+ LLParcel* hover_parcel = LLViewerParcelMgr::getInstance()->getHoverParcel();
+ LLUUID owner;
+ S32 width = 0;
+ S32 height = 0;
+
+ if ( hover_parcel )
{
- LLViewerParcelMgr::getInstance()->setHoverParcel( mHoverPick.mPosGlobal );
+ owner = hover_parcel->getOwnerID();
+ width = S32(LLViewerParcelMgr::getInstance()->getHoverParcelWidth());
+ height = S32(LLViewerParcelMgr::getInstance()->getHoverParcelHeight());
}
-
- std::string tooltip_msg;
- std::string line;
-
- if ( hover_object )
+
+ // Line: "Land"
+ line.clear();
+ line.append(LLTrans::getString("TooltipLand"));
+ if (hover_parcel)
+ {
+ line.append(hover_parcel->getName());
+ }
+ tooltip_msg.append(line);
+ tooltip_msg.push_back('\n');
+
+ // Line: "Owner: James Linden"
+ line.clear();
+ line.append(LLTrans::getString("TooltipOwner") + " ");
+
+ if ( hover_parcel )
{
- if ( hover_object->isHUDAttachment() )
+ std::string name;
+ if (LLUUID::null == owner)
{
- // no hover tips for HUD elements, since they can obscure
- // what the HUD is displaying
- return TRUE;
+ line.append(LLTrans::getString("TooltipPublic"));
}
-
- if ( hover_object->isAttachment() )
+ else if (hover_parcel->getIsGroupOwned())
{
- // get root of attachment then parent, which is avatar
- LLViewerObject* root_edit = hover_object->getRootEdit();
- if (!root_edit)
+ if (gCacheName->getGroupName(owner, name))
{
- // Strange parenting issue, don't show any text
- return TRUE;
+ line.append(name);
+ line.append(LLTrans::getString("TooltipIsGroup"));
}
- hover_object = (LLViewerObject*)root_edit->getParent();
- if (!hover_object)
+ else
{
- // another strange parenting issue, bail out
- return TRUE;
+ line.append(LLTrans::getString("RetrievingData"));
}
}
-
- line.clear();
- if (hover_object->isAvatar())
+ else if(gCacheName->getFullName(owner, name))
{
- // only show tooltip if same inspector not already open
- LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_avatar");
- if (!existing_inspector
- || !existing_inspector->getVisible()
- || existing_inspector->getKey()["avatar_id"].asUUID() != hover_object->getID())
- {
- std::string avatar_name;
- LLNameValue* firstname = hover_object->getNVPair("FirstName");
- LLNameValue* lastname = hover_object->getNVPair("LastName");
- if (firstname && lastname)
- {
- avatar_name = llformat("%s %s", firstname->getString(), lastname->getString());
- }
- else
- {
- avatar_name = LLTrans::getString("TooltipPerson");
- }
-
- // *HACK: We may select this object, so pretend it was clicked
- mPick = mHoverPick;
- LLInspector::Params p;
- p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
- p.message(avatar_name);
- p.image.name("Inspector_I");
- p.click_callback(boost::bind(showAvatarInspector, hover_object->getID()));
- p.visible_time_near(6.f);
- p.visible_time_far(3.f);
- p.delay_time(0.35f);
- p.wrap(false);
-
- LLToolTipMgr::instance().show(p);
- }
+ line.append(name);
}
else
{
- //
- // We have hit a regular object (not an avatar or attachment)
- //
-
- //
- // Default prefs will suppress display unless the object is interactive
- //
- bool show_all_object_tips =
- (bool)gSavedSettings.getBOOL("ShowAllObjectHoverTip");
- LLSelectNode *nodep = LLSelectMgr::getInstance()->getHoverNode();
-
- // only show tooltip if same inspector not already open
- LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_object");
- if (nodep &&
- (!existing_inspector
- || !existing_inspector->getVisible()
- || existing_inspector->getKey()["object_id"].asUUID() != hover_object->getID()))
- {
- if (nodep->mName.empty())
- {
- tooltip_msg.append(LLTrans::getString("TooltipNoName"));
- }
- else
- {
- tooltip_msg.append( nodep->mName );
- }
-
- bool is_time_based_media = false;
- bool is_web_based_media = false;
- bool is_media_playing = false;
-
- // Does this face have media?
- const LLTextureEntry* tep = hover_object->getTE(mHoverPick.mObjectFace);
-
- if(tep)
- {
- const LLMediaEntry* mep = tep->hasMedia() ? tep->getMediaData() : NULL;
- if (mep)
- {
- viewer_media_t media_impl = mep ? LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()) : NULL;
- LLPluginClassMedia* media_plugin = NULL;
-
- if (media_impl.notNull() && (media_impl->hasMedia()))
- {
- LLStringUtil::format_map_t args;
-
- media_plugin = media_impl->getMediaPlugin();
- if(media_plugin)
- { if(media_plugin->pluginSupportsMediaTime())
- {
- is_time_based_media = true;
- is_web_based_media = false;
- //args["[CurrentURL]"] = media_impl->getMediaURL();
- is_media_playing = media_impl->isMediaPlaying();
- }
- else
- {
- is_time_based_media = false;
- is_web_based_media = true;
- //args["[CurrentURL]"] = media_plugin->getLocation();
- }
- //tooltip_msg.append(LLTrans::getString("CurrentURL", args));
- }
- }
- }
- }
-
- // also check the primary node since sometimes it can have an action even though
- // the root node doesn't
- bool needs_tip = needs_tooltip(nodep) ||
- needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode());
-
- if (show_all_object_tips || needs_tip)
- {
- // We may select this object, so pretend it was clicked
- mPick = mHoverPick;
- LLInspector::Params p;
- p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
- p.message(tooltip_msg);
- p.image.name("Inspector_I");
- p.click_callback(boost::bind(showObjectInspector, hover_object->getID(), mHoverPick.mObjectFace));
- p.time_based_media(is_time_based_media);
- p.web_based_media(is_web_based_media);
- p.media_playing(is_media_playing);
- p.click_playmedia_callback(boost::bind(playCurrentMedia, mHoverPick));
- p.click_homepage_callback(boost::bind(VisitHomePage, mHoverPick));
- p.visible_time_near(6.f);
- p.visible_time_far(3.f);
- p.delay_time(0.35f);
- p.wrap(false);
-
- LLToolTipMgr::instance().show(p);
- }
- }
+ line.append(LLTrans::getString("RetrievingData"));
}
}
- else if ( mHoverPick.mPickType == LLPickInfo::PICK_LAND )
+ else
{
- //
- // Do not show hover for land unless prefs are set to allow it.
- //
+ line.append(LLTrans::getString("RetrievingData"));
+ }
+ tooltip_msg.append(line);
+ tooltip_msg.push_back('\n');
+
+ // Line: "no fly, not safe, no build"
+
+ // Don't display properties for your land. This is just
+ // confusing, because you can do anything on your own land.
+ if ( hover_parcel && owner != gAgent.getID() )
+ {
+ S32 words = 0;
- if (!gSavedSettings.getBOOL("ShowLandHoverTip")) return TRUE;
-
- // Didn't hit an object, but since we have a land point we
- // must be hovering over land.
-
- LLParcel* hover_parcel = LLViewerParcelMgr::getInstance()->getHoverParcel();
- LLUUID owner;
- S32 width = 0;
- S32 height = 0;
-
- if ( hover_parcel )
- {
- owner = hover_parcel->getOwnerID();
- width = S32(LLViewerParcelMgr::getInstance()->getHoverParcelWidth());
- height = S32(LLViewerParcelMgr::getInstance()->getHoverParcelHeight());
- }
-
- // Line: "Land"
- line.clear();
- line.append(LLTrans::getString("TooltipLand"));
- if (hover_parcel)
- {
- line.append(hover_parcel->getName());
- }
- tooltip_msg.append(line);
- tooltip_msg.push_back('\n');
-
- // Line: "Owner: James Linden"
line.clear();
- line.append(LLTrans::getString("TooltipOwner") + " ");
-
- if ( hover_parcel )
+ // JC - Keep this in the same order as the checkboxes
+ // on the land info panel
+ if ( !hover_parcel->getAllowModify() )
{
- std::string name;
- if (LLUUID::null == owner)
+ if ( hover_parcel->getAllowGroupModify() )
{
- line.append(LLTrans::getString("TooltipPublic"));
+ line.append(LLTrans::getString("TooltipFlagGroupBuild"));
}
- else if (hover_parcel->getIsGroupOwned())
+ else
{
- if (gCacheName->getGroupName(owner, name))
- {
- line.append(name);
- line.append(LLTrans::getString("TooltipIsGroup"));
- }
- else
- {
- line.append(LLTrans::getString("RetrievingData"));
- }
+ line.append(LLTrans::getString("TooltipFlagNoBuild"));
}
- else if(gCacheName->getFullName(owner, name))
+ words++;
+ }
+
+ if ( !hover_parcel->getAllowTerraform() )
+ {
+ if (words) line.append(", ");
+ line.append(LLTrans::getString("TooltipFlagNoEdit"));
+ words++;
+ }
+
+ if ( hover_parcel->getAllowDamage() )
+ {
+ if (words) line.append(", ");
+ line.append(LLTrans::getString("TooltipFlagNotSafe"));
+ words++;
+ }
+
+ // Maybe we should reflect the estate's block fly bit here as well? DK 12/1/04
+ if ( !hover_parcel->getAllowFly() )
+ {
+ if (words) line.append(", ");
+ line.append(LLTrans::getString("TooltipFlagNoFly"));
+ words++;
+ }
+
+ if ( !hover_parcel->getAllowOtherScripts() )
+ {
+ if (words) line.append(", ");
+ if ( hover_parcel->getAllowGroupScripts() )
{
- line.append(name);
+ line.append(LLTrans::getString("TooltipFlagGroupScripts"));
}
else
{
- line.append(LLTrans::getString("RetrievingData"));
+ line.append(LLTrans::getString("TooltipFlagNoScripts"));
}
+
+ words++;
}
- else
+
+ if (words)
{
- line.append(LLTrans::getString("RetrievingData"));
+ tooltip_msg.append(line);
+ tooltip_msg.push_back('\n');
}
+ }
+
+ if (hover_parcel && hover_parcel->getParcelFlag(PF_FOR_SALE))
+ {
+ LLStringUtil::format_map_t args;
+ args["[AMOUNT]"] = llformat("%d", hover_parcel->getSalePrice());
+ line = LLTrans::getString("TooltipForSaleL$", args);
tooltip_msg.append(line);
tooltip_msg.push_back('\n');
+ }
+
+ // trim last newlines
+ if (!tooltip_msg.empty())
+ {
+ tooltip_msg.erase(tooltip_msg.size() - 1);
+ LLToolTipMgr::instance().show(tooltip_msg);
+ }
+
+ return TRUE;
+}
- // Line: "no fly, not safe, no build"
-
- // Don't display properties for your land. This is just
- // confusing, because you can do anything on your own land.
- if ( hover_parcel && owner != gAgent.getID() )
+BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string line, std::string tooltip_msg)
+{
+ if ( hover_object->isHUDAttachment() )
+ {
+ // no hover tips for HUD elements, since they can obscure
+ // what the HUD is displaying
+ return TRUE;
+ }
+
+ if ( hover_object->isAttachment() )
+ {
+ // get root of attachment then parent, which is avatar
+ LLViewerObject* root_edit = hover_object->getRootEdit();
+ if (!root_edit)
{
- S32 words = 0;
-
- line.clear();
- // JC - Keep this in the same order as the checkboxes
- // on the land info panel
- if ( !hover_parcel->getAllowModify() )
+ // Strange parenting issue, don't show any text
+ return TRUE;
+ }
+ hover_object = (LLViewerObject*)root_edit->getParent();
+ if (!hover_object)
+ {
+ // another strange parenting issue, bail out
+ return TRUE;
+ }
+ }
+
+ line.clear();
+ if (hover_object->isAvatar())
+ {
+ // only show tooltip if same inspector not already open
+ LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_avatar");
+ if (!existing_inspector
+ || !existing_inspector->getVisible()
+ || existing_inspector->getKey()["avatar_id"].asUUID() != hover_object->getID())
+ {
+ std::string avatar_name;
+ LLNameValue* firstname = hover_object->getNVPair("FirstName");
+ LLNameValue* lastname = hover_object->getNVPair("LastName");
+ if (firstname && lastname)
{
- if ( hover_parcel->getAllowGroupModify() )
- {
- line.append(LLTrans::getString("TooltipFlagGroupBuild"));
- }
- else
- {
- line.append(LLTrans::getString("TooltipFlagNoBuild"));
- }
- words++;
+ avatar_name = llformat("%s %s", firstname->getString(), lastname->getString());
}
-
- if ( !hover_parcel->getAllowTerraform() )
+ else
{
- if (words) line.append(", ");
- line.append(LLTrans::getString("TooltipFlagNoEdit"));
- words++;
+ avatar_name = LLTrans::getString("TooltipPerson");
}
-
- if ( hover_parcel->getAllowDamage() )
+
+ // *HACK: We may select this object, so pretend it was clicked
+ mPick = mHoverPick;
+ LLInspector::Params p;
+ p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
+ p.message(avatar_name);
+ p.image.name("Inspector_I");
+ p.click_callback(boost::bind(showAvatarInspector, hover_object->getID()));
+ p.visible_time_near(6.f);
+ p.visible_time_far(3.f);
+ p.delay_time(0.35f);
+ p.wrap(false);
+
+ LLToolTipMgr::instance().show(p);
+ }
+ }
+ else
+ {
+ //
+ // We have hit a regular object (not an avatar or attachment)
+ //
+
+ //
+ // Default prefs will suppress display unless the object is interactive
+ //
+ bool show_all_object_tips =
+ (bool)gSavedSettings.getBOOL("ShowAllObjectHoverTip");
+ LLSelectNode *nodep = LLSelectMgr::getInstance()->getHoverNode();
+
+ // only show tooltip if same inspector not already open
+ LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_object");
+ if (nodep &&
+ (!existing_inspector
+ || !existing_inspector->getVisible()
+ || existing_inspector->getKey()["object_id"].asUUID() != hover_object->getID()))
+ {
+ if (nodep->mName.empty())
{
- if (words) line.append(", ");
- line.append(LLTrans::getString("TooltipFlagNotSafe"));
- words++;
+ tooltip_msg.append(LLTrans::getString("TooltipNoName"));
}
-
- // Maybe we should reflect the estate's block fly bit here as well? DK 12/1/04
- if ( !hover_parcel->getAllowFly() )
+ else
{
- if (words) line.append(", ");
- line.append(LLTrans::getString("TooltipFlagNoFly"));
- words++;
+ tooltip_msg.append( nodep->mName );
}
-
- if ( !hover_parcel->getAllowOtherScripts() )
+
+ bool is_time_based_media = false;
+ bool is_web_based_media = false;
+ bool is_media_playing = false;
+
+ // Does this face have media?
+ const LLTextureEntry* tep = hover_object->getTE(mHoverPick.mObjectFace);
+
+ if(tep)
{
- if (words) line.append(", ");
- if ( hover_parcel->getAllowGroupScripts() )
+ const LLMediaEntry* mep = tep->hasMedia() ? tep->getMediaData() : NULL;
+ if (mep)
{
- line.append(LLTrans::getString("TooltipFlagGroupScripts"));
- }
- else
- {
- line.append(LLTrans::getString("TooltipFlagNoScripts"));
+ viewer_media_t media_impl = mep ? LLViewerMedia::getMediaImplFromTextureID(mep->getMediaID()) : NULL;
+ LLPluginClassMedia* media_plugin = NULL;
+
+ if (media_impl.notNull() && (media_impl->hasMedia()))
+ {
+ LLStringUtil::format_map_t args;
+
+ media_plugin = media_impl->getMediaPlugin();
+ if(media_plugin)
+ { if(media_plugin->pluginSupportsMediaTime())
+ {
+ is_time_based_media = true;
+ is_web_based_media = false;
+ //args["[CurrentURL]"] = media_impl->getMediaURL();
+ is_media_playing = media_impl->isMediaPlaying();
+ }
+ else
+ {
+ is_time_based_media = false;
+ is_web_based_media = true;
+ //args["[CurrentURL]"] = media_plugin->getLocation();
+ }
+ //tooltip_msg.append(LLTrans::getString("CurrentURL", args));
+ }
+ }
}
-
- words++;
}
-
- if (words)
+
+ // also check the primary node since sometimes it can have an action even though
+ // the root node doesn't
+ bool needs_tip = needs_tooltip(nodep) ||
+ needs_tooltip(LLSelectMgr::getInstance()->getPrimaryHoverNode());
+
+ if (show_all_object_tips || needs_tip)
{
- tooltip_msg.append(line);
- tooltip_msg.push_back('\n');
+ // We may select this object, so pretend it was clicked
+ mPick = mHoverPick;
+ LLInspector::Params p;
+ p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
+ p.message(tooltip_msg);
+ p.image.name("Inspector_I");
+ p.click_callback(boost::bind(showObjectInspector, hover_object->getID(), mHoverPick.mObjectFace));
+ p.time_based_media(is_time_based_media);
+ p.web_based_media(is_web_based_media);
+ p.media_playing(is_media_playing);
+ p.click_playmedia_callback(boost::bind(playCurrentMedia, mHoverPick));
+ p.click_homepage_callback(boost::bind(VisitHomePage, mHoverPick));
+ p.visible_time_near(6.f);
+ p.visible_time_far(3.f);
+ p.delay_time(0.35f);
+ p.wrap(false);
+
+ LLToolTipMgr::instance().show(p);
}
}
+ }
+
+ return TRUE;
+}
- if (hover_parcel && hover_parcel->getParcelFlag(PF_FOR_SALE))
- {
- LLStringUtil::format_map_t args;
- args["[AMOUNT]"] = llformat("%d", hover_parcel->getSalePrice());
- line = LLTrans::getString("TooltipForSaleL$", args);
- tooltip_msg.append(line);
- tooltip_msg.push_back('\n');
- }
+BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
+{
+ if (!LLUI::sSettingGroups["config"]->getBOOL("ShowHoverTips")) return TRUE;
+ if (!mHoverPick.isValid()) return TRUE;
- // trim last newlines
- if (!tooltip_msg.empty())
- {
- tooltip_msg.erase(tooltip_msg.size() - 1);
- LLToolTipMgr::instance().show(tooltip_msg);
- }
- }
+ LLViewerObject* hover_object = mHoverPick.getObject();
+
+ // update hover object and hover parcel
+ LLSelectMgr::getInstance()->setHoverObject(hover_object, mHoverPick.mObjectFace);
+
+
+ std::string tooltip_msg;
+ std::string line;
+ if ( hover_object )
+ {
+ handleTooltipObject(hover_object, line, tooltip_msg );
+ }
+ else if (mHoverPick.mPickType == LLPickInfo::PICK_LAND)
+ {
+ handleTooltipLand(line, tooltip_msg);
+ }
return TRUE;
}
diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h
index 5f0e28fa95..8a4c949aef 100644
--- a/indra/newview/lltoolpie.h
+++ b/indra/newview/lltoolpie.h
@@ -89,7 +89,9 @@ private:
bool handleMediaClick(const LLPickInfo& info);
bool handleMediaHover(const LLPickInfo& info);
- bool handleMediaMouseUp();
+ bool handleMediaMouseUp();
+ BOOL handleTooltipLand(std::string line, std::string tooltip_msg);
+ BOOL handleTooltipObject( LLViewerObject* hover_object, std::string line, std::string tooltip_msg);
private:
BOOL mGrabMouseButtonDown;
diff --git a/indra/newview/lltransientdockablefloater.cpp b/indra/newview/lltransientdockablefloater.cpp
index c9bfe178ce..9d39aa5182 100644
--- a/indra/newview/lltransientdockablefloater.cpp
+++ b/indra/newview/lltransientdockablefloater.cpp
@@ -48,6 +48,14 @@ LLTransientDockableFloater::LLTransientDockableFloater(LLDockControl* dockContro
LLTransientDockableFloater::~LLTransientDockableFloater()
{
LLTransientFloaterMgr::getInstance()->unregisterTransientFloater(this);
+ LLView* dock = getDockWidget();
+ LLTransientFloaterMgr::getInstance()->removeControlView(
+ LLTransientFloaterMgr::DOCKED, this);
+ if (dock != NULL)
+ {
+ LLTransientFloaterMgr::getInstance()->removeControlView(
+ LLTransientFloaterMgr::DOCKED, dock);
+ }
}
void LLTransientDockableFloater::setVisible(BOOL visible)
@@ -55,18 +63,18 @@ void LLTransientDockableFloater::setVisible(BOOL visible)
LLView* dock = getDockWidget();
if(visible && isDocked())
{
- LLTransientFloaterMgr::getInstance()->addControlView(this);
+ LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::DOCKED, this);
if (dock != NULL)
{
- LLTransientFloaterMgr::getInstance()->addControlView(dock);
+ LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::DOCKED, dock);
}
}
else
{
- LLTransientFloaterMgr::getInstance()->removeControlView(this);
+ LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::DOCKED, this);
if (dock != NULL)
{
- LLTransientFloaterMgr::getInstance()->removeControlView(dock);
+ LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::DOCKED, dock);
}
}
@@ -78,18 +86,18 @@ void LLTransientDockableFloater::setDocked(bool docked, bool pop_on_undock)
LLView* dock = getDockWidget();
if(docked)
{
- LLTransientFloaterMgr::getInstance()->addControlView(this);
+ LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::DOCKED, this);
if (dock != NULL)
{
- LLTransientFloaterMgr::getInstance()->addControlView(dock);
+ LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::DOCKED, dock);
}
}
else
{
- LLTransientFloaterMgr::getInstance()->removeControlView(this);
+ LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::DOCKED, this);
if (dock != NULL)
{
- LLTransientFloaterMgr::getInstance()->removeControlView(dock);
+ LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::DOCKED, dock);
}
}
diff --git a/indra/newview/lltransientfloatermgr.cpp b/indra/newview/lltransientfloatermgr.cpp
index 8f1a738453..d82403070b 100644
--- a/indra/newview/lltransientfloatermgr.cpp
+++ b/indra/newview/lltransientfloatermgr.cpp
@@ -46,6 +46,7 @@ LLTransientFloaterMgr::LLTransientFloaterMgr()
&LLTransientFloaterMgr::leftMouseClickCallback, this, _1, _2, _3));
mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(GLOBAL, std::set<LLView*>()));
+ mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(DOCKED, std::set<LLView*>()));
mGroupControls.insert(std::pair<ETransientGroup, std::set<LLView*> >(IM, std::set<LLView*>()));
}
@@ -132,7 +133,8 @@ void LLTransientFloaterMgr::leftMouseClickCallback(S32 x, S32 y,
return;
}
- bool hide = isControlClicked(mGroupControls.find(GLOBAL)->second, x, y);
+ bool hide = isControlClicked(mGroupControls.find(DOCKED)->second, x, y)
+ && isControlClicked(mGroupControls.find(GLOBAL)->second, x, y);
if (hide)
{
hideTransientFloaters(x, y);
diff --git a/indra/newview/lltransientfloatermgr.h b/indra/newview/lltransientfloatermgr.h
index 1f99325a7f..9c5ae295f2 100644
--- a/indra/newview/lltransientfloatermgr.h
+++ b/indra/newview/lltransientfloatermgr.h
@@ -51,7 +51,7 @@ protected:
public:
enum ETransientGroup
{
- GLOBAL, IM
+ GLOBAL, DOCKED, IM
};
void registerTransientFloater(LLTransientFloater* floater);
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 6262bca432..455b572537 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -6099,7 +6099,8 @@ class LLAttachmentEnableDrop : public view_listener_t
LLViewerJointAttachment* attachment = NULL;
LLInventoryItem* item = NULL;
- if (object)
+ // Do not enable drop if all faces of object are not enabled
+ if (object && LLSelectMgr::getInstance()->getSelection()->contains(object,SELECT_ALL_TES ))
{
S32 attachmentID = ATTACHMENT_ID_FROM_STATE(object->getState());
attachment = get_if_there(gAgent.getAvatarObject()->mAttachmentPoints, attachmentID, (LLViewerJointAttachment*)NULL);
@@ -6141,8 +6142,14 @@ class LLAttachmentEnableDrop : public view_listener_t
BOOL enable_detach(const LLSD&)
{
LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
- if (!object) return FALSE;
- if (!object->isAttachment()) return FALSE;
+
+ // Only enable detach if all faces of object are selected
+ if (!object ||
+ !object->isAttachment() ||
+ !LLSelectMgr::getInstance()->getSelection()->contains(object,SELECT_ALL_TES ))
+ {
+ return FALSE;
+ }
// Find the avatar who owns this attachment
LLViewerObject* avatar = object;
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 7ccd484bfa..4e8cac0f62 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -38,6 +38,8 @@
#include "llviewernetwork.h"
#include "llhttpnode.h"
#include "llnotificationsutil.h"
+#include "llsdserialize.h"
+#include "llui.h"
const F32 LLVoiceClient::OVERDRIVEN_POWER_LEVEL = 0.7f;
@@ -779,6 +781,80 @@ class LLViewerParcelVoiceInfo : public LLHTTPNode
}
};
+
+const std::string LLSpeakerVolumeStorage::SETTINGS_FILE_NAME = "volume_settings.xml";
+
+LLSpeakerVolumeStorage::LLSpeakerVolumeStorage()
+{
+ load();
+}
+
+LLSpeakerVolumeStorage::~LLSpeakerVolumeStorage()
+{
+ save();
+}
+
+void LLSpeakerVolumeStorage::storeSpeakerVolume(const LLUUID& speaker_id, S32 volume)
+{
+ mSpeakersData[speaker_id] = volume;
+}
+
+S32 LLSpeakerVolumeStorage::getSpeakerVolume(const LLUUID& speaker_id)
+{
+ // default internal level of user voice.
+ const static LLUICachedControl<S32> DEFAULT_INTERNAL_VOLUME_LEVEL("VoiceDefaultInternalLevel", 100);
+ S32 ret_val = DEFAULT_INTERNAL_VOLUME_LEVEL;
+ speaker_data_map_t::const_iterator it = mSpeakersData.find(speaker_id);
+
+ if (it != mSpeakersData.end())
+ {
+ ret_val = it->second;
+ }
+ return ret_val;
+}
+
+void LLSpeakerVolumeStorage::load()
+{
+ // load per-resident voice volume information
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SETTINGS_FILE_NAME);
+
+ LLSD settings_llsd;
+ llifstream file;
+ file.open(filename);
+ if (file.is_open())
+ {
+ LLSDSerialize::fromXML(settings_llsd, file);
+ }
+
+ for (LLSD::map_const_iterator iter = settings_llsd.beginMap();
+ iter != settings_llsd.endMap(); ++iter)
+ {
+ mSpeakersData.insert(std::make_pair(LLUUID(iter->first), (S32)iter->second.asInteger()));
+ }
+}
+
+void LLSpeakerVolumeStorage::save()
+{
+ // If we quit from the login screen we will not have an SL account
+ // name. Don't try to save, otherwise we'll dump a file in
+ // C:\Program Files\SecondLife\ or similar. JC
+ std::string user_dir = gDirUtilp->getLindenUserDir();
+ if (!user_dir.empty())
+ {
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SETTINGS_FILE_NAME);
+ LLSD settings_llsd;
+
+ for(speaker_data_map_t::const_iterator iter = mSpeakersData.begin(); iter != mSpeakersData.end(); ++iter)
+ {
+ settings_llsd[iter->first.asString()] = iter->second;
+ }
+
+ llofstream file;
+ file.open(filename);
+ LLSDSerialize::toPrettyXML(settings_llsd, file);
+ }
+}
+
BOOL LLViewerRequiredVoiceVersion::sAlertedUser = FALSE;
LLHTTPRegistration<LLViewerParcelVoiceInfo>
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index dce24ff541..60f2b74d11 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -403,6 +403,48 @@ protected:
LLPumpIO *m_servicePump;
};
+/**
+ * Speaker volume storage helper class
+ **/
+
+class LLSpeakerVolumeStorage : public LLSingleton<LLSpeakerVolumeStorage>
+{
+ LOG_CLASS(LLSpeakerVolumeStorage);
+public:
+
+ /**
+ * Sets internal voluem level for specified user.
+ *
+ * @param[in] speaker_id - LLUUID of user to store volume level for
+ * @param[in] volume - internal volume level to be stored for user.
+ */
+ void storeSpeakerVolume(const LLUUID& speaker_id, S32 volume);
+
+ /**
+ * Gets stored internal volume level for specified speaker.
+ *
+ * If specified user is not found default level will be returned. It is equivalent of
+ * external level 0.5 from the 0.0..1.0 range.
+ * Default internal level is calculated as: internal = 400 * external^2
+ * Maps 0.0 to 1.0 to internal values 0-400 with default 0.5 == 100
+ *
+ * @param[in] speaker_id - LLUUID of user to get his volume level
+ */
+ S32 getSpeakerVolume(const LLUUID& speaker_id);
+
+private:
+ friend class LLSingleton<LLSpeakerVolumeStorage>;
+ LLSpeakerVolumeStorage();
+ ~LLSpeakerVolumeStorage();
+
+ const static std::string SETTINGS_FILE_NAME;
+
+ void load();
+ void save();
+
+ typedef std::map<LLUUID, S32> speaker_data_map_t;
+ speaker_data_map_t mSpeakersData;
+};
#endif //LL_VOICE_CLIENT_H
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 5fa522a6b5..232171cab6 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -4110,6 +4110,8 @@ LLVivoxVoiceClient::participantState *LLVivoxVoiceClient::sessionState::addParti
}
mParticipantsByUUID.insert(participantUUIDMap::value_type(result->mAvatarID, result));
+
+ result->mUserVolume = LLSpeakerVolumeStorage::getInstance()->getSpeakerVolume(result->mAvatarID);
LL_DEBUGS("Voice") << "participant \"" << result->mURI << "\" added." << LL_ENDL;
}
@@ -5363,6 +5365,9 @@ void LLVivoxVoiceClient::setUserVolume(const LLUUID& id, F32 volume)
participant->mUserVolume = llclamp(ivol, 0, 400);
participant->mVolumeDirty = TRUE;
mAudioSession->mVolumeDirty = TRUE;
+
+ // store this volume setting for future sessions
+ LLSpeakerVolumeStorage::getInstance()->storeSpeakerVolume(id, participant->mUserVolume);
}
}
}
diff --git a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
index 661d1c5611..6cb33efb93 100644
--- a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
+++ b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
index f927fd3989..6cb33efb93 100644
--- a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
+++ b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png
Binary files differ
diff --git a/indra/newview/skins/default/xui/da/floater_about.xml b/indra/newview/skins/default/xui/da/floater_about.xml
index faa24b5877..eb63b5c975 100644
--- a/indra/newview/skins/default/xui/da/floater_about.xml
+++ b/indra/newview/skins/default/xui/da/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="OM [APP_NAME]">
+<floater name="floater_about" title="OM [CAPITALIZED_APP_NAME]">
<floater.string name="AboutHeader">
[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index 664c6e3072..0beb54032f 100644
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="INFO ÜBER [APP_NAME]">
+<floater name="floater_about" title="INFO ÜBER [CAPITALIZED_APP_NAME]">
<floater.string name="AboutHeader">
[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
diff --git a/indra/newview/skins/default/xui/de/panel_edit_profile.xml b/indra/newview/skins/default/xui/de/panel_edit_profile.xml
index 1c53ca64dd..811ca118d6 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_profile.xml
@@ -39,7 +39,7 @@
<line_editor name="homepage_edit" value="http://"/>
<check_box label="In Suchergebnissen anzeigen" name="show_in_search_checkbox"/>
<text name="title_acc_status_text" value="Mein Konto:"/>
- <text name="my_account_link" value="Meine Startseite aufrufen"/>
+ <text name="my_account_link" value="[[URL] Meine Startseite aufrufen]"/>
<text name="acc_status_text" value="Einwohner. Keine Zahlungsinfo archiviert."/>
<text name="title_partner_text" value="Mein Partner:"/>
<text name="partner_edit_link" value="[[URL] bearbeiten]"/>
diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml
index ddc0d9af72..b048eeceb6 100644
--- a/indra/newview/skins/default/xui/en/floater_customize.xml
+++ b/indra/newview/skins/default/xui/en/floater_customize.xml
@@ -3,7 +3,7 @@
legacy_header_height="18"
can_minimize="false"
follows="left|top"
- height="607"
+ height="583"
layout="topleft"
left_delta="-3"
name="floater customize"
@@ -20,7 +20,7 @@
tab_min_width="96"
tab_position="left"
tab_height="50"
- top="50"
+ top="26"
width="506">
<text
type="string"
@@ -184,7 +184,6 @@
layout="topleft"
name="radio2"
value="1"
- top="32"
width="82" />
</radio_group>
<text
@@ -270,9 +269,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -473,9 +472,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -723,9 +722,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -798,16 +797,16 @@
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Eyes"
layout="topleft"
- left_delta="0"
name="Eyes"
help_topic="customize_eyes_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
follows="top|right"
height="18"
@@ -820,10 +819,10 @@
width="18" />
<icon
height="16"
+ top="10"
+ left="10"
layout="topleft"
- left_delta="-325"
mouse_opaque="true"
- top_delta="3"
width="16" />
<text
type="string"
@@ -832,9 +831,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -845,9 +844,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -858,9 +857,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -871,21 +870,21 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
<text
type="string"
length="1"
- follows="left|top|right"
- height="14"
+ follows="left|top"
+ height="16"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -895,9 +894,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on a new set of eyes by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
@@ -908,9 +907,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -918,14 +917,14 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Eyes:
</text>
@@ -933,23 +932,22 @@
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Iris"
layout="topleft"
- left="8"
+ left="10"
name="Iris"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<button
follows="left|top"
height="23"
label="Create New Eyes"
label_selected="Create New Eyes"
layout="topleft"
- left_delta="0"
name="Create New"
- top_delta="39"
+ top="66"
width="160" />
<button
follows="right|bottom"
@@ -957,9 +955,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -967,9 +965,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -977,9 +975,9 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<text
@@ -997,85 +995,83 @@
</text>
<placeholder />
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Shirt"
layout="topleft"
- left_delta="0"
name="Shirt"
help_topic="customize_shirt_tab"
top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
+ top="10"
+ left="10"
layout="topleft"
- left="8"
mouse_opaque="true"
- top_delta="3"
width="16" />
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Fabric"
layout="topleft"
- left_delta="0"
+ left="10"
name="Fabric"
tool_tip="Click to choose a picture"
- top_pad="41"
- width="64" />
+ top="66"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Shirt"
- label_selected="Create New Shirt"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-41"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="102"
+ top_pad="4"
width="82" />
<button
+ follows="left|top"
+ height="23"
+ label="Create New Shirt"
+ label_selected="Create New Shirt"
+ layout="topleft"
+ name="Create New"
+ top="66"
+ width="160" />
+ <button
follows="right|bottom"
height="23"
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -1083,9 +1079,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -1093,9 +1089,9 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
<text
type="string"
@@ -1104,9 +1100,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left="8"
+ left="31"
name="title"
- top="8"
+ top="10"
width="355">
[DESC]
</text>
@@ -1117,9 +1113,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -1130,9 +1126,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -1143,21 +1139,21 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
<text
type="string"
length="1"
- follows="left|top|right"
- height="14"
+ follows="left|top"
+ height="16"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -1167,9 +1163,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on a new shirt by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
@@ -1180,9 +1176,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -1190,98 +1186,95 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Shirt:
</text>
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Pants"
layout="topleft"
- left_delta="0"
name="Pants"
help_topic="customize_pants_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left="8"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Fabric"
layout="topleft"
- left_delta="0"
+ left="10"
name="Fabric"
tool_tip="Click to choose a picture"
- top_pad="41"
- width="64" />
+ top="66"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Pants"
- label_selected="Create New Pants"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-41"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="102"
+ top_pad="4"
width="82" />
<button
+ follows="left|top"
+ height="23"
+ label="Create New Pants"
+ label_selected="Create New Pants"
+ layout="topleft"
+ name="Create New"
+ top="66"
+ width="160" />
+ <button
follows="right|bottom"
height="23"
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -1289,9 +1282,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -1299,9 +1292,9 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
<text
type="string"
@@ -1310,9 +1303,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left="8"
+ left="31"
name="title"
- top="8"
+ top="10"
width="355">
[DESC]
</text>
@@ -1323,9 +1316,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -1336,9 +1329,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -1349,9 +1342,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -1361,9 +1354,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -1373,9 +1366,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on new pants by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
@@ -1386,9 +1379,9 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -1396,45 +1389,45 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Pants:
</text>
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Shoes"
layout="topleft"
- left_delta="0"
name="Shoes"
help_topic="customize_shoes_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -1443,9 +1436,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -1456,9 +1449,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -1469,9 +1462,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -1482,9 +1475,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -1494,9 +1487,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -1506,22 +1499,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on a new pair of shoes by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Shoes"
+ label_selected="Create New Shoes"
+ layout="topleft"
+ name="Create New"
+ top_pad="18"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -1529,14 +1531,14 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Shoes:
</text>
@@ -1544,44 +1546,32 @@
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Fabric"
layout="topleft"
- left="8"
+ left="10"
name="Fabric"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Shoes"
- label_selected="Create New Shoes"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-41"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="102"
+ top_pad="4"
width="82" />
<button
follows="right|bottom"
@@ -1589,9 +1579,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -1599,9 +1589,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -1609,38 +1599,38 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Socks"
layout="topleft"
- left_delta="0"
name="Socks"
help_topic="customize_socks_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -1649,9 +1639,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -1662,9 +1652,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -1675,9 +1665,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -1688,9 +1678,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -1700,9 +1690,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -1712,22 +1702,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on new socks by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Socks"
+ label_selected="Create New Socks"
+ layout="topleft"
+ name="Create New"
+ top_pad="7"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -1735,14 +1734,14 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Socks:
</text>
@@ -1750,44 +1749,32 @@
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Fabric"
layout="topleft"
- left="8"
+ left="10"
name="Fabric"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Socks"
- label_selected="Create New Socks"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-41"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="102"
+ top_pad="4"
width="82" />
<button
follows="right|bottom"
@@ -1795,9 +1782,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -1805,9 +1792,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -1815,38 +1802,38 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Jacket"
layout="topleft"
- left_delta="0"
name="Jacket"
help_topic="customize_jacket_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -1855,9 +1842,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -1868,9 +1855,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -1881,9 +1868,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -1894,9 +1881,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -1906,9 +1893,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -1918,22 +1905,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on a new jacket by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Jacket"
+ label_selected="Create New Jacket"
+ layout="topleft"
+ name="Create New"
+ top_pad="7"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -1941,14 +1937,14 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Jacket:
</text>
@@ -1956,56 +1952,43 @@
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Upper Fabric"
layout="topleft"
- left="8"
+ left="10"
name="Upper Fabric"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Lower Fabric"
layout="topleft"
- left_delta="0"
name="Lower Fabric"
tool_tip="Click to choose a picture"
- top_delta="80"
- width="64" />
+ top_delta="102"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Jacket"
- label_selected="Create New Jacket"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-121"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="182"
+ top_pad="4"
width="82" />
<button
follows="right|bottom"
@@ -2013,9 +1996,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2023,9 +2006,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2033,38 +2016,38 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Gloves"
layout="topleft"
- left_delta="0"
name="Gloves"
help_topic="customize_gloves_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -2073,9 +2056,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -2086,9 +2069,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -2099,9 +2082,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -2112,9 +2095,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -2124,9 +2107,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -2136,22 +2119,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on new gloves by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Gloves"
+ label_selected="Create New Gloves"
+ layout="topleft"
+ name="Create New"
+ top_pad="7"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -2159,14 +2151,14 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Gloves:
</text>
@@ -2174,44 +2166,32 @@
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Fabric"
layout="topleft"
- left="8"
+ left="10"
name="Fabric"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Gloves"
- label_selected="Create New Gloves"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-41"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="102"
+ top_pad="4"
width="82" />
<button
follows="right|bottom"
@@ -2219,9 +2199,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2229,9 +2209,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2239,38 +2219,38 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Undershirt"
layout="topleft"
- left_delta="0"
name="Undershirt"
help_topic="customize_undershirt_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -2279,9 +2259,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -2292,9 +2272,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -2305,9 +2285,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -2318,9 +2298,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -2330,9 +2310,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -2342,22 +2322,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on a new undershirt by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Undershirt"
+ label_selected="Create New Undershirt"
+ layout="topleft"
+ name="Create New"
+ top_pad="7"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -2365,14 +2354,14 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Undershirt:
</text>
@@ -2380,44 +2369,32 @@
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Fabric"
layout="topleft"
- left="8"
+ left="10"
name="Fabric"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Undershirt"
- label_selected="Create New Undershirt"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-41"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="102"
+ top_pad="4"
width="82" />
<button
follows="right|bottom"
@@ -2425,9 +2402,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2435,9 +2412,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2445,38 +2422,38 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Underpants"
layout="topleft"
- left_delta="0"
name="Underpants"
help_topic="customize_underpants_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -2485,9 +2462,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -2498,9 +2475,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -2511,9 +2488,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -2524,9 +2501,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -2536,9 +2513,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -2548,22 +2525,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on new underpants by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Underpants"
+ label_selected="Create New Underpants"
+ layout="topleft"
+ name="Create New"
+ top_pad="7"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -2571,14 +2557,14 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Underpants:
</text>
@@ -2586,44 +2572,32 @@
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Fabric"
layout="topleft"
- left="8"
+ left="10"
name="Fabric"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Underpants"
- label_selected="Create New Underpants"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-41"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="102"
+ top_pad="4"
width="82" />
<button
follows="right|bottom"
@@ -2631,9 +2605,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2641,9 +2615,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2651,38 +2625,38 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
+ height="508"
label="Skirt"
layout="topleft"
- left_delta="0"
name="Skirt"
help_topic="customize_skirt_tab"
- top_delta="0"
- width="389">
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -2691,9 +2665,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -2704,9 +2678,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -2717,9 +2691,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -2730,9 +2704,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -2742,9 +2716,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -2754,22 +2728,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
Put on a new skirt by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Skirt"
+ label_selected="Create New Skirt"
+ layout="topleft"
+ name="Create New"
+ top_pad="7"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -2777,14 +2760,14 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="117"
+ right="132"
width="100">
Skirt:
</text>
@@ -2792,44 +2775,32 @@
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
+ height="108"
label="Fabric"
layout="topleft"
- left="8"
+ left="10"
name="Fabric"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
- height="80"
+ height="108"
label="Color/Tint"
layout="topleft"
- left_delta="0"
name="Color/Tint"
tool_tip="Click to open color picker"
- top_delta="80"
- width="64" />
- <button
- follows="left|top"
- height="23"
- label="Create New Skirt"
- label_selected="Create New Skirt"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-41"
- width="160" />
+ top_delta="102"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="0"
name="Take Off"
- top_pad="102"
+ top_pad="4"
width="82" />
<button
follows="right|bottom"
@@ -2837,9 +2808,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left="123"
+ right="218"
name="Save"
- top="458"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2847,9 +2818,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -2857,38 +2828,38 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
- label="Alpha"
+ height="508"
+ label="Tattoo"
layout="topleft"
- left_delta="0"
- name="Alpha"
- help_topic="customize_alpha_tab"
- top_delta="0"
- width="389">
+ name="Tattoo"
+ help_topic="customize_tattoo_tab"
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -2897,9 +2868,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -2910,9 +2881,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -2923,9 +2894,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -2936,9 +2907,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -2948,9 +2919,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -2960,22 +2931,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="-2"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
- Put on a new alpha mask by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
+ Put on a new tattoo by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Tattoo"
+ label_selected="Create New Tattoo"
+ layout="topleft"
+ name="Create New"
+ top_pad="7"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -2983,141 +2963,60 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="119"
+ right="132"
width="100">
- Alpha:
+ Tattoo:
</text>
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
- label="Lower Alpha"
- layout="topleft"
- left="8"
- name="Lower Alpha"
- tool_tip="Click to choose a picture"
- top="65"
- width="64" />
- <check_box
- control_name="LowerAlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left_pad="6"
- name="lower alpha texture invisible"
- top_delta="4"
- width="16" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="80"
- label="Upper Alpha"
- layout="topleft"
- left="8"
- name="Upper Alpha"
- tool_tip="Click to choose a picture"
- top="145"
- width="64" />
- <check_box
- control_name="UpperAlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left_pad="6"
- name="upper alpha texture invisible"
- top_delta="4"
- width="16" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="80"
- label="Head Alpha"
+ height="108"
+ label="Head Tattoo"
layout="topleft"
- left="8"
- name="Head Alpha"
+ left="10"
+ name="Head Tattoo"
tool_tip="Click to choose a picture"
- top="225"
- width="64" />
- <check_box
- control_name="HeadAlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left_pad="6"
- name="head alpha texture invisible"
- top_delta="4"
- width="16" />
+ top="66"
+ width="82" />
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
- label="Eye Alpha"
+ height="108"
+ label="Upper Tattoo"
layout="topleft"
- left="8"
- name="Eye Alpha"
+ name="Upper Tattoo"
tool_tip="Click to choose a picture"
- top="305"
- width="64" />
- <check_box
- control_name="Eye AlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left_pad="6"
- name="eye alpha texture invisible"
- top_delta="4"
- width="16" />
+ left_delta="90"
+ width="82" />
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
- label="Hair Alpha"
+ height="108"
+ label="Lower Tattoo"
layout="topleft"
- left="8"
- name="Hair Alpha"
+ name="Lower Tattoo"
tool_tip="Click to choose a picture"
- top="385"
- width="64" />
- <check_box
- control_name="HairAlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left_pad="6"
- name="hair alpha texture invisible"
- top_delta="4"
- width="16" />
- <button
- follows="left|top"
- height="23"
- label="Create New Alpha"
- label_selected="Create New Alpha"
- layout="topleft"
- left="8"
- name="Create New"
- top="104"
- width="160" />
+ left_delta="90"
+ width="82" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="-4"
name="Take Off"
- top_pad="332"
+ top_pad="4"
+ left="10"
width="82" />
<button
follows="right|bottom"
@@ -3125,9 +3024,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left_pad="37"
+ right="218"
name="Save"
- top_delta="-2"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -3135,9 +3034,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -3145,38 +3044,38 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
<panel
- border="true"
+ border="false"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
follows="left|top|right|bottom"
- height="481"
- label="Tattoo"
+ height="508"
+ label="Alpha"
layout="topleft"
- left_delta="0"
- name="Tattoo"
- help_topic="customize_tattoo_tab"
- top_delta="0"
- width="389">
+ name="Alpha"
+ help_topic="customize_alpha_tab"
+ width="400">
<icon
- follows="top|right"
+ follows="top|left"
height="18"
image_name="Lock"
layout="topleft"
- left="315"
+ left="10"
mouse_opaque="true"
name="square"
- top="4"
+ top="10"
width="18" />
<icon
height="16"
layout="topleft"
- left_delta="-325"
+ left="10"
mouse_opaque="true"
- top_delta="3"
+ top="10"
width="16" />
<text
type="string"
@@ -3185,9 +3084,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_pad="2"
+ left="31"
name="title"
- top_delta="0"
+ top="10"
width="355">
[DESC]
</text>
@@ -3198,9 +3097,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_no_modify"
- top_delta="0"
+ top="10"
width="355">
[DESC]: cannot modify
</text>
@@ -3211,9 +3110,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_loading"
- top_delta="0"
+ top="10"
width="355">
[DESC]: loading...
</text>
@@ -3224,9 +3123,9 @@
font="SansSerif"
height="16"
layout="topleft"
- left_delta="0"
+ left="31"
name="title_not_worn"
- top_delta="0"
+ top="10"
width="355">
[DESC]: not worn
</text>
@@ -3236,9 +3135,9 @@
follows="left|top|right"
height="14"
layout="topleft"
- left="8"
+ left="10"
name="path"
- top="24"
+ top="36"
width="373">
Located in [PATH]
</text>
@@ -3248,22 +3147,31 @@
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="-2"
+ left="10"
name="not worn instructions"
- top_pad="8"
+ top="31"
word_wrap="true"
width="373">
- Put on a new tattoo by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
+ Put on a new alpha mask by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
</text>
+ <button
+ follows="left|top"
+ height="23"
+ label="Create New Alpha"
+ label_selected="Create New Alpha"
+ layout="topleft"
+ name="Create New"
+ top_pad="18"
+ width="160" />
<text
type="string"
length="1"
follows="left|top|right"
height="28"
layout="topleft"
- left_delta="0"
+ left="10"
name="no modify instructions"
- top_delta="0"
+ top="31"
word_wrap="true"
width="373">
You do not have permission to modify this wearable.
@@ -3271,72 +3179,125 @@
<text
type="string"
length="1"
- bottom="486"
- follows="left|top|right"
+ bottom="4"
+ follows="left|bottom|right"
font="SansSerif"
halign="right"
- height="28"
- layout="topleft"
+ height="23"
+ layout="bottomleft"
name="Item Action Label"
- right="119"
+ right="132"
width="100">
- Tattoo:
+ Alpha:
</text>
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
- label="Head Tattoo"
+ height="108"
+ label="Lower Alpha"
layout="topleft"
- left="8"
- name="Head Tattoo"
+ left="10"
+ name="Lower Alpha"
tool_tip="Click to choose a picture"
- top="65"
- width="64" />
+ top="66"
+ width="82" />
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
- label="Upper Tattoo"
+ height="108"
+ label="Upper Alpha"
layout="topleft"
- left_delta="0"
- name="Upper Tattoo"
+ name="Upper Alpha"
tool_tip="Click to choose a picture"
- top_delta="80"
- width="64" />
+ left_delta="90"
+ width="82" />
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
follows="left|top"
- height="80"
- label="Lower Tattoo"
+ height="108"
+ label="Head Alpha"
layout="topleft"
- left_delta="0"
- name="Lower Tattoo"
+ name="Head Alpha"
tool_tip="Click to choose a picture"
- top_delta="80"
- width="64" />
- <button
+ left_delta="90"
+ width="82" />
+ <check_box
+ control_name="LowerAlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left="43"
+ name="lower alpha texture invisible"
+ top_delta="96"
+ width="16" />
+ <check_box
+ control_name="UpperAlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left_pad="72"
+ name="upper alpha texture invisible"
+ width="16" />
+ <check_box
+ control_name="HeadAlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left_pad="72"
+ name="head alpha texture invisible"
+ width="16" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
follows="left|top"
- height="23"
- label="Create New Tattoo"
- label_selected="Create New Tattoo"
+ height="108"
+ label="Eye Alpha"
layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-121"
- width="160" />
+ name="Eye Alpha"
+ tool_tip="Click to choose a picture"
+ left="10"
+ top_pad="20"
+ width="82" />
+ <texture_picker
+ can_apply_immediately="true"
+ default_image_name="Default"
+ follows="left|top"
+ height="108"
+ label="Hair Alpha"
+ layout="topleft"
+ name="Hair Alpha"
+ left_delta="90"
+ tool_tip="Click to choose a picture"
+ width="82" />
+ <check_box
+ control_name="Eye AlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left="43"
+ name="eye alpha texture invisible"
+ top_delta="96"
+ width="16" />
+ <check_box
+ control_name="HairAlphaTextureInvisible"
+ follows="left"
+ height="16"
+ layout="topleft"
+ left_pad="72"
+ name="hair alpha texture invisible"
+ width="16" />
<button
follows="left|top"
height="23"
label="Take Off"
label_selected="Take Off"
layout="topleft"
- left_delta="-4"
name="Take Off"
- top_pad="332"
+ left="10"
+ top_pad="20"
width="82" />
<button
follows="right|bottom"
@@ -3344,9 +3305,9 @@
label="Save"
label_selected="Save"
layout="topleft"
- left_pad="37"
+ right="218"
name="Save"
- top_delta="-2"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -3354,9 +3315,9 @@
label="Save As..."
label_selected="Save As..."
layout="topleft"
- left_pad="6"
+ right="304"
name="Save As"
- top_delta="0"
+ top="477"
width="82" />
<button
follows="right|bottom"
@@ -3364,9 +3325,9 @@
label="Revert"
label_selected="Revert"
layout="topleft"
- left_pad="6"
+ right="390"
name="Revert"
- top_delta="0"
+ top="477"
width="82" />
</panel>
</tab_container>
@@ -3377,7 +3338,7 @@
left="211"
mouse_opaque="false"
name="panel_container"
- top="116"
+ top="92"
width="292">
<scrolling_panel_list
follows="left|bottom"
@@ -3385,17 +3346,18 @@
name="panel_list" />
</scroll_container>
<button
- bottom="598"
+ bottom="460"
follows="right|left"
- height="20"
+ height="23"
label="Script Info"
label_selected="Script Info"
layout="topleft"
name="script_info"
- left="2"
- width="98" />
+ tool_tip="Show scripts attached to your avatar"
+ left="13"
+ width="90" />
<button
- bottom="598"
+ bottom="574"
follows="right|bottom"
height="23"
label="Make Outfit"
@@ -3405,7 +3367,7 @@
right="-218"
width="100" />
<button
- bottom="598"
+ bottom="574"
follows="right|bottom"
height="23"
label="Cancel"
@@ -3415,7 +3377,7 @@
right="-10"
width="100" />
<button
- bottom="598"
+ bottom="574"
follows="right|bottom"
height="23"
label="OK"
diff --git a/indra/newview/skins/default/xui/en/floater_sys_well.xml b/indra/newview/skins/default/xui/en/floater_sys_well.xml
index 3fc57372de..005952f3f2 100644
--- a/indra/newview/skins/default/xui/en/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/en/floater_sys_well.xml
@@ -3,13 +3,13 @@
legacy_header_height="18"
bevel_style="in"
left="0"
- top="0"
+ top="0"
follows="right|bottom"
layout="topleft"
name="sys_well_window"
help_topic="notification_chiclet"
save_rect="true"
- title="NOTIFICATIONS"
+ title="NOTIFICATIONS"
width="320"
min_width="320"
height="23"
@@ -23,13 +23,13 @@
>
<string
name="title_im_well_window">
- IM SESSIONS
+ CONVERSATIONS
</string>
<string
name="title_notification_well_window">
NOTIFICATIONS
</string>
-
+
<flat_list_view
color="FloaterDefaultBackgroundColor"
follows="all"
diff --git a/indra/newview/skins/default/xui/en/floater_test_checkbox.xml b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
index 9977e85a9d..042b4226c3 100644
--- a/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
@@ -71,4 +71,83 @@
name="font_checkbox"
top_pad="14"
width="150" />
+
+<chiclet_im_p2p
+ height="25"
+ name="im_p2p_chiclet"
+ show_speaker="false"
+ width="25">
+ <chiclet_im_p2p.chiclet_button
+ height="25"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ name="chiclet_button"
+ tab_stop="false"
+ width="25"/>
+ <chiclet_im_p2p.speaker
+ auto_update="true"
+ draw_border="false"
+ height="25"
+ left="25"
+ name="speaker"
+ visible="false"
+ width="20" />
+ <chiclet_im_p2p.avatar_icon
+ bottom="3"
+ follows="left|top|bottom"
+ height="20"
+ left="2"
+ mouse_opaque="false"
+ name="avatar_icon"
+ width="21" />
+ <chiclet_im_p2p.unread_notifications
+ height="25"
+ font_halign="center"
+ left="25"
+ mouse_opaque="false"
+ name="unread"
+ text_color="white"
+ v_pad="5"
+ visible="false"
+ width="20"/>
+ <chiclet_im_p2p.new_message_icon
+ bottom="11"
+ height="14"
+ image_name="Unread_Chiclet"
+ left="12"
+ name="new_message_icon"
+ visible="false"
+ width="14" />
+</chiclet_im_p2p>
+
+
+<chiclet_offer
+ height="25"
+ name="offer_chiclet"
+ width="25">
+ <chiclet_offer.chiclet_button
+ height="25"
+ image_selected="PushButton_Selected"
+ image_unselected="PushButton_Off"
+ name="chiclet_button"
+ tab_stop="false"
+ width="25"/>
+ <chiclet_offer.icon
+ bottom="3"
+ default_icon="Generic_Object_Small"
+ follows="all"
+ height="19"
+ left="3"
+ mouse_opaque="false"
+ name="chiclet_icon"
+ width="19" />
+ <chiclet_offer.new_message_icon
+ bottom="11"
+ height="14"
+ image_name="Unread_Chiclet"
+ left="12"
+ name="new_message_icon"
+ visible="false"
+ width="14" />
+</chiclet_offer>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index a1e190fc5e..f1aa5c27c1 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -1687,6 +1687,7 @@ even though the user gets a free copy.
Taper
</text>
<text
+ visible="false"
type="string"
length="1"
follows="left|top"
@@ -1769,6 +1770,7 @@ even though the user gets a free copy.
top_delta="0"
width="68" />
<text
+ visible="false"
type="string"
length="1"
follows="left|top"
@@ -1781,6 +1783,7 @@ even though the user gets a free copy.
Profile Cut (begin/end)
</text>
<text
+ visible="false"
type="string"
length="1"
follows="left|top"
@@ -1831,6 +1834,7 @@ even though the user gets a free copy.
top_delta="0"
width="68" />
<text
+ visible="false"
type="string"
length="1"
follows="left|top"
@@ -1843,6 +1847,7 @@ even though the user gets a free copy.
Taper
</text>
<spinner
+ visible="false"
decimal_digits="2"
follows="left|top"
height="19"
@@ -1857,6 +1862,7 @@ even though the user gets a free copy.
top_pad="3"
width="68" />
<spinner
+ visible="false"
decimal_digits="2"
follows="left|top"
height="19"
@@ -1871,6 +1877,7 @@ even though the user gets a free copy.
top_delta="0"
width="68" />
<text
+ visible="false"
type="string"
length="1"
follows="left|top"
@@ -1883,6 +1890,7 @@ even though the user gets a free copy.
Radius
</text>
<text
+ visible="false"
type="string"
length="1"
follows="left|top"
@@ -1894,6 +1902,7 @@ even though the user gets a free copy.
Revolutions
</text>
<spinner
+ visible="false"
follows="left|top"
height="19"
increment="0.05"
@@ -1905,6 +1914,7 @@ even though the user gets a free copy.
top_pad="4"
width="68" />
<spinner
+ visible="false"
decimal_digits="2"
follows="left|top"
height="19"
diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml
index 861eb9009a..1d4377e339 100644
--- a/indra/newview/skins/default/xui/en/main_view.xml
+++ b/indra/newview/skins/default/xui/en/main_view.xml
@@ -5,6 +5,7 @@
layout="topleft"
left="0"
mouse_opaque="false"
+ tab_stop="false"
name="main_view"
width="1024">
<layout_stack border_size="0"
@@ -18,6 +19,7 @@
height="60"
mouse_opaque="false"
name="nav_bar_container"
+ tab_stop="false"
width="1024"
user_resize="false"
visible="false">
@@ -27,6 +29,7 @@
height="500"
layout="topleft"
mouse_opaque="false"
+ tab_stop="false"
name="hud"
width="1024">
<layout_stack border_size="0"
@@ -38,11 +41,12 @@
orientation="horizontal"
top="0"
width="1024">
- <panel auto_resize="true"
+ <layout_panel auto_resize="true"
follows="all"
height="500"
layout="topleft"
mouse_opaque="false"
+ tab_stop="false"
name="non_side_tray_view"
user_resize="false"
width="500">
@@ -60,19 +64,22 @@
left="0"
mouse_opaque="false"
name="world_stack"
- orientation="vertical">
+ orientation="vertical"
+ tab_stop="false">
<panel auto_resize="true"
follows="all"
height="500"
layout="topleft"
+ tab_stop="false"
mouse_opaque="false"
- name="hud container"
+ name="hud container"
width="500">
<panel follows="right|top|bottom"
height="500"
mouse_opaque="false"
name="side_bar_tabs"
right="500"
+ tab_stop="false"
top="0"
width="32"/>
<panel bottom="500"
@@ -80,6 +87,7 @@
height="25"
left="0"
mouse_opaque="false"
+ tab_stop="false"
name="stand_stop_flying_container"
visible="false"
width="500"/>
@@ -91,13 +99,14 @@
name="bottom_tray_container"
visible="false"/>
</layout_stack>
- </panel>
+ </layout_panel>
<!-- side tray -->
<layout_panel auto_resize="false"
follows="all"
height="500"
min_width="333"
mouse_opaque="false"
+ tab_stop="false"
name="side_tray_container"
user_resize="false"
visible="false"
@@ -132,8 +141,9 @@
</layout_panel>
</layout_stack>
<panel mouse_opaque="false"
- follows="left|right|top"
+ follows="left|right|top"
name="status_bar_container"
+ tab_stop="false"
height="19"
left="0"
top="0"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index b31653d44d..7546d86313 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -244,6 +244,16 @@ Save all changes to clothing/body parts?
<notification
icon="alertmodal.tga"
+ name="FriendsAndGroupsOnly"
+ type="alertmodal">
+ Non-friends won't know that you've choosen to ignore their calls and instant messages.
+ <usetemplate
+ name="okbutton"
+ yestext="Yes"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
name="GrantModifyRights"
type="alertmodal">
Granting modify rights to another Resident allows them to change, delete or take ANY objects you may have in-world. Be VERY careful when handing out this permission.
@@ -3141,7 +3151,7 @@ Join me in [REGION]
icon="alertmodal.tga"
name="TeleportFromLandmark"
type="alertmodal">
-Are you sure you want to teleport?
+Are you sure you want to teleport to [LOCATION]?
<usetemplate
ignoretext="Confirm that I want to teleport to a landmark"
name="okcancelignore"
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index 38e9219b5b..09ec2137b7 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -265,7 +265,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
left="1"
min_width="110"
name="chiclet_list"
- top="6"
+ top="8"
chiclet_padding="4"
scrolling_offset="40"
width="189">
@@ -284,7 +284,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
name="chicklet_left_scroll_button"
scale_image="true"
tab_stop="false"
- top="-2"
+ top="-4"
right_pad="2"
visible="false"
width="7" />
@@ -303,7 +303,7 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
name="chicklet_right_scroll_button"
scale_image="true"
tab_stop="false"
- top="-2"
+ top="-4"
visible="false"
width="7" />
</chiclet_panel>
@@ -334,11 +334,11 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
max_displayed_count="99"
flash_period="0.3"
follows="right"
- height="23"
+ height="28"
layout="topleft"
left="0"
name="im_well"
- top="5"
+ top="0"
width="35">
<!--
Emulate 4 states of button by background images, see details in EXT-3147. The same should be for notification_well button
@@ -350,7 +350,6 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
-->
<button
auto_resize="true"
- flash_color="ChicletFlashColor"
follows="right"
halign="center"
height="23"
@@ -358,12 +357,12 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
image_overlay_alignment="center"
image_pressed="WellButton_Lit"
image_pressed_selected="WellButton_Lit_Selected"
- image_selected="PushButton_Selected_Press"
+ image_selected="PushButton_Press"
label_color="Black"
left="0"
name="Unread IM messages"
tool_tip="Conversations"
- width="35" >
+ width="34" >
<button.init_callback
function="Button.SetDockableFloaterToggle"
parameter="im_well_window" />
@@ -407,24 +406,23 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
bottom_pad="3"
image_pressed="WellButton_Lit"
image_pressed_selected="WellButton_Lit_Selected"
- image_selected="PushButton_Selected_Press"
+ image_selected="PushButton_Press"
auto_resize="true"
halign="center"
height="23"
follows="right"
- flash_color="ChicletFlashColor"
label_color="Black"
left="0"
name="Unread"
image_overlay="Notices_Unread"
image_overlay_alignment="center"
tool_tip="Notifications"
- width="35" >
+ width="34" >
<button.init_callback
function="Button.SetDockableFloaterToggle"
parameter="notification_well_window" />
</button>
- <icon
+ <icon
auto_resize="false"
color="0 0 0 0"
follows="left|right"
diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
index 2075d7e05b..db156f7877 100644
--- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
@@ -2,7 +2,7 @@
<panel
border="false"
follows="all"
- height="380"
+ height="420"
label="Land &amp; L$"
layout="topleft"
left="0"
@@ -237,7 +237,7 @@
</text>
<tab_container
follows="all"
- height="173"
+ height="180"
halign="center"
layout="topleft"
left="0"
@@ -250,7 +250,7 @@
<panel
border="false"
follows="all"
- height="173"
+ height="180"
label="PLANNING"
layout="topleft"
left="0"
@@ -275,7 +275,7 @@
<panel
border="false"
follows="all"
- height="173"
+ height="180"
label="DETAILS"
layout="topleft"
left="0"
@@ -296,41 +296,44 @@
word_wrap="true">
Loading...
</text_editor>
+
+ <button
+ height="20"
+ image_overlay="Arrow_Left_Off"
+ layout="topleft"
+ left="5"
+ name="earlier_details_button"
+ tool_tip="Go back in time"
+ top_pad="10"
+ width="25" />
<button
- follows="left|top"
- height="18"
- image_overlay="Arrow_Left_Off"
- layout="topleft"
- name="earlier_details_button"
- tool_tip="Back"
- right="-45"
- bottom="0"
- width="25" />
- <button
- follows="left|top"
- height="18"
- image_overlay="Arrow_Right_Off"
- layout="topleft"
- left_pad="10"
- name="later_details_button"
- tool_tip="Next"
- width="25" />
- </panel>
+ height="20"
+ image_overlay="Arrow_Right_Off"
+ layout="topleft"
+ left_pad="5"
+ name="later_details_button"
+ tool_tip="Go forward in time"
+ top_delta="0"
+ width="25" />
+
+
+ </panel>
<panel
border="false"
follows="all"
- height="173"
+ height="180"
label="SALES"
layout="topleft"
left_delta="0"
help_topic="group_money_sales_tab"
+ mouse_opaque="false"
name="group_money_sales_tab"
top="0"
width="300">
<text_editor
type="string"
follows="all"
- height="140"
+ height="130"
layout="topleft"
left="0"
max_length="4096"
@@ -340,25 +343,24 @@
word_wrap="true">
Loading...
</text_editor>
- <button
- bottom="0"
- follows="left|top"
- height="18"
- image_overlay="Arrow_Left_Off"
- layout="topleft"
- name="earlier_sales_button"
- tool_tip="Back"
- right="-45"
- width="25" />
- <button
- follows="left|top"
- height="18"
- image_overlay="Arrow_Right_Off"
- layout="topleft"
- left_pad="10"
- name="later_sales_button"
- tool_tip="Next"
- width="25" />
+ <button
+ height="20"
+ image_overlay="Arrow_Left_Off"
+ layout="topleft"
+ left="5"
+ name="earlier_sales_button"
+ tool_tip="Go back in time"
+ top_pad="10"
+ width="25" />
+ <button
+ height="20"
+ image_overlay="Arrow_Right_Off"
+ layout="topleft"
+ left_pad="5"
+ name="later_sales_button"
+ tool_tip="Go forward in time"
+ top_delta="0"
+ width="25" />
</panel>
</tab_container>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index bfc97ed5da..baa6c2e51f 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -142,8 +142,8 @@
left="0"
name="favorite"
image_drag_indication="Accordion_ArrowOpened_Off"
- bottom="55"
- width="590">
+ bottom="55"
+ width="590">
<chevron_button name=">>"
image_unselected="TabIcon_Close_Off"
image_selected="TabIcon_Close_Off"
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
index 8895484326..710ca733e0 100644
--- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
@@ -45,7 +45,7 @@
left="0"
top="0"
mouse_opaque="true"
- name="cof_accordionpanel"
+ name="cof_tab"
start_folder="Current Outfit"
width="313" />
</tab_container>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
index f6900cc31c..17ababe854 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
@@ -9,64 +9,64 @@
name="Input panel"
top="1"
width="517">
- <button
- height="23"
- label="Other Devices"
- layout="topleft"
- left="30"
- name="joystick_setup_button"
- top="10"
- width="155">
- <button.commit_callback
- function="Floater.Show"
- parameter="pref_joystick" />
- </button>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="30"
- name="Mouselook:"
- top_pad="10"
- width="300">
- Mouselook:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_delta="50"
- name=" Mouse Sensitivity"
- top_pad="10"
- width="150">
- Mouse sensitivity
- </text>
- <slider
- control_name="MouseSensitivity"
- follows="left|top"
- height="15"
- initial_value="2"
- layout="topleft"
- show_text="false"
- left_delta="150"
- max_val="15"
- name="mouse_sensitivity"
- top_delta="0"
- width="145" />
- <check_box
- control_name="InvertMouse"
- height="16"
- label="Invert"
- layout="topleft"
- left_pad="2"
- name="invert_mouse"
- top_delta="0"
- width="128" />
- <text
+ <button
+ height="23"
+ label="Other Devices"
+ layout="topleft"
+ left="30"
+ name="joystick_setup_button"
+ top="10"
+ width="155">
+ <button.commit_callback
+ function="Floater.Show"
+ parameter="pref_joystick" />
+ </button>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="30"
+ name="Mouselook:"
+ top_pad="10"
+ width="300">
+ Mouselook:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="50"
+ name=" Mouse Sensitivity"
+ top_pad="10"
+ width="150">
+ Mouse sensitivity
+ </text>
+ <slider
+ control_name="MouseSensitivity"
+ follows="left|top"
+ height="15"
+ initial_value="2"
+ layout="topleft"
+ show_text="false"
+ left_delta="150"
+ max_val="15"
+ name="mouse_sensitivity"
+ top_delta="0"
+ width="145" />
+ <check_box
+ control_name="InvertMouse"
+ height="16"
+ label="Invert"
+ layout="topleft"
+ left_pad="2"
+ name="invert_mouse"
+ top_delta="0"
+ width="128" />
+ <text
type="string"
length="1"
follows="left|top"
@@ -77,266 +77,270 @@
mouse_opaque="false"
top_pad="4"
width="300">
- Network:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_delta="50"
- name="Maximum bandwidth"
- mouse_opaque="false"
- top_pad="10"
- width="200">
- Maximum bandwidth
- </text>
- <slider
- can_edit_text="true"
- control_name="ThrottleBandwidthKBPS"
- decimal_digits="0"
- follows="left|top"
- height="15"
- increment="100"
- initial_value="500"
- layout="topleft"
- left_delta="150"
- max_val="10000"
- min_val="100"
- name="max_bandwidth"
- top_delta="0"
- width="180" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_pad="6"
- mouse_opaque="false"
- name="text_box2"
- top_delta="1"
- width="200">
- kbps
- </text>
- <check_box
- control_name="ConnectionPortEnabled"
- height="16"
- label="Custom port"
- layout="topleft"
- left="77"
- name="connection_port_enabled"
- top_pad="20"
- width="256">
- <check_box.commit_callback
- function="Notification.Show"
- parameter="ChangeConnectionPort" />
- </check_box>
- <spinner
- control_name="BrowserProxyPort"
- enabled_control="BrowserProxyEnabled"
- decimal_digits="0"
- follows="left|top"
- height="23"
- increment="1"
- initial_value="80"
- label="Port number:"
- label_width="75"
- layout="topleft"
- left_delta="160"
- max_val="12000"
- min_val="10"
- name="web_proxy_port"
- top_delta="-2"
- width="140" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="80"
- mouse_opaque="false"
- name="cache_size_label_l"
- top_pad="20"
- width="200">
- Cache size
- </text>
- <slider
- can_edit_text="true"
- control_name="CacheSize"
- decimal_digits="0"
- follows="left|top"
- height="15"
- increment="16"
- initial_value="512"
- layout="topleft"
- left_delta="150"
- max_val="1024"
- min_val="32"
- name="cache_size"
- top_delta="-2"
- width="180" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_pad="6"
- mouse_opaque="false"
- name="text_box5"
- top_delta="1"
- width="40">
- MB
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="80"
- name="Cache location"
- top_delta="20"
- width="300">
- Cache location:
- </text>
- <line_editor
- control_name="CacheLocationTopFolder"
- border_style="line"
- border_thickness="1"
- enabled="false"
- follows="left|top"
- font="SansSerif"
- handle_edit_keys_directly="true"
- height="23"
- layout="topleft"
- left="80"
- max_length="4096"
- name="cache_location"
- top_pad="5"
- width="205" />
- <button
- follows="left|top"
- height="23"
- label="Browse"
- label_selected="Browse"
- layout="topleft"
- left_pad="5"
- name="set_cache"
- top_delta="-1"
- width="100">
- <button.commit_callback
- function="Pref.SetCache" />
- </button>
- <button
- follows="left|top"
- height="23"
- label="Reset"
- label_selected="Reset"
- layout="topleft"
- left_pad="3"
- name="reset_cache"
- top_delta="0"
- width="100">
- <button.commit_callback
- function="Pref.ResetCache" />
- </button>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="30"
- name="Web:"
- top_pad="5"
- width="300">
- Web:
- </text>
- <radio_group
- control_name="UseExternalBrowser"
- draw_border="false"
- follows="top|left"
- height="40"
- layout="topleft"
- left_delta="50"
- name="use_external_browser"
- top_pad="4"
- width="480">
- <radio_item
- height="20"
- label="Use built-in browser"
- layout="topleft"
- left="0"
- name="internal"
- value="0"
- tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside [APP_NAME]."
- top="0"
- width="480" />
- <radio_item
- height="20"
- label="Use my browser (IE, Firefox)"
- layout="topleft"
- left_delta="0"
- name="external"
- value="1"
- tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."
- top_delta="20"
- width="480" />
- </radio_group>
-
- <check_box
- top_delta="4"
- enabled="true"
- follows="left|top"
- height="16"
- initial_value="false"
- label="Web proxy"
- left_delta="0"
- mouse_opaque="true"
- name="web_proxy_enabled"
- radio_style="false"
- width="400"
- top_pad="5"/>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left_delta="1"
- name="Proxy location"
- top_delta="20"
- width="300">
- Proxy location:
- </text>
- <line_editor
- control_name="BrowserProxyAddress"
- enabled_control="BrowserProxyEnabled"
- follows="left|top"
- font="SansSerif"
- height="23"
- layout="topleft"
- left_delta="0"
- name="web_proxy_editor"
- tool_tip="The name or IP address of the proxy you would like to use"
- top_pad="4"
- width="200" />
- <button
- follows="left|top"
- height="23"
- enabled="false"
- label="Browse"
- label_selected="Browse"
- layout="topleft"
- left_pad="5"
- name="set_proxy"
- top_pad="-21"
- width="100">
- <button.commit_callback
- function="Pref.SetCache" />
- </button>
- </panel>
+ Network:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="50"
+ name="Maximum bandwidth"
+ mouse_opaque="false"
+ top_pad="10"
+ width="200">
+ Maximum bandwidth
+ </text>
+ <slider
+ can_edit_text="true"
+ control_name="ThrottleBandwidthKBPS"
+ decimal_digits="0"
+ follows="left|top"
+ height="15"
+ increment="100"
+ initial_value="500"
+ layout="topleft"
+ left_delta="150"
+ max_val="10000"
+ min_val="100"
+ name="max_bandwidth"
+ top_delta="0"
+ width="180" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_pad="6"
+ mouse_opaque="false"
+ name="text_box2"
+ top_delta="1"
+ width="200">
+ kbps
+ </text>
+ <check_box
+ control_name="ConnectionPortEnabled"
+ height="16"
+ label="Custom port"
+ layout="topleft"
+ left="77"
+ name="connection_port_enabled"
+ top_pad="20"
+ width="256">
+ <check_box.commit_callback
+ function="Notification.Show"
+ parameter="ChangeConnectionPort" />
+ </check_box>
+ <spinner
+ control_name="ConnectionPort"
+ enabled_control="ConnectionPortEnabled"
+ decimal_digits="0"
+ follows="left|top"
+ height="23"
+ increment="1"
+ initial_value="13000"
+ label="Port number:"
+ label_width="75"
+ layout="topleft"
+ left_delta="160"
+ max_val="13050"
+ min_val="13000"
+ name="connection_port"
+ top_delta="-2"
+ width="140" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="80"
+ mouse_opaque="false"
+ name="cache_size_label_l"
+ top_pad="20"
+ width="200">
+ Cache size
+ </text>
+ <slider
+ can_edit_text="true"
+ control_name="CacheSize"
+ decimal_digits="0"
+ follows="left|top"
+ height="15"
+ increment="16"
+ initial_value="512"
+ layout="topleft"
+ left_delta="150"
+ max_val="1024"
+ min_val="32"
+ name="cache_size"
+ top_delta="-2"
+ width="180" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_pad="6"
+ mouse_opaque="false"
+ name="text_box5"
+ top_delta="1"
+ width="40">
+ MB
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="80"
+ name="Cache location"
+ top_delta="20"
+ width="300">
+ Cache location:
+ </text>
+ <line_editor
+ control_name="CacheLocationTopFolder"
+ border_style="line"
+ border_thickness="1"
+ enabled="false"
+ follows="left|top"
+ font="SansSerif"
+ handle_edit_keys_directly="true"
+ height="23"
+ layout="topleft"
+ left="80"
+ max_length="4096"
+ name="cache_location"
+ top_pad="5"
+ width="205" />
+ <button
+ follows="left|top"
+ height="23"
+ label="Browse"
+ label_selected="Browse"
+ layout="topleft"
+ left_pad="5"
+ name="set_cache"
+ top_delta="-1"
+ width="100">
+ <button.commit_callback
+ function="Pref.SetCache" />
+ </button>
+ <button
+ follows="left|top"
+ height="23"
+ label="Reset"
+ label_selected="Reset"
+ layout="topleft"
+ left_pad="3"
+ name="reset_cache"
+ top_delta="0"
+ width="100">
+ <button.commit_callback
+ function="Pref.ResetCache" />
+ </button>
+
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="30"
+ name="Web:"
+ top_pad="5"
+ width="300">
+ Web:
+ </text>
+ <radio_group
+ control_name="UseExternalBrowser"
+ draw_border="false"
+ follows="top|left"
+ height="40"
+ layout="topleft"
+ left_delta="50"
+ name="use_external_browser"
+ top_pad="4"
+ width="480">
+ <radio_item
+ height="20"
+ label="Use built-in browser"
+ layout="topleft"
+ left="0"
+ name="internal"
+ value="0"
+ tool_tip="Use the built-in web browser for help, web links, etc. This browser opens as a new window inside [APP_NAME]."
+ top="0"
+ width="480" />
+ <radio_item
+ height="20"
+ label="Use my browser (IE, Firefox)"
+ layout="topleft"
+ left_delta="0"
+ name="external"
+ value="1"
+ tool_tip="Use the default system web browser for help, web links, etc. Not recommended if running full screen."
+ top_delta="20"
+ width="480" />
+ </radio_group>
+
+ <check_box
+ top_delta="4"
+ enabled="true"
+ follows="left|top"
+ height="16"
+ initial_value="false"
+ control_name="BrowserProxyEnabled"
+ label="Enable Web Proxy"
+ left_delta="0"
+ mouse_opaque="true"
+ name="web_proxy_enabled"
+ radio_style="false"
+ width="400" top_pad="5"/>
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left_delta="1"
+ name="Proxy location"
+ top_delta="20"
+ width="300">
+ Proxy location:
+ </text>
+ <line_editor
+ control_name="BrowserProxyAddress"
+ enabled_control="BrowserProxyEnabled"
+ follows="left|top"
+ font="SansSerif"
+ height="23"
+ layout="topleft"
+ left_delta="0"
+ name="web_proxy_editor"
+ tool_tip="The name or IP address of the proxy you would like to use"
+ top_pad="4"
+ width="200" />
+ <spinner
+ control_name="BrowserProxyPort"
+ enabled_control="BrowserProxyEnabled"
+ decimal_digits="0"
+ follows="left|top"
+ height="23"
+ increment="1"
+ initial_value="80"
+ label="Port number:"
+ label_width="75"
+ layout="topleft"
+ left_delta="230"
+ max_val="12000"
+ min_val="10"
+ name="web_proxy_port"
+ top_delta="0"
+ width="140" />
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index 812dc5ce59..7c584ba2c8 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -66,6 +66,7 @@
layout="topleft"
follows="left|top|right"
height="505"
+ min_height="505"
name="profile_scroll_panel"
top="0"
left="0"
@@ -108,10 +109,10 @@
textbox.max_length="512"
name="sl_description_edit"
top_pad="-3"
- width="185"
+ width="180"
expanded_bg_visible="true"
expanded_bg_color="DkGray">
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean viverra orci et justo sagittis aliquet.Nullamma lesuada mauris sit amet ipsum. adipiscing elit. Ae nean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
</expandable_text>
</panel>
<panel
@@ -151,7 +152,7 @@
textbox.max_length="512"
name="fl_description_edit"
top_pad="-3"
- width="185"
+ width="180"
expanded_bg_visible="true"
expanded_bg_color="DkGray">
Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum.
@@ -287,7 +288,7 @@
height="30"
layout="topleft"
name="profile_buttons_panel"
- auto_resize="false"
+ auto_resize="false"
width="313">
<button
follows="bottom|left"
@@ -378,6 +379,6 @@
tool_tip="Create/edit your appearance: physical data, clothes and etc."
width="130" />
</layout_panel>
-
+
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index b378944e48..750d151b7f 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -39,6 +39,15 @@
<string name="LoginWaitingForRegionHandshake">Waiting for region handshake...</string>
<string name="LoginConnectingToRegion">Connecting to region...</string>
<string name="LoginDownloadingClothing">Downloading clothing...</string>
+ <string name="InvalidCertificate">The server returned an invalid or corrupt certificate. Please contact the Grid administrator.</string>
+ <string name="CertInvalidHostname">An invalid hostname was used to access the server, please check your SLURL or Grid hostname.</string>
+ <string name="CertExpired">The certificate returned by the Grid appears to be expired. Please check your system clock, or contact your Grid administr\
+ator.</string>
+ <string name="CertKeyUsage">The certificate returned by the server could not be used for SSL. Please contact your Grid administrator.</string>
+ <string name="CertBasicConstraints">Too many certificates were in the servers Certificate chain. Please contact your Grid administrator.</string>
+ <string name="CertInvalidSignature">The certificate signature returned by the Grid server could not be verified. Please contact your Grid administrat
+or.</string>
+
<string name="LoginFailedNoNetwork">Network Error: Could not establish connection, please check your network connection.</string>
<string name="Quit">Quit</string>
<string name="create_account_url">http://join.secondlife.com/</string>
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
index e5cad0df2e..63f08a4250 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_adhoc.xml
@@ -4,13 +4,13 @@
name="im_adhoc_chiclet"
show_speaker="false"
width="25">
- <chiclet_im_adhoc.chiclet_button
- height="23"
- image_selected="PushButton_Selected"
+ <chiclet_im_adhoc.chiclet_button
+ height="25"
+ image_selected="PushButton_On"
image_unselected="PushButton_Off"
name="chiclet_button"
tab_stop="false"
- width="25"/>
+ width="25" />
<chiclet_im_adhoc.speaker
auto_update="true"
draw_border="false"
@@ -20,13 +20,13 @@
visible="false"
width="20" />
<chiclet_im_adhoc.avatar_icon
- bottom="2"
+ bottom="3"
follows="left|top|bottom"
- height="19"
- left="3"
+ height="20"
+ left="2"
mouse_opaque="true"
name="adhoc_icon"
- width="18" />
+ width="21" />
<chiclet_im_adhoc.unread_notifications
halign="center"
height="23"
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
index 70e4ea8d26..372a89cbc7 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_group.xml
@@ -4,30 +4,30 @@
name="im_group_chiclet"
show_speaker="false"
width="25">
- <chiclet_im_group.chiclet_button
- height="23"
- image_selected="PushButton_Selected"
+ <chiclet_im_group.chiclet_button
+ height="25"
+ image_selected="PushButton_On"
image_unselected="PushButton_Off"
name="chiclet_button"
tab_stop="false"
- width="25"/>
+ width="25" />
<chiclet_im_group.speaker
auto_update="true"
draw_border="false"
- height="23"
+ height="25"
left="25"
name="speaker"
visible="false"
width="20" />
<chiclet_im_group.group_icon
- bottom="2"
+ bottom="3"
default_icon="Generic_Group"
follows="left|top|bottom"
- height="18"
- left="3"
+ height="20"
+ left="2"
mouse_opaque="false"
name="group_icon"
- width="19" />
+ width="21" />
<chiclet_im_group.unread_notifications
height="23"
halign="center"
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
index ec6500cf80..99807d4717 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_im_p2p.xml
@@ -4,9 +4,9 @@
name="im_p2p_chiclet"
show_speaker="false"
width="25">
- <chiclet_im_p2p.chiclet_button
- height="23"
- image_selected="PushButton_Selected"
+ <chiclet_im_p2p.chiclet_button
+ height="25"
+ image_selected="PushButton_On"
image_unselected="PushButton_Off"
name="chiclet_button"
tab_stop="false"
@@ -18,15 +18,15 @@
left="25"
name="speaker"
visible="false"
- width="20"/>
+ width="20" />
<chiclet_im_p2p.avatar_icon
- bottom="2"
+ bottom="3"
follows="left|top|bottom"
- height="18"
- left="3"
+ height="20"
+ left="2"
mouse_opaque="false"
name="avatar_icon"
- width="19" />
+ width="21" />
<chiclet_im_p2p.unread_notifications
height="23"
halign="center"
@@ -45,4 +45,4 @@
name="new_message_icon"
visible="false"
width="14" />
-</chiclet_im_p2p> \ No newline at end of file
+</chiclet_im_p2p>
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
index 1bf9bc9e71..4bc295f747 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_offer.xml
@@ -3,22 +3,22 @@
height="23"
name="offer_chiclet"
width="25">
- <chiclet_offer.chiclet_button
- height="23"
- image_selected="PushButton_Selected"
+ <chiclet_offer.chiclet_button
+ height="25"
+ image_selected="PushButton_On"
image_unselected="PushButton_Off"
name="chiclet_button"
tab_stop="false"
- width="25"/>
+ width="25" />
<chiclet_offer.icon
- bottom="2"
+ bottom="3"
default_icon="Generic_Object_Small"
follows="all"
- height="18"
- left="3"
+ height="20"
+ left="2"
mouse_opaque="false"
name="chiclet_icon"
- width="19" />
+ width="21" />
<chiclet_offer.new_message_icon
bottom="11"
height="14"
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml
index f3207ddeae..5f51f4afd9 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_panel.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<chiclet_panel
- name="chiclet_panel"
+ name="chiclet_panel"
chiclet_padding="3"
scrolling_offset="40"
- scroll_button_hpad="5"
+ scroll_button_hpad="0"
scroll_ratio="10"
min_width="180"
/> \ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
index 38d9904d13..db6a9434df 100644
--- a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
+++ b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml
@@ -3,22 +3,22 @@
height="23"
name="script_chiclet"
width="25">
- <chiclet_script.chiclet_button
- height="23"
- image_selected="PushButton_Selected"
+ <chiclet_script.chiclet_button
+ height="25"
+ image_selected="PushButton_On"
image_unselected="PushButton_Off"
name="chiclet_button"
tab_stop="false"
width="25"/>
<chiclet_script.icon
- bottom="2"
+ bottom="3"
follows="all"
height="18"
image_name="Generic_Object_Small"
- left="3"
+ left="2"
mouse_opaque="false"
name="chiclet_icon"
- width="19"/>
+ width="21"/>
<chiclet_script.new_message_icon
bottom="11"
height="14"
diff --git a/indra/newview/skins/default/xui/en/widgets/color_swatch.xml b/indra/newview/skins/default/xui/en/widgets/color_swatch.xml
index bda88857ae..dfd301a770 100644
--- a/indra/newview/skins/default/xui/en/widgets/color_swatch.xml
+++ b/indra/newview/skins/default/xui/en/widgets/color_swatch.xml
@@ -3,6 +3,6 @@
border_color="ColorSwatchBorderColor"
name="color_swatch">
<color_swatch.caption_text name="caption"
- font="SansSerifSmall"
+ halign="center"
follows="left|right|bottom"/>
</color_swatch>
diff --git a/indra/newview/skins/default/xui/es/floater_about.xml b/indra/newview/skins/default/xui/es/floater_about.xml
index 5545ab29e0..e8e38316f9 100644
--- a/indra/newview/skins/default/xui/es/floater_about.xml
+++ b/indra/newview/skins/default/xui/es/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="ACERCA DE [APP_NAME]">
+<floater name="floater_about" title="ACERCA DE [CAPITALIZED_APP_NAME]">
<tab_container name="about_tab">
<panel name="credits_panel">
<text_editor name="credits_editor">
diff --git a/indra/newview/skins/default/xui/fr/floater_about.xml b/indra/newview/skins/default/xui/fr/floater_about.xml
index 33299f4cd4..7d6d736c5e 100644
--- a/indra/newview/skins/default/xui/fr/floater_about.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="À PROPOS DE [APP_NAME]">
+<floater name="floater_about" title="À PROPOS DE [CAPITALIZED_APP_NAME]">
<floater.string name="AboutHeader">
[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
diff --git a/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml b/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
index ad3872587c..0552cd3108 100644
--- a/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
@@ -33,7 +33,7 @@
<button label="√ Tout" label_selected="Tout" name="check_all"/>
<button label="Effacer" label_selected="Aucun" name="check_none"/>
<text name="newperms">
- Nouvelles permissions relatives au contenu
+ Nouvelles permissions
</text>
<text name="GroupLabel">
Groupe :
diff --git a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
index 5d3a2e6312..4ca251f3d9 100644
--- a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
@@ -28,7 +28,7 @@
1234
</line_editor>
<text name="buying_label">
- Pour le prix
+ Pour
</text>
<text left_delta="68" name="currency_est" width="138">
environ [LOCALAMOUNT]
@@ -57,7 +57,7 @@
<text bottom_delta="16" name="purchase_warning_notenough">
Vous n&apos;achetez pas assez de L$. Veuillez augmenter le montant.
</text>
- <button label="Acheter maintenant" name="buy_btn"/>
+ <button label="Acheter" name="buy_btn"/>
<button label="Annuler" name="cancel_btn"/>
<text left="5" name="info_cannot_buy" right="-5">
Achat impossible
diff --git a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
index 7727e1b657..52f8597dc2 100644
--- a/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
+++ b/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
@@ -13,8 +13,7 @@
<check_box label="Photos" name="check_snapshot"/>
<button label="Tout" label_selected="Tout" name="All" width="70"/>
<button bottom_delta="0" label="Aucun" label_selected="Aucun" left="83" name="None" width="70"/>
- <check_box bottom_delta="-20" label="Toujours montrer
-les dossiers" name="check_show_empty"/>
+ <check_box bottom_delta="-20" label="Toujours montrer les dossiers" name="check_show_empty"/>
<check_box bottom_delta="-36" label="Depuis la déconnexion" name="check_since_logoff"/>
<text name="- OR -">
Ou il y a...
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 2d5def55f3..9639e8415d 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -49,7 +49,7 @@
<menu_item_check label="Mini-carte" name="Mini-Map"/>
<menu_item_check label="Carte du monde" name="World Map"/>
<menu_item_call label="Photo" name="Take Snapshot"/>
- <menu label="Soleil" name="Environment Settings">
+ <menu label="Luminosité" name="Environment Settings">
<menu_item_call label="Aube" name="Sunrise"/>
<menu_item_call label="Milieu de journée" name="Noon"/>
<menu_item_call label="Coucher de soleil" name="Sunset"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml
index b8ab805b13..a4771db91b 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_profile.xml
@@ -39,10 +39,10 @@
<line_editor name="homepage_edit" value="http://"/>
<check_box label="Afficher dans les résultats de recherche" name="show_in_search_checkbox"/>
<text name="title_acc_status_text" value="Mon compte :"/>
- <text name="my_account_link" value="Accéder à ma Page d&apos;accueil"/>
+ <text name="my_account_link" value="[[URL] Accéder à ma Page d&apos;accueil]"/>
<text name="acc_status_text" value="Résident. Aucune info de paiement enregistrée."/>
<text name="title_partner_text" value="Mon partenaire :"/>
- <text name="partner_edit_link" value="[Modifier [URL]]"/>
+ <text name="partner_edit_link" value="[[URL] Modifier]"/>
<panel name="partner_data_panel">
<text name="partner_text" value="[FIRST] [LAST]"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_edit_skin.xml b/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
index 5f9f49c9e8..649b91d66d 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_skin.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_skin_panel">
<panel name="avatar_skin_color_panel">
- <texture_picker label="Tatouages tête" name="Head Tattoos" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Tatouages haut" name="Upper Tattoos" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Tatouages bas" name="Lower Tattoos" tool_tip="Cliquez pour sélectionner une image"/>
+ <texture_picker label="Tatouage tête" name="Head Tattoos" tool_tip="Cliquez pour sélectionner une image"/>
+ <texture_picker label="Tatouage haut" name="Upper Tattoos" tool_tip="Cliquez pour sélectionner une image"/>
+ <texture_picker label="Tatouage bas" name="Lower Tattoos" tool_tip="Cliquez pour sélectionner une image"/>
</panel>
<accordion name="wearable_accordion">
<accordion_tab name="skin_color_tab" title="Couleur de peau"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
index ea6cee1da5..9a98581cb4 100644
--- a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
@@ -15,7 +15,7 @@
</panel>
<menu_bar name="Inventory Menu">
<menu label="Fichier" name="File">
- <menu_item_call label="Ouvert" name="Open"/>
+ <menu_item_call label="Ouvrir" name="Open"/>
<menu label="Charger" name="upload">
<menu_item_call label="Image ([COST] L$)..." name="Upload Image"/>
<menu_item_call label="Son ([COST] L$)..." name="Upload Sound"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_notes.xml b/indra/newview/skins/default/xui/fr/panel_notes.xml
index 7fa583c32b..0195118fd8 100644
--- a/indra/newview/skins/default/xui/fr/panel_notes.xml
+++ b/indra/newview/skins/default/xui/fr/panel_notes.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Notes et vie privée" name="panel_notes">
+<panel label="Notes/Perso" name="panel_notes">
<layout_stack name="layout">
<panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
- <text name="status_message" value="Mes notes privées :"/>
+ <text name="status_message" value="Mes notes perso :"/>
<text name="status_message2" value="Autoriser cette personne à :"/>
<check_box label="Afficher mon statut en ligne" name="status_check"/>
<check_box label="Me situer sur la carte" name="map_check"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_people.xml b/indra/newview/skins/default/xui/fr/panel_people.xml
index fb669f129b..ae2b96da3c 100644
--- a/indra/newview/skins/default/xui/fr/panel_people.xml
+++ b/indra/newview/skins/default/xui/fr/panel_people.xml
@@ -10,7 +10,7 @@
<string name="groups_filter_label" value="Filtrer les groupes"/>
<filter_editor label="Filtre" name="filter_input"/>
<tab_container name="tabs">
- <panel label="PROCHES" name="nearby_panel">
+ <panel label="PRÈS DE VOUS" name="nearby_panel">
<panel label="bottom_panel" name="bottom_panel">
<button name="nearby_view_sort_btn" tool_tip="Options"/>
<button name="add_friend_btn" tool_tip="Ajouter le résident sélectionné à votre liste d&apos;amis"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_picks.xml b/indra/newview/skins/default/xui/fr/panel_picks.xml
index 63a518f8a6..cf110c27b5 100644
--- a/indra/newview/skins/default/xui/fr/panel_picks.xml
+++ b/indra/newview/skins/default/xui/fr/panel_picks.xml
@@ -10,7 +10,7 @@
<accordion_tab name="tab_classifieds" title="Petites annonces"/>
</accordion>
<panel label="bottom_panel" name="edit_panel">
- <button name="new_btn" tool_tip="Ajouter cet endroit à mes Favoris"/>
+ <button name="new_btn" tool_tip="Ajouter cet endroit à mes Préférences"/>
</panel>
<panel name="buttons_cucks">
<button label="Infos" name="info_btn"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
index 13b467d205..d292b002f6 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Chat écrit" name="chat">
<radio_group name="chat_font_size">
- <radio_item label="Petite" name="radio"/>
+ <radio_item label="Moins" name="radio"/>
<radio_item label="Moyenne" name="radio2"/>
- <radio_item label="Grande" name="radio3"/>
+ <radio_item label="Plus" name="radio3"/>
</radio_group>
<color_swatch label="Vous" name="user"/>
<text name="text_box1">
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index 783bd3bcba..6d331704ea 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -38,15 +38,15 @@
</combo_box>
<check_box initial_value="true" label="Afficher à la connexion" name="show_location_checkbox"/>
<text name="name_tags_textbox">
- Étiquettes :
+ Affichage des noms :
</text>
<radio_group name="Name_Tag_Preference">
- <radio_item label="Désactivée" name="radio"/>
- <radio_item label="Activée" name="radio2"/>
+ <radio_item label="Désactivé" name="radio"/>
+ <radio_item label="Activé" name="radio2"/>
<radio_item label="Afficher brièvement" name="radio3"/>
</radio_group>
<check_box label="Afficher mon nom" name="show_my_name_checkbox1"/>
- <check_box initial_value="true" label="Étiquettes courtes" name="small_avatar_names_checkbox"/>
+ <check_box initial_value="true" label="Affichage en petit" name="small_avatar_names_checkbox"/>
<check_box label="Afficher les titres de groupe" name="show_all_title_checkbox1"/>
<text name="effects_color_textbox">
Mes effets :
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
index b4b1783190..4459244395 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
@@ -12,7 +12,7 @@
<combo_box.item label="1024 x 768" name="1024x768"/>
</combo_box>
<text name="UI Size:">
- Taille de l&apos;UI :
+ Taille de l&apos;interface :
</text>
<text name="QualitySpeed">
Qualité et vitesse :
@@ -21,7 +21,7 @@
Plus rapide
</text>
<text name="BetterText">
- Mieux
+ Meilleur
</text>
<text name="ShadersPrefText">
Faible
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml
index c86a6da037..4bb6c76617 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_privacy.xml
@@ -21,7 +21,7 @@
<check_box label="Inclure les heures" name="show_timestamps_check_im"/>
<line_editor left="308" name="log_path_string" right="-20"/>
<text name="log_path_desc">
- Emplacement des journaux
+ Emplacement
</text>
<button label="Parcourir" label_selected="Parcourir" name="log_path_button" width="150"/>
<button label="Liste des ignorés" name="block_list"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_profile_view.xml b/indra/newview/skins/default/xui/fr/panel_profile_view.xml
index 146095a25f..8f57dd89c7 100644
--- a/indra/newview/skins/default/xui/fr/panel_profile_view.xml
+++ b/indra/newview/skins/default/xui/fr/panel_profile_view.xml
@@ -11,6 +11,6 @@
<tab_container name="tabs">
<panel label="PROFIL" name="panel_profile"/>
<panel label="FAVORIS" name="panel_picks"/>
- <panel label="NOTES ET VIE PRIVÉE" name="panel_notes"/>
+ <panel label="NOTES/PERSO" name="panel_notes"/>
</tab_container>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index a8e3ff1442..b45a016822 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -1729,7 +1729,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Taille du ventre
</string>
<string name="Big">
- Maxi
+ Plus
</string>
<string name="Big Butt">
Grosses fesses
@@ -1858,7 +1858,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Favoris
</string>
<string name="Chin Depth">
- Profondeur du menton
+ Profondeur
</string>
<string name="Chin Heavy">
Menton lourd
@@ -1873,7 +1873,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Menton-cou
</string>
<string name="Clear">
- Effacer
+ Clair
</string>
<string name="Cleft">
Fendu
@@ -1987,7 +1987,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Arc
</string>
<string name="Eyebrow Density">
- Épaisseur
+ Épaisseur sourcils
</string>
<string name="Eyebrow Height">
Hauteur
@@ -2041,7 +2041,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Jambes larges
</string>
<string name="Flat">
- Plates
+ Plat
</string>
<string name="Flat Butt">
Fesses plates
@@ -2107,13 +2107,13 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Sens de la coiffure
</string>
<string name="Hair Thickess">
- Épaisseur
+ Épaisseur cheveux
</string>
<string name="Hair Thickness">
- Épaisseur
+ Épaisseur cheveux
</string>
<string name="Hair Tilt">
- Inclinaison des cheveux
+ Inclinaison
</string>
<string name="Hair Tilted Left">
Vers la gauche
@@ -2200,7 +2200,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Plis de la veste
</string>
<string name="Jaw Angle">
- Angle de la mâchoire
+ Angle mâchoire
</string>
<string name="Jaw Jut">
Saillie de la mâchoire
@@ -2221,7 +2221,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Genoux rapprochés
</string>
<string name="Large">
- Grand
+ Plus
</string>
<string name="Large Hands">
Grandes mains
@@ -2230,16 +2230,16 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Raie à gauche
</string>
<string name="Leg Length">
- Longueur de la jambe
+ Longueur
</string>
<string name="Leg Muscles">
- Muscles de la jambe
+ Muscles
</string>
<string name="Less">
Moins
</string>
<string name="Less Body Fat">
- Moins de graisse
+ Moins
</string>
<string name="Less Curtains">
Moins
@@ -2266,13 +2266,13 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Moins
</string>
<string name="Less Round">
- Moins
+ Moins ronde
</string>
<string name="Less Saddle">
Moins
</string>
<string name="Less Square">
- Moins
+ Moins carrée
</string>
<string name="Less Volume">
Moins
@@ -2299,10 +2299,10 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Proportion des lèvres
</string>
<string name="Lip Thickness">
- Épaisseur des lèvres
+ Épaisseur
</string>
<string name="Lip Width">
- Largeur des lèvres
+ Largeur
</string>
<string name="Lipgloss">
Brillant à lèvres
@@ -2545,7 +2545,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Épaisseur du nez
</string>
<string name="Nose Tip Angle">
- Angle du bout du nez
+ Bout du nez
</string>
<string name="Nose Tip Shape">
Bout du nez
@@ -2629,7 +2629,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Raie
</string>
<string name="Part Bangs">
- Séparation de la frange
+ Séparation frange
</string>
<string name="Pectorals">
Pectoraux
@@ -2677,7 +2677,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Paupières
</string>
<string name="Rainbow Color">
- Couleur de l&apos;arc en ciel
+ Couleur arc en ciel
</string>
<string name="Red Hair">
Cheveux roux
@@ -2725,10 +2725,10 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Front
</string>
<string name="Shear Left Up">
- Haut gauche dégagé
+ Haut gauche décalé
</string>
<string name="Shear Right Up">
- Haut droit dégagé
+ Haut droit décalé
</string>
<string name="Sheared Back">
Dégagé derrière
@@ -2758,7 +2758,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Hauteur
</string>
<string name="Short">
- Mini
+ Moins
</string>
<string name="Short Arms">
Bras courts
@@ -2833,7 +2833,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Fente : Droite
</string>
<string name="Small">
- Mini
+ Moins
</string>
<string name="Small Hands">
Petites mains
@@ -2842,7 +2842,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Petite tête
</string>
<string name="Smooth">
- Lisse
+ Lisses
</string>
<string name="Smooth Hair">
Cheveux lisses
@@ -2887,13 +2887,13 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Vers l&apos;avant
</string>
<string name="Tall">
- Maxi
+ Plus
</string>
<string name="Taper Back">
- Biseauter à l&apos;arrière
+ Arrière
</string>
<string name="Taper Front">
- Biseauter à l&apos;avant
+ Avant
</string>
<string name="Thick Heels">
Talons épais
@@ -2980,7 +2980,7 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
Très rouge
</string>
<string name="Waist Height">
- Hauteur de la taille
+ Hauteur taille
</string>
<string name="Well-Fed">
Ronde
diff --git a/indra/newview/skins/default/xui/it/floater_about.xml b/indra/newview/skins/default/xui/it/floater_about.xml
index a5aff9d486..f80f810dba 100644
--- a/indra/newview/skins/default/xui/it/floater_about.xml
+++ b/indra/newview/skins/default/xui/it/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="INFORMAZIONI SU [APP_NAME]">
+<floater name="floater_about" title="INFORMAZIONI SU [CAPITALIZED_APP_NAME]">
<tab_container name="about_tab">
<panel name="credits_panel">
<text_editor name="credits_editor">
diff --git a/indra/newview/skins/default/xui/ja/floater_about.xml b/indra/newview/skins/default/xui/ja/floater_about.xml
index bab805dbd2..0fa20ab1ac 100644
--- a/indra/newview/skins/default/xui/ja/floater_about.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="[APP_NAME] について">
+<floater name="floater_about" title="[CAPITALIZED_APP_NAME] について">
<floater.string name="AboutHeader">
[APP_NAME] [VIEWER_VERSION_0].[VIEWER_VERSION_1].[VIEWER_VERSION_2] ([VIEWER_VERSION_3]) [BUILD_DATE] [BUILD_TIME] ([CHANNEL])
[[VIEWER_RELEASE_NOTES_URL] [ReleaseNotes]]
diff --git a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
index 8af0802ac2..b232a8db61 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_profile.xml
@@ -39,7 +39,7 @@
<line_editor name="homepage_edit" value="http://"/>
<check_box label="検索結果に表示" name="show_in_search_checkbox"/>
<text name="title_acc_status_text" value="マイアカウント:"/>
- <text name="my_account_link" value="マイアカウントに移動"/>
+ <text name="my_account_link" value="[[URL] マイアカウントに移動]"/>
<text name="acc_status_text" value="住人。 支払情報未登録。"/>
<text name="title_partner_text" value="マイパートナー:"/>
<text name="partner_edit_link" value="[[URL] 編集]"/>
diff --git a/indra/newview/skins/default/xui/nl/floater_about.xml b/indra/newview/skins/default/xui/nl/floater_about.xml
index 0c57a22be1..10c30eb361 100644
--- a/indra/newview/skins/default/xui/nl/floater_about.xml
+++ b/indra/newview/skins/default/xui/nl/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="OVER [APP_NAME]">
+<floater name="floater_about" title="OVER [CAPITALIZED_APP_NAME]">
<tab_container name="about_tab">
<panel name="credits_panel">
<text_editor name="credits_editor">
diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml
index 0f100b9d83..f59630edc7 100755
--- a/indra/newview/skins/default/xui/pl/floater_about.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater name="floater_about" title="O [APP_NAME]">
+<floater name="floater_about" title="O [CAPITALIZED_APP_NAME]">
<tab_container name="about_tab">
<panel name="credits_panel">
<text_editor name="credits_editor">
diff --git a/indra/newview/skins/default/xui/pt/floater_about.xml b/indra/newview/skins/default/xui/pt/floater_about.xml
index 9c19b12893..704e2f4107 100644
--- a/indra/newview/skins/default/xui/pt/floater_about.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_about" title="SOBRE O [APP_NAME]">
+<floater name="floater_about" title="SOBRE O [CAPITALIZED_APP_NAME]">
<tab_container name="about_tab">
<panel name="credits_panel">
<text_editor name="credits_editor">
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 81e0b5a90a..b10144f760 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -834,8 +834,8 @@ class LinuxManifest(ViewerManifest):
'dst': self.get_dst_prefix(),
'inst': self.build_path_of(installer_name)})
try:
- # only create tarball if it's not a debug build.
- if self.args['buildtype'].lower() != 'debug':
+ # only create tarball if it's a release build.
+ if self.args['buildtype'].lower() == 'release':
# --numeric-owner hides the username of the builder for
# security etc.
self.run_command('tar -C %(dir)s --numeric-owner -cjf '
@@ -867,7 +867,7 @@ class Linux_i686Manifest(LinuxManifest):
pass
- if(self.args['buildtype'].lower() != 'debug'):
+ if(self.args['buildtype'].lower() == 'release'):
print "* packaging stripped viewer binary."
self.path("secondlife-stripped","bin/do-not-directly-run-secondlife-bin")
else: