summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llgesturemgr.cpp35
-rw-r--r--indra/newview/llgesturemgr.h3
-rw-r--r--indra/newview/llinventorymodel.cpp4
-rw-r--r--indra/newview/llinventoryobserver.h5
-rw-r--r--indra/newview/llviewermenu.cpp13
-rw-r--r--indra/newview/skins/default/xui/en/main_view.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_setup.xml688
7 files changed, 416 insertions, 352 deletions
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/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index ef18386e57..ec9ddc49ad 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/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index d2ba898cf0..5179bcaef7 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -6065,7 +6065,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);
@@ -6107,8 +6108,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/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/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
index f6900cc31c..a0bd2bd438 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
@@ -1,342 +1,346 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
- border="true"
- follows="left|top|right|bottom"
- height="408"
- label="Setup"
- layout="topleft"
- left="102"
- 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
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="30"
- name="Network:"
- 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>
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ border="true"
+ follows="left|top|right|bottom"
+ height="408"
+ label="Setup"
+ layout="topleft"
+ left="102"
+ 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
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="30"
+ name="Network:"
+ 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="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> \ No newline at end of file