diff --git a/indra/llcharacter/llmultigesture.cpp b/indra/llcharacter/llmultigesture.cpp index 05d1bc0cd96ad43336c2c48f615f5a27d16aedb7..ee60430d97ac93ea16e2c404f15893901bf11dca 100644 --- a/indra/llcharacter/llmultigesture.cpp +++ b/indra/llcharacter/llmultigesture.cpp @@ -498,6 +498,10 @@ std::vector<std::string> LLGestureStepWait::getLabel() const strings.push_back("until animations are done"); // label += "until animations are done"; } + else + { + strings.push_back(""); + } return strings; } diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index f683cbc8d0c0f771585f3142ffbb054f68507d35..ca1361c84b0b1be1a41d6cd8042d65ff4bda9cb5 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -114,6 +114,7 @@ class LLTaskInvFVBridge : public LLFolderViewEventListener virtual time_t getCreationDate() const; virtual LLUIImagePtr getIcon() const; virtual void openItem(); + virtual BOOL canOpenItem() const { return FALSE; } virtual void closeItem() {} virtual void previewItem(); virtual void selectItem() {} @@ -667,7 +668,7 @@ void LLTaskInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } } } - else + else if (canOpenItem()) { items.push_back(std::string("Task Open")); if (!isItemCopyable()) @@ -713,6 +714,8 @@ class LLTaskCategoryBridge : public LLTaskInvFVBridge virtual BOOL dragOrDrop(MASK mask, BOOL drop, EDragAndDropType cargo_type, void* cargo_data); + virtual BOOL canOpenItem() const { return TRUE; } + virtual void openItem(); }; LLTaskCategoryBridge::LLTaskCategoryBridge( @@ -747,7 +750,8 @@ void LLTaskCategoryBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { std::vector<std::string> items; std::vector<std::string> disabled_items; - items.push_back(std::string("Task Open")); + items.push_back(std::string("--no options--")); + disabled_items.push_back(std::string("--no options--")); hide_context_entries(menu, items, disabled_items); } @@ -758,6 +762,10 @@ BOOL LLTaskCategoryBridge::hasChildren() const return FALSE; } +void LLTaskCategoryBridge::openItem() +{ +} + BOOL LLTaskCategoryBridge::startDrag(EDragAndDropType* type, LLUUID* id) const { //llinfos << "LLTaskInvFVBridge::startDrag()" << llendl; @@ -864,6 +872,7 @@ class LLTaskTextureBridge : public LLTaskInvFVBridge const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); }; @@ -890,6 +899,7 @@ class LLTaskSoundBridge : public LLTaskInvFVBridge const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual void performAction(LLInventoryModel* model, std::string action); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); @@ -966,9 +976,8 @@ void LLTaskSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } } } - else + else if (canOpenItem()) { - items.push_back(std::string("Task Open")); if (!isItemCopyable()) { disabled_items.push_back(std::string("Task Open")); @@ -1053,6 +1062,7 @@ class LLTaskLSLBridge : public LLTaskScriptBridge const std::string& name) : LLTaskScriptBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual BOOL removeItem(); //virtual void buildContextMenu(LLMenuGL& menu); @@ -1114,6 +1124,7 @@ class LLTaskNotecardBridge : public LLTaskInvFVBridge const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual BOOL removeItem(); }; @@ -1153,6 +1164,7 @@ class LLTaskGestureBridge : public LLTaskInvFVBridge const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual BOOL removeItem(); }; @@ -1186,6 +1198,7 @@ class LLTaskAnimationBridge : public LLTaskInvFVBridge const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual BOOL removeItem(); }; diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp index 2e061b235dcdab397ab8e4bef8d2fc32448faa13..ff315d3c53c13db0de0f3ff6390f76c75c809ba8 100644 --- a/indra/newview/llpreviewgesture.cpp +++ b/indra/newview/llpreviewgesture.cpp @@ -31,55 +31,31 @@ */ #include "llviewerprecompiledheaders.h" - #include "llpreviewgesture.h" -#include <algorithm> - -// libraries -#include "lldatapacker.h" -#include "lldarray.h" -#include "llstring.h" -#include "lldir.h" +#include "llagent.h" +#include "llanimstatelabels.h" +#include "llanimationstates.h" +#include "llappviewer.h" // gVFS +#include "llassetuploadresponders.h" +#include "llcheckboxctrl.h" +#include "llcombobox.h" +#include "lldelayedgestureerror.h" #include "llfloaterreg.h" +#include "llgesturemgr.h" #include "llinventorydefines.h" #include "llinventoryfunctions.h" #include "llinventorymodel.h" #include "llinventorymodelbackgroundfetch.h" #include "llmultigesture.h" #include "llnotificationsutil.h" -#include "llvfile.h" - -// newview -#include "llagent.h" // todo: remove -#include "llanimationstates.h" -#include "llassetuploadresponders.h" -#include "llbutton.h" -#include "llcheckboxctrl.h" -#include "llcombobox.h" -#include "lldelayedgestureerror.h" -#include "llfloatergesture.h" // for some label constants -#include "llgesturemgr.h" -#include "llkeyboard.h" -#include "lllineeditor.h" #include "llradiogroup.h" -#include "llscrolllistctrl.h" -#include "llscrolllistitem.h" -#include "llscrolllistcell.h" -#include "lltextbox.h" -#include "lluictrlfactory.h" -#include "llviewerinventory.h" -#include "llviewerobject.h" +#include "llresmgr.h" +#include "lltrans.h" +#include "llvfile.h" #include "llviewerobjectlist.h" #include "llviewerregion.h" #include "llviewerstats.h" -#include "llviewerwindow.h" // busycount -#include "llvoavatarself.h" -#include "llappviewer.h" // gVFS -#include "llanimstatelabels.h" -#include "llresmgr.h" -#include "lltrans.h" - std::string NONE_LABEL; std::string SHIFT_LABEL; @@ -832,7 +808,9 @@ void LLPreviewGesture::loadAsset() const LLInventoryItem* item = getItem(); if (!item) { - mAssetStatus = PREVIEW_ASSET_ERROR; + // Don't set asset status here; we may not have set the item id yet + // (e.g. when this gets called initially) + //mAssetStatus = PREVIEW_ASSET_ERROR; return; } diff --git a/indra/newview/llpreviewgesture.h b/indra/newview/llpreviewgesture.h index 5968e936ef828b02afbd1bc4caf6a14d2330e693..1814f0d403721dbd96d6ee1514896d57603572ef 100644 --- a/indra/newview/llpreviewgesture.h +++ b/indra/newview/llpreviewgesture.h @@ -34,7 +34,6 @@ #define LL_LLPREVIEWGESTURE_H #include "llassettype.h" -#include "llmultigesture.h" #include "llpreview.h" class LLMultiGesture; @@ -45,7 +44,6 @@ class LLComboBox; class LLScrollListCtrl; class LLScrollListItem; class LLButton; -class LLGestureStep; class LLRadioGroup; class LLVFS; @@ -140,7 +138,7 @@ class LLPreviewGesture : public LLPreview static void onDonePreview(LLMultiGesture* gesture, void* data); -protected: +private: // LLPreview contains mDescEditor LLLineEditor* mTriggerEditor; LLTextBox* mReplaceText; @@ -173,4 +171,4 @@ class LLPreviewGesture : public LLPreview BOOL mDirty; }; -#endif +#endif // LL_LLPREVIEWGESTURE_H diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml index f766fe5a5d245eb32a30e35405f99ccf3ddde4f0..6281bc52725e8dc4b3554fcc7708cad5203cfe10 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml @@ -39,28 +39,6 @@ name="Title"> Gesture: [NAME] </floater.string> - <text - type="string" - length="1" - follows="top|left" - font="SansSerifSmall" - height="10" - layout="topleft" - left="10" - name="name_text" - top="20" - font.style="BOLD" - width="100"> - Name: - </text> - <line_editor - follows="left|top" - height="20" - layout="topleft" - left_delta="84" - name="name" - top_delta="-4" - width="180" /> <text type="string" length="1" @@ -70,7 +48,7 @@ layout="topleft" left="10" name="desc_label" - top_pad="10" + top_pad="25" font.style="BOLD" width="100"> Description: @@ -79,10 +57,10 @@ follows="left|top" height="20" layout="topleft" - left_delta="84" + left_delta="89" name="desc" top_delta="-4" - width="180" /> + width="175" /> <text type="string" length="1" @@ -101,11 +79,11 @@ follows="left|top" height="20" layout="topleft" - left_delta="84" + left_delta="89" max_length="31" name="trigger_editor" top_delta="-4" - width="180" /> + width="175" /> <text type="string" length="1" @@ -125,12 +103,12 @@ follows="left|top" height="20" layout="topleft" - left_delta="84" + left_delta="89" max_length="31" name="replace_editor" tool_tip="Replace the trigger word(s) with these words. For example, trigger 'hello' replace with 'howdy' will turn the chat 'I wanted to say hello' into 'I wanted to say howdy' as well as playing the gesture" top_delta="-4" - width="180" /> + width="175" /> <text type="string" length="1" @@ -149,7 +127,7 @@ height="20" label="None" layout="topleft" - left_delta="84" + left_delta="89" name="modifier_combo" top_delta="-4" width="75" /> @@ -171,7 +149,7 @@ left="10" font.style="BOLD" name="library_label" - top="135" + top_delta="25" width="100"> Library: </text> @@ -181,7 +159,7 @@ layout="topleft" left="10" name="library_list" - top="150" + top_delta="15" width="180"> <scroll_list.rows value="Animation" /> @@ -199,7 +177,7 @@ layout="topleft" left_pad="10" name="add_btn" - top_delta="0" + top_delta="-1" width="70" /> <text type="string" @@ -230,7 +208,7 @@ layout="topleft" left_pad="10" name="up_btn" - top_delta="0" + top_delta="-1" width="70" /> <button follows="top|left" @@ -256,23 +234,25 @@ layout="topleft" left="15" name="options_text" - top="330" - width="205" /> + top="315" + width="205"> + (options) + </text> <combo_box follows="top|left" height="20" layout="topleft" left_delta="15" name="animation_list" - top="345" - width="100" /> + top="330" + width="100"/> <combo_box follows="top|left" height="20" layout="topleft" left_delta="0" name="sound_list" - top_delta="0" + top="330" width="100" /> <line_editor follows="top|left" @@ -281,7 +261,7 @@ left_delta="0" max_length="127" name="chat_editor" - top_delta="0" + top="330" width="100" /> <radio_group draw_border="false" @@ -290,7 +270,7 @@ layout="topleft" left_pad="8" name="animation_trigger_type" - top_delta="0" + top="330" width="80"> <radio_item height="16" @@ -298,7 +278,7 @@ layout="topleft" left="3" name="start" - top="-51" + top_delta="45" width="80" /> <radio_item height="16" @@ -306,7 +286,7 @@ layout="topleft" left_delta="0" name="stop" - top_pad="10" + top_pad="3" width="80" /> </radio_group> <check_box @@ -314,14 +294,14 @@ height="20" label="until animations are done" layout="topleft" - left="16" + left="28" name="wait_anim_check" - top="340" + top="330" width="100" /> <check_box follows="top|left" height="20" - label="time in seconds" + label="time in seconds:" layout="topleft" left_delta="0" name="wait_time_check" @@ -331,10 +311,10 @@ follows="top|left" height="20" layout="topleft" - left_pad="5" + left_pad="10" max_length="15" name="wait_time_editor" - top_delta="0" + top_delta="1" width="50" /> <text type="string"