diff options
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llgesturemgr.cpp | 35 | ||||
-rw-r--r-- | indra/newview/llgesturemgr.h | 3 | ||||
-rw-r--r-- | indra/newview/llinventorymodel.cpp | 4 | ||||
-rw-r--r-- | indra/newview/llinventoryobserver.h | 5 | ||||
-rw-r--r-- | indra/newview/llviewermenu.cpp | 13 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/main_view.xml | 20 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_preferences_setup.xml | 688 |
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 |