diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp index 9d0f4b6db1958017bb73b9c5c06a7b2fe32c3b07..e38c5c1ef3bc4b2a1fc35745d34bf10f9d78c17b 100644 --- a/indra/llui/llfolderview.cpp +++ b/indra/llui/llfolderview.cpp @@ -148,6 +148,7 @@ LLFolderView::Params::Params() : title("title"), use_label_suffix("use_label_suffix"), allow_multiselect("allow_multiselect", true), + allow_drag("allow_drag", true), show_empty_message("show_empty_message", true), suppress_folder_menu("suppress_folder_menu", false), use_ellipses("use_ellipses", false), @@ -163,6 +164,7 @@ LLFolderView::LLFolderView(const Params& p) mScrollContainer( NULL ), mPopupMenuHandle(), mAllowMultiSelect(p.allow_multiselect), + mAllowDrag(p.allow_drag), mShowEmptyMessage(p.show_empty_message), mShowFolderHierarchy(FALSE), mRenameItem( NULL ), diff --git a/indra/llui/llfolderview.h b/indra/llui/llfolderview.h index 69824992c14c9a40f3e6aa7af3703787644df2ab..6bb5e6c02e0d4a46f3c4260fb2583a4c960deafe 100644 --- a/indra/llui/llfolderview.h +++ b/indra/llui/llfolderview.h @@ -90,6 +90,7 @@ class LLFolderView : public LLFolderViewFolder, public LLEditMenuHandler Optional<std::string> title; Optional<bool> use_label_suffix, allow_multiselect, + allow_drag, show_empty_message, use_ellipses, show_item_link_overlays, @@ -124,6 +125,7 @@ class LLFolderView : public LLFolderViewFolder, public LLEditMenuHandler void setReshapeCallback(const signal_t::slot_type& cb) { mReshapeSignal.connect(cb); } bool getAllowMultiSelect() { return mAllowMultiSelect; } + bool getAllowDrag() { return mAllowDrag; } // Close all folders in the view void closeAllFolders(); @@ -274,6 +276,7 @@ class LLFolderView : public LLFolderViewFolder, public LLEditMenuHandler selected_items_t mSelectedItems; bool mKeyboardSelection, mAllowMultiSelect, + mAllowDrag, mShowEmptyMessage, mShowFolderHierarchy, mNeedsScroll, diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp index 0510e472c53da52dc8101da82ce3ecea17e01618..341399e980676121f908508ad8c4db3fd7ad1da6 100644 --- a/indra/llui/llfolderviewitem.cpp +++ b/indra/llui/llfolderviewitem.cpp @@ -557,6 +557,7 @@ BOOL LLFolderViewItem::handleHover( S32 x, S32 y, MASK mask ) LLFolderView* root = getRoot(); if( (x - mDragStartX) * (x - mDragStartX) + (y - mDragStartY) * (y - mDragStartY) > drag_and_drop_threshold() * drag_and_drop_threshold() + && root->getAllowDrag() && root->getCurSelectedItem() && root->startDrag()) { diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 5f244ec6a2b179ccff2f37f2725105f5147f904b..c96760dd6664debc4dd2b8e158b256f433458228 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -149,6 +149,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) : mInventory(p.inventory), mAcceptsDragAndDrop(p.accepts_drag_and_drop), mAllowMultiSelect(p.allow_multi_select), + mAllowDrag(p.allow_drag), mShowItemLinkOverlays(p.show_item_link_overlays), mShowEmptyMessage(p.show_empty_message), mSuppressFolderMenu(p.suppress_folder_menu), @@ -199,6 +200,7 @@ LLFolderView * LLInventoryPanel::createFolderRoot(LLUUID root_id ) p.grouped_item_model = mGroupedItemBridge; p.use_label_suffix = mParams.use_label_suffix; p.allow_multiselect = mAllowMultiSelect; + p.allow_drag = mAllowDrag; p.show_empty_message = mShowEmptyMessage; p.suppress_folder_menu = mSuppressFolderMenu; p.show_item_link_overlays = mShowItemLinkOverlays; diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h index b2a60543af2bb2b7c11b32dd6fc62c8559baadef..b55eb2b82869c28d3b427649f9c40fe6940cf32b 100644 --- a/indra/newview/llinventorypanel.h +++ b/indra/newview/llinventorypanel.h @@ -92,6 +92,7 @@ class LLInventoryPanel : public LLPanel Optional<std::string> sort_order_setting; Optional<LLInventoryModel*> inventory; Optional<bool> allow_multi_select; + Optional<bool> allow_drag; Optional<bool> show_item_link_overlays; Optional<Filter> filter; Optional<StartFolder> start_folder; @@ -111,6 +112,7 @@ class LLInventoryPanel : public LLPanel : sort_order_setting("sort_order_setting"), inventory("", &gInventory), allow_multi_select("allow_multi_select", true), + allow_drag("allow_drag", true), show_item_link_overlays("show_item_link_overlays", false), suppress_folder_menu("suppress_folder_menu", false), filter("filter"), @@ -263,6 +265,7 @@ class LLInventoryPanel : public LLPanel LLInvPanelComplObserver* mCompletionObserver; bool mAcceptsDragAndDrop; bool mAllowMultiSelect; + bool mAllowDrag; bool mShowItemLinkOverlays; // Shows link graphic over inventory item icons bool mShowEmptyMessage; bool mSuppressFolderMenu; diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp index 5eadd65884c31e0ad92401b7be7bc86b644629c4..a23830e8e1764e17eda4bc0e8a8338ca6fbef1a7 100644 --- a/indra/newview/llplacesinventorypanel.cpp +++ b/indra/newview/llplacesinventorypanel.cpp @@ -78,6 +78,7 @@ LLFolderView * LLPlacesInventoryPanel::createFolderRoot(LLUUID root_id ) p.view_model = &mInventoryViewModel; p.use_label_suffix = mParams.use_label_suffix; p.allow_multiselect = mAllowMultiSelect; + p.allow_drag = mAllowDrag; p.show_empty_message = mShowEmptyMessage; p.show_item_link_overlays = mShowItemLinkOverlays; p.root = NULL; diff --git a/indra/newview/skins/default/xui/en/floater_settings_picker.xml b/indra/newview/skins/default/xui/en/floater_settings_picker.xml index 55a1b540b48fd10db37f8adff88f6b0397f86ae1..132d23492fe70ecebf2a2fc824a4cd72ed7a05ad 100644 --- a/indra/newview/skins/default/xui/en/floater_settings_picker.xml +++ b/indra/newview/skins/default/xui/en/floater_settings_picker.xml @@ -76,6 +76,8 @@ bg_alpha_color="DkGray2"> <asset_filtered_inv_panel allow_multi_select="false" + allow_drag="false" + accepts_drag_and_drop="false" suppress_folder_menu="true" bg_visible="true" bg_alpha_color="DkGray2"