diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llcommon/llassettype.cpp | 3 | ||||
| -rw-r--r-- | indra/llcommon/llassettype.h | 8 | ||||
| -rw-r--r-- | indra/llcommon/stdenums.h | 5 | ||||
| -rw-r--r-- | indra/llinventory/llinventorytype.cpp | 5 | ||||
| -rw-r--r-- | indra/llinventory/llinventorytype.h | 3 | ||||
| -rw-r--r-- | indra/llui/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | indra/llui/llclipboard.cpp | 6 | ||||
| -rw-r--r-- | indra/llui/llclipboard.h | 9 | ||||
| -rw-r--r-- | indra/llui/lltoolbar.cpp | 55 | ||||
| -rw-r--r-- | indra/llui/lltoolbar.h | 32 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | indra/newview/lltoolbarview.cpp (renamed from indra/llui/lltoolbarview.cpp) | 79 | ||||
| -rw-r--r-- | indra/newview/lltoolbarview.h (renamed from indra/llui/lltoolbarview.h) | 6 | ||||
| -rw-r--r-- | indra/newview/lltooldraganddrop.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/lltooldraganddrop.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewerassettype.cpp | 4 | 
16 files changed, 214 insertions, 16 deletions
| diff --git a/indra/llcommon/llassettype.cpp b/indra/llcommon/llassettype.cpp index 145dddd543..5e566d6c7c 100644 --- a/indra/llcommon/llassettype.cpp +++ b/indra/llcommon/llassettype.cpp @@ -93,7 +93,8 @@ LLAssetDictionary::LLAssetDictionary()  	addEntry(LLAssetType::AT_LINK, 				new AssetEntry("LINK",				"link",		"sym link",			false,		false,		true));  	addEntry(LLAssetType::AT_LINK_FOLDER, 		new AssetEntry("FOLDER_LINK",		"link_f", 	"sym folder link",	false,		false,		true)); -	addEntry(LLAssetType::AT_MESH,              new AssetEntry("MESH",              "mesh",     "mesh",             false, false, false)); +	addEntry(LLAssetType::AT_MESH,              new AssetEntry("MESH",              "mesh",     "mesh",             false,      false,      false)); +	addEntry(LLAssetType::AT_WIDGET,            new AssetEntry("WIDGET",            "widget",   "widget",           false,      false,      false));  	addEntry(LLAssetType::AT_NONE, 				new AssetEntry("NONE",				"-1",		NULL,		  		FALSE,		FALSE,		FALSE));  }; diff --git a/indra/llcommon/llassettype.h b/indra/llcommon/llassettype.h index 74ccd00324..d538accbf7 100644 --- a/indra/llcommon/llassettype.h +++ b/indra/llcommon/llassettype.h @@ -108,9 +108,13 @@ public:  		AT_LINK_FOLDER = 25,  			// Inventory folder link +		 +		AT_WIDGET = 40, +			// UI Widget: this is *not* an inventory asset type, only a viewer side asset (e.g. button, other ui items...) +		  		AT_MESH = 49, -		    // Mesh data in our proprietary SLM format - +			// Mesh data in our proprietary SLM format +		  		AT_COUNT = 50,  			// +*********************************************************+ diff --git a/indra/llcommon/stdenums.h b/indra/llcommon/stdenums.h index 556eff8370..40b3364b36 100644 --- a/indra/llcommon/stdenums.h +++ b/indra/llcommon/stdenums.h @@ -49,8 +49,9 @@ enum EDragAndDropType  	DAD_ANIMATION		= 12,  	DAD_GESTURE			= 13,  	DAD_LINK			= 14, -	DAD_MESH           		= 15, -	DAD_COUNT			= 16,   // number of types in this enum +	DAD_MESH            = 15, +	DAD_WIDGET          = 16, +	DAD_COUNT           = 17,   // number of types in this enum  };  // Reasons for drags to be denied. diff --git a/indra/llinventory/llinventorytype.cpp b/indra/llinventory/llinventorytype.cpp index d2bba21648..8282d79b67 100644 --- a/indra/llinventory/llinventorytype.cpp +++ b/indra/llinventory/llinventorytype.cpp @@ -84,6 +84,7 @@ LLInventoryDictionary::LLInventoryDictionary()  	addEntry(LLInventoryType::IT_ANIMATION,           new InventoryEntry("animation", "animation",     1, LLAssetType::AT_ANIMATION));    	addEntry(LLInventoryType::IT_GESTURE,             new InventoryEntry("gesture",   "gesture",       1, LLAssetType::AT_GESTURE));   	addEntry(LLInventoryType::IT_MESH,                new InventoryEntry("mesh",      "mesh",          1, LLAssetType::AT_MESH)); +	addEntry(LLInventoryType::IT_WIDGET,              new InventoryEntry("widget",    "widget",        1, LLAssetType::AT_WIDGET));  } @@ -134,7 +135,7 @@ DEFAULT_ASSET_FOR_INV_TYPE[LLAssetType::AT_COUNT] =  	LLInventoryType::IT_NONE,			// 37	AT_NONE  	LLInventoryType::IT_NONE,			// 38	AT_NONE  	LLInventoryType::IT_NONE,			// 39	AT_NONE -	LLInventoryType::IT_NONE,			// 40	AT_NONE +	LLInventoryType::IT_WIDGET,			// 40	AT_WIDGET  	LLInventoryType::IT_NONE,			// 41	AT_NONE  	LLInventoryType::IT_NONE,			// 42	AT_NONE  	LLInventoryType::IT_NONE,			// 43	AT_NONE @@ -143,7 +144,7 @@ DEFAULT_ASSET_FOR_INV_TYPE[LLAssetType::AT_COUNT] =  	LLInventoryType::IT_NONE,			// 46	AT_NONE  	LLInventoryType::IT_NONE,			// 47	AT_NONE  	LLInventoryType::IT_NONE,			// 48	AT_NONE -	LLInventoryType::IT_MESH            // 49	AT_MESH +	LLInventoryType::IT_MESH,			// 49	AT_MESH  };  // static diff --git a/indra/llinventory/llinventorytype.h b/indra/llinventory/llinventorytype.h index 1a24e351ad..4d1e0db040 100644 --- a/indra/llinventory/llinventorytype.h +++ b/indra/llinventory/llinventorytype.h @@ -62,7 +62,8 @@ public:  		IT_ANIMATION = 19,  		IT_GESTURE = 20,  		IT_MESH = 22, -		IT_COUNT = 23, +		IT_WIDGET = 23, +		IT_COUNT = 24,  		IT_NONE = -1  	}; diff --git a/indra/llui/CMakeLists.txt b/indra/llui/CMakeLists.txt index 4212812558..dded8ab661 100644 --- a/indra/llui/CMakeLists.txt +++ b/indra/llui/CMakeLists.txt @@ -5,6 +5,7 @@ project(llui)  include(00-Common)  include(LLCommon)  include(LLImage) +include(LLInventory)  include(LLMath)  include(LLMessage)  include(LLRender) @@ -16,6 +17,7 @@ include(LLXUIXML)  include_directories(      ${LLCOMMON_INCLUDE_DIRS}      ${LLIMAGE_INCLUDE_DIRS} +    ${LLINVENTORY_INCLUDE_DIRS}      ${LLMATH_INCLUDE_DIRS}      ${LLMESSAGE_INCLUDE_DIRS}      ${LLRENDER_INCLUDE_DIRS} @@ -101,7 +103,6 @@ set(llui_SOURCE_FILES      lltransutil.cpp      lltoggleablemenu.cpp      lltoolbar.cpp -    lltoolbarview.cpp      lltooltip.cpp      llui.cpp      lluicolortable.cpp @@ -205,7 +206,6 @@ set(llui_HEADER_FILES      lltimectrl.h      lltoggleablemenu.h      lltoolbar.h -    lltoolbarview.h      lltooltip.h      lltransutil.h      lluicolortable.h @@ -251,6 +251,7 @@ target_link_libraries(llui      ${LLRENDER_LIBRARIES}      ${LLWINDOW_LIBRARIES}      ${LLIMAGE_LIBRARIES} +    ${LLINVENTORY_LIBRARIES}      ${LLVFS_LIBRARIES}    # ugh, just for LLDir      ${LLXUIXML_LIBRARIES}      ${LLXML_LIBRARIES} diff --git a/indra/llui/llclipboard.cpp b/indra/llui/llclipboard.cpp index 984c4ec5fb..6910b962a1 100644 --- a/indra/llui/llclipboard.cpp +++ b/indra/llui/llclipboard.cpp @@ -40,6 +40,7 @@ LLClipboard gClipboard;  LLClipboard::LLClipboard()  { +	mSourceItem = NULL;  } @@ -134,3 +135,8 @@ BOOL LLClipboard::canPastePrimaryString() const  {  	return LLView::getWindow()->isPrimaryTextAvailable();  } + +void LLClipboard::setSourceObject(const LLUUID& source_id, LLAssetType::EType type)  +{ +	mSourceItem = new LLInventoryObject (source_id, LLUUID::null, type, ""); +} diff --git a/indra/llui/llclipboard.h b/indra/llui/llclipboard.h index 24cb46c3f4..9371b94284 100644 --- a/indra/llui/llclipboard.h +++ b/indra/llui/llclipboard.h @@ -30,6 +30,8 @@  #include "llstring.h"  #include "lluuid.h" +#include "stdenums.h" +#include "llinventory.h"  class LLClipboard @@ -52,9 +54,14 @@ public:  	BOOL		canPastePrimaryString() const;  	const LLWString&	getPastePrimaryWString(LLUUID* source_id = NULL);	 +	// Support clipboard for object known only by their uuid and asset type +	void		  setSourceObject(const LLUUID& source_id, LLAssetType::EType type); +	const LLInventoryObject* getSourceObject() { return mSourceItem; } +	  private: -	LLUUID		mSourceID; +	LLUUID      mSourceID;  	LLWString	mString; +	LLInventoryObject* mSourceItem;  }; diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp index 75c7d91f8a..5300de38a0 100644 --- a/indra/llui/lltoolbar.cpp +++ b/indra/llui/lltoolbar.cpp @@ -113,6 +113,7 @@ LLToolBar::LLToolBar(const LLToolBar::Params& p)  {  	mButtonParams[LLToolBarEnums::BTNTYPE_ICONS_WITH_TEXT] = p.button_icon_and_text;  	mButtonParams[LLToolBarEnums::BTNTYPE_ICONS_ONLY] = p.button_icon; +	mUUID = LLUUID::LLUUID::generateNewID(p.name);  }  LLToolBar::~LLToolBar() @@ -534,6 +535,8 @@ void LLToolBar::createButton(const LLCommandId& id)  		cbParam.function_name = commandp->functionName();  		cbParam.parameter = commandp->parameter();  		button->setCommitCallback(cbParam); +		button->setStartDragCallback(mStartDragItemCallback); +		button->setHandleDragCallback(mHandleDragItemCallback);  	}  	mButtons.push_back(button); @@ -541,3 +544,55 @@ void LLToolBar::createButton(const LLCommandId& id)  	mNeedsLayout = true;  } + +BOOL LLToolBar::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, +										EDragAndDropType cargo_type, +										void* cargo_data, +										EAcceptance* accept, +										std::string& tooltip_msg) +{ +	llinfos << "Merov debug : handleDragAndDrop. drop = " << drop << ", tooltip = " << tooltip_msg << llendl; +	// If we have a drop callback, that means that we can handle the drop +	BOOL handled = (mHandleDropCallback ? TRUE : FALSE); +	 +	// if drop, time to call the drop callback to get the operation done +	if (handled && drop) +	{ +		handled = mHandleDropCallback(cargo_type,cargo_data,mUUID); +	} +	 +	// We accept multi drop by default +	*accept = (handled ? ACCEPT_YES_MULTI : ACCEPT_NO); +	 +	// We'll use that flag to change the visual aspect of the target on draw() +	mDragAndDropTarget = handled; +	 +	return handled; +} + +LLToolBarButton::LLToolBarButton(const Params& p) : LLButton(p) +{ +	mUUID = LLUUID::LLUUID::generateNewID(p.name); +} + +BOOL LLToolBarButton::handleHover( S32 x, S32 y, MASK mask ) +{ +//	llinfos << "Merov debug: handleHover, x = " << x << ", y = " << y << ", mouse = " << hasMouseCapture() << llendl; +	BOOL handled = FALSE; +		 +	if (hasMouseCapture() && mStartDragItemCallback && mHandleDragItemCallback) +	{ +		if (!mIsDragged) +		{ +			mStartDragItemCallback(x,y,mUUID); +			mIsDragged = true; +			handled = TRUE; +		} +		else  +		{ +			handled = mHandleDragItemCallback(x,y,mUUID,LLAssetType::AT_WIDGET); +		} +	} +	return handled; +} + diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h index 03b1756988..6dcf620861 100644 --- a/indra/llui/lltoolbar.h +++ b/indra/llui/lltoolbar.h @@ -33,7 +33,11 @@  #include "lllayoutstack.h"  #include "lluictrl.h"  #include "llcommandmanager.h" +#include "llassettype.h" +typedef boost::function<void (S32 x, S32 y, const LLUUID& uuid)> startdrag_callback_t; +typedef boost::function<BOOL (S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type)> handledrag_callback_t; +typedef boost::function<BOOL (EDragAndDropType type, void* data, const LLUUID& uuid)> handledrop_callback_t;  class LLToolBarButton : public LLButton  { @@ -42,7 +46,17 @@ public:  	{  	}; -	LLToolBarButton(const Params& p) : LLButton(p) {} +	LLToolBarButton(const Params& p); + +	virtual BOOL handleHover( S32 x, S32 y, MASK mask ); +	 +	void setStartDragCallback(startdrag_callback_t cb) { mStartDragItemCallback = cb; } +	void setHandleDragCallback(handledrag_callback_t cb) { mHandleDragItemCallback = cb; } +protected: +	bool						mIsDragged; +	startdrag_callback_t		mStartDragItemCallback; +	handledrag_callback_t		mHandleDragItemCallback; +	LLUUID						mUUID;  }; @@ -86,7 +100,6 @@ class LLToolBar  :	public LLUICtrl  {  public: -  	struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>  	{  		Mandatory<LLToolBarEnums::ButtonType>	button_display_mode; @@ -119,10 +132,18 @@ public:  	void draw();  	void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);  	BOOL handleRightMouseDown(S32 x, S32 y, MASK mask); - +	virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, +								   EDragAndDropType cargo_type, +								   void* cargo_data, +								   EAcceptance* accept, +								   std::string& tooltip_msg); +	  	bool addCommand(const LLCommandId& commandId);  	bool hasCommand(const LLCommandId& commandId) const;  	bool enableCommand(const LLCommandId& commandId, bool enabled); +	void setStartDragCallback(startdrag_callback_t cb) { mStartDragItemCallback = cb; } +	void setHandleDragCallback(handledrag_callback_t cb) { mHandleDragItemCallback = cb; } +	void setHandleDropCallback(handledrop_callback_t cb) { mHandleDropCallback = cb; }  protected:  	friend class LLUICtrlFactory; @@ -130,6 +151,10 @@ protected:  	~LLToolBar();  	void initFromParams(const Params&); +	startdrag_callback_t		mStartDragItemCallback; +	handledrag_callback_t		mHandleDragItemCallback; +	handledrop_callback_t		mHandleDropCallback; +	bool						mDragAndDropTarget;  public:  	// Methods used in loading and saving toolbar settings @@ -147,6 +172,7 @@ private:  	BOOL isSettingChecked(const LLSD& userdata);  	void onSettingEnable(const LLSD& userdata); +	LLUUID							mUUID;  	const bool						mReadOnly;  	std::list<LLToolBarButton*>		mButtons; diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index c488d51ba5..ce47cca16f 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -481,6 +481,7 @@ set(viewer_SOURCE_FILES      lltoastpanel.cpp      lltoastscripttextbox.cpp      lltool.cpp +    lltoolbarview.cpp      lltoolbrush.cpp      lltoolcomp.cpp      lltooldraganddrop.cpp @@ -1039,6 +1040,7 @@ set(viewer_HEADER_FILES      lltoastpanel.h      lltoastscripttextbox.h      lltool.h +    lltoolbarview.h      lltoolbrush.h      lltoolcomp.h      lltooldraganddrop.h diff --git a/indra/llui/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 1c6cf3230b..929486a185 100644 --- a/indra/llui/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -33,12 +33,15 @@  #include "llxmlnode.h"  #include "lltoolbar.h"  #include "llbutton.h" +#include "lltooldraganddrop.h" +#include "llclipboard.h"  #include <boost/foreach.hpp>  LLToolBarView* gToolBarView = NULL;  static LLDefaultChildRegistry::Register<LLToolBarView> r("toolbar_view"); +bool LLToolBarView::sDragStarted = false;  LLToolBarView::Toolbar::Toolbar()  :	button_display_mode("button_display_mode"), @@ -77,6 +80,18 @@ BOOL LLToolBarView::postBuild()  	mToolbarRight  = getChild<LLToolBar>("toolbar_right");  	mToolbarBottom = getChild<LLToolBar>("toolbar_bottom"); +	mToolbarLeft->setStartDragCallback(boost::bind(LLToolBarView::startDragItem,_1,_2,_3)); +	mToolbarLeft->setHandleDragCallback(boost::bind(LLToolBarView::handleDragItem,_1,_2,_3,_4)); +	mToolbarLeft->setHandleDropCallback(boost::bind(LLToolBarView::handleDrop,_1,_2,_3)); +	 +	mToolbarRight->setStartDragCallback(boost::bind(LLToolBarView::startDragItem,_1,_2,_3)); +	mToolbarRight->setHandleDragCallback(boost::bind(LLToolBarView::handleDragItem,_1,_2,_3,_4)); +	mToolbarRight->setHandleDropCallback(boost::bind(LLToolBarView::handleDrop,_1,_2,_3)); +	 +	mToolbarBottom->setStartDragCallback(boost::bind(LLToolBarView::startDragItem,_1,_2,_3)); +	mToolbarBottom->setHandleDragCallback(boost::bind(LLToolBarView::handleDragItem,_1,_2,_3,_4)); +	mToolbarBottom->setHandleDropCallback(boost::bind(LLToolBarView::handleDrop,_1,_2,_3)); +	  	return TRUE;  } @@ -309,3 +324,67 @@ void LLToolBarView::draw()  	LLUICtrl::draw();  } + + +// ---------------------------------------- +// Drag and Drop hacks (under construction) +// ---------------------------------------- + + +void LLToolBarView::startDragItem( S32 x, S32 y, const LLUUID& uuid) +{ +	llinfos << "Merov debug: startDragItem() : x = " << x << ", y = " << y << llendl; +	LLToolDragAndDrop::getInstance()->setDragStart( x, y ); +	sDragStarted = false; +} + +BOOL LLToolBarView::handleDragItem( S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type) +{ +//	llinfos << "Merov debug: handleDragItem() : x = " << x << ", y = " << y << ", uuid = " << uuid << llendl; +	if (LLToolDragAndDrop::getInstance()->isOverThreshold( x, y )) +	{ +		if (!sDragStarted) +		{ +			std::vector<EDragAndDropType> types; +			uuid_vec_t cargo_ids; +			types.push_back(DAD_WIDGET); +			cargo_ids.push_back(uuid); +			gClipboard.setSourceObject(uuid,LLAssetType::AT_WIDGET); +			LLToolDragAndDrop::ESource src = LLToolDragAndDrop::SOURCE_VIEWER; +			LLUUID srcID; +			llinfos << "Merov debug: handleDragItem() :  beginMultiDrag()" << llendl; +			LLToolDragAndDrop::getInstance()->beginMultiDrag(types, cargo_ids, src, srcID); +			sDragStarted = true; +			return TRUE; +		} +		else +		{ +			MASK mask = 0; +			return LLToolDragAndDrop::getInstance()->handleHover( x, y, mask ); +		} +	} +	return FALSE; +} + +BOOL LLToolBarView::handleDrop( EDragAndDropType cargo_type, void* cargo_data, const LLUUID& toolbar_id) +{ +	LLInventoryItem* inv_item = (LLInventoryItem*)cargo_data; +	llinfos << "Merov debug : handleDrop. Drop " << inv_item->getUUID() << " named " << inv_item->getName() << " of type " << inv_item->getType() << " to toolbar " << toolbar_id << " under cargo type " << cargo_type << llendl; +		 +	LLAssetType::EType type = inv_item->getType(); +	if (type == LLAssetType::AT_WIDGET) +	{ +		llinfos << "Merov debug : handleDrop. Drop source is a widget -> that's where we'll get code in..." << llendl; +		// Find out if he command is in one of the toolbar +		// If it is, pull it out of the toolbar +		// Now insert it in the toolbar in the correct spot... +	} +	else +	{ +		llinfos << "Merov debug : handleDrop. Drop source is not a widget -> nothing to do" << llendl; +	} +	 +	return TRUE; +} + + diff --git a/indra/llui/lltoolbarview.h b/indra/newview/lltoolbarview.h index efe6920db8..4e1b855e3d 100644 --- a/indra/llui/lltoolbarview.h +++ b/indra/newview/lltoolbarview.h @@ -74,6 +74,10 @@ public:  	bool loadToolbars(bool force_default = false);	// return false if load fails  	bool loadDefaultToolbars() { return loadToolbars(true); } +	static void startDragItem( S32 x, S32 y, const LLUUID& uuid); +	static BOOL handleDragItem( S32 x, S32 y, const LLUUID& uuid, LLAssetType::EType type); +	static BOOL handleDrop(	EDragAndDropType cargo_type, void* cargo_data, const LLUUID& folder_id); +  protected:  	friend class LLUICtrlFactory;  	LLToolBarView(const Params&); @@ -89,6 +93,8 @@ private:  	LLToolBar*	mToolbarLeft;  	LLToolBar*	mToolbarRight;  	LLToolBar*	mToolbarBottom; +	 +	static bool			sDragStarted;  };  extern LLToolBarView* gToolBarView; diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 3e5ce427a8..a8014b8cde 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -57,6 +57,7 @@  #include "llviewerwindow.h"  #include "llvoavatarself.h"  #include "llworld.h" +#include "llclipboard.h"  // syntactic sugar  #define callMemberFunction(object,ptrToMember)  ((object).*(ptrToMember)) @@ -2495,6 +2496,10 @@ LLInventoryObject* LLToolDragAndDrop::locateInventory(  			item = (LLViewerInventoryItem*)preview->getDragItem();  		}  	} +	else if(mSource == SOURCE_VIEWER) +	{ +		item = (LLViewerInventoryItem*)gClipboard.getSourceObject(); +	}  	if(item) return item;  	if(cat) return cat;  	return NULL; diff --git a/indra/newview/lltooldraganddrop.h b/indra/newview/lltooldraganddrop.h index 7b8cce3dc7..92f007a251 100644 --- a/indra/newview/lltooldraganddrop.h +++ b/indra/newview/lltooldraganddrop.h @@ -66,7 +66,8 @@ public:  		SOURCE_AGENT,  		SOURCE_WORLD,  		SOURCE_NOTECARD, -		SOURCE_LIBRARY +		SOURCE_LIBRARY, +		SOURCE_VIEWER  	};  	void beginDrag(EDragAndDropType type, diff --git a/indra/newview/llviewerassettype.cpp b/indra/newview/llviewerassettype.cpp index b103f11597..a4b1c2155f 100644 --- a/indra/newview/llviewerassettype.cpp +++ b/indra/newview/llviewerassettype.cpp @@ -80,7 +80,9 @@ LLViewerAssetDictionary::LLViewerAssetDictionary()  	addEntry(LLViewerAssetType::AT_LINK_FOLDER, 		new ViewerAssetEntry(DAD_LINK));  	addEntry(LLViewerAssetType::AT_MESH, 				new ViewerAssetEntry(DAD_MESH)); - +	 +	addEntry(LLViewerAssetType::AT_WIDGET, 				new ViewerAssetEntry(DAD_WIDGET)); +	  	addEntry(LLViewerAssetType::AT_NONE, 				new ViewerAssetEntry(DAD_NONE));  }; | 
