@@ -2664,6 +2664,7 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
26642664 //
26652665
26662666 bool is_movable = true ;
2667+ bool create_outfit = false ;
26672668
26682669 if (is_movable && (marketplacelistings_id == cat_id))
26692670 {
@@ -2708,7 +2709,12 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
27082709 tooltip_msg = LLTrans::getString (" TooltipOutfitNotInInventory" );
27092710 is_movable = false ;
27102711 }
2711- else if (can_move_to_my_outfits (model, inv_cat, max_items_to_wear))
2712+ else if (can_move_to_my_outfits_as_outfit (model, inv_cat, max_items_to_wear))
2713+ {
2714+ is_movable = true ;
2715+ create_outfit = true ;
2716+ }
2717+ else if (can_move_to_my_outfits_as_subfolder (model, inv_cat))
27122718 {
27132719 is_movable = true ;
27142720 }
@@ -2742,7 +2748,12 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
27422748 is_movable = false ;
27432749 tooltip_msg = LLTrans::getString (" TooltipCantCreateOutfit" );
27442750 }
2745- else if (can_move_to_my_outfits (model, inv_cat, max_items_to_wear))
2751+ else if (can_move_to_my_outfits_as_outfit (model, inv_cat, max_items_to_wear))
2752+ {
2753+ is_movable = true ;
2754+ create_outfit = true ;
2755+ }
2756+ else if (can_move_to_my_outfits_as_subfolder (model, inv_cat))
27462757 {
27472758 is_movable = true ;
27482759 }
@@ -2943,7 +2954,7 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
29432954 if (mUUID == my_outifts_id)
29442955 {
29452956 EMyOutfitsSubfolderType inv_res = myoutfit_object_subfolder_type (model, cat_id, my_outifts_id);
2946- if (inv_res == MY_OUTFITS_SUBFOLDER || inv_res == MY_OUTFITS_OUTFIT)
2957+ if (inv_res == MY_OUTFITS_SUBFOLDER || inv_res == MY_OUTFITS_OUTFIT || !create_outfit )
29472958 {
29482959 LLInvFVBridge::changeCategoryParent (
29492960 model,
@@ -2967,7 +2978,7 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
29672978 {
29682979 case MY_OUTFITS_NO:
29692980 // Moning from outside outfits into outfits
2970- if (dest_res == MY_OUTFITS_SUBFOLDER)
2981+ if (dest_res == MY_OUTFITS_SUBFOLDER && create_outfit )
29712982 {
29722983 // turn it into outfit
29732984 dropToMyOutfitsSubfolder (inv_cat, mUUID , LLFolderType::FT_OUTFIT, cb);
@@ -4094,7 +4105,6 @@ void LLFolderBridge::perform_pasteFromClipboard()
40944105 LLInventoryObject *obj = model->getObject (item_id);
40954106 if (obj)
40964107 {
4097-
40984108 if (move_is_into_lost_and_found)
40994109 {
41004110 if (LLAssetType::AT_CATEGORY == obj->getType ())
@@ -4111,9 +4121,9 @@ void LLFolderBridge::perform_pasteFromClipboard()
41114121 }
41124122 else if (move_is_into_my_outfits && LLAssetType::AT_CATEGORY == obj->getType ())
41134123 {
4114- LLInventoryCategory * cat = model->getCategory (item_id);
4124+ LLViewerInventoryCategory * cat = model->getCategory (item_id);
41154125 U32 max_items_to_wear = gSavedSettings .getU32 (" WearFolderLimit" );
4116- if (cat && can_move_to_my_outfits (model, cat, max_items_to_wear))
4126+ if (cat && can_move_to_my_outfits_as_outfit (model, cat, max_items_to_wear))
41174127 {
41184128 if (mUUID == my_outifts_id)
41194129 {
@@ -4133,6 +4143,18 @@ void LLFolderBridge::perform_pasteFromClipboard()
41334143 }
41344144 }
41354145 }
4146+ else if (cat && can_move_to_my_outfits_as_subfolder (model, cat))
4147+ {
4148+ if (LLClipboard::instance ().isCutMode ())
4149+ {
4150+ changeCategoryParent (model, cat, parent_id, false );
4151+ if (cb) cb->fire (item_id);
4152+ }
4153+ else
4154+ {
4155+ copy_inventory_category (model, cat, parent_id);
4156+ }
4157+ }
41364158 else
41374159 {
41384160 LLNotificationsUtil::add (" MyOutfitsPasteFailed" );
@@ -4181,7 +4203,7 @@ void LLFolderBridge::perform_pasteFromClipboard()
41814203 // move_inventory_item() is not enough, as we have to update inventory locally too
41824204 if (LLAssetType::AT_CATEGORY == obj->getType ())
41834205 {
4184- LLViewerInventoryCategory* vicat = (LLViewerInventoryCategory *) model->getCategory (item_id);
4206+ LLViewerInventoryCategory* vicat = model->getCategory (item_id);
41854207 llassert (vicat);
41864208 if (vicat)
41874209 {
0 commit comments