diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2021-11-25 17:22:40 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2021-11-25 17:22:40 +0300 |
commit | 3652f5f758aafa2103519c3c0663ba8643b554c1 (patch) | |
tree | cde6022d74747015518ffc8ae4c650176617fbf7 /source/blender/editors/space_file | |
parent | 9812a08848b8a5264948ae1e2a4b0343d2e7f9e2 (diff) | |
parent | c91d1961596eb3ac0905010b63551951fc1fece7 (diff) |
Merge remote-tracking branch 'origin/blender-v3.0-release'
Diffstat (limited to 'source/blender/editors/space_file')
-rw-r--r-- | source/blender/editors/space_file/asset_catalog_tree_view.cc | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/source/blender/editors/space_file/asset_catalog_tree_view.cc b/source/blender/editors/space_file/asset_catalog_tree_view.cc index 35c671e8ea5..5d8bfbc0b79 100644 --- a/source/blender/editors/space_file/asset_catalog_tree_view.cc +++ b/source/blender/editors/space_file/asset_catalog_tree_view.cc @@ -33,6 +33,7 @@ #include "ED_asset.h" #include "ED_fileselect.h" +#include "ED_undo.h" #include "RNA_access.h" @@ -126,13 +127,14 @@ class AssetCatalogDropController : public ui::AbstractTreeViewItemDropController bool can_drop(const wmDrag &drag, const char **r_disabled_hint) const override; std::string drop_tooltip(const wmDrag &drag) const override; - bool on_drop(const wmDrag &drag) override; + bool on_drop(struct bContext *C, const wmDrag &drag) override; ::AssetLibrary &get_asset_library() const; static AssetCatalog *get_drag_catalog(const wmDrag &drag, const ::AssetLibrary &asset_library); static bool has_droppable_asset(const wmDrag &drag, const char **r_disabled_hint); - static bool drop_assets_into_catalog(const AssetCatalogTreeView &tree_view, + static bool drop_assets_into_catalog(struct bContext *C, + const AssetCatalogTreeView &tree_view, const wmDrag &drag, CatalogID catalog_id, StringRefNull simple_name = ""); @@ -161,7 +163,7 @@ class AssetCatalogTreeViewAllItem : public ui::BasicTreeViewItem { bool can_drop(const wmDrag &drag, const char **r_disabled_hint) const override; std::string drop_tooltip(const wmDrag &drag) const override; - bool on_drop(const wmDrag &drag) override; + bool on_drop(struct bContext *C, const wmDrag &drag) override; }; std::unique_ptr<ui::AbstractTreeViewItemDropController> create_drop_controller() const override; @@ -175,7 +177,7 @@ class AssetCatalogTreeViewUnassignedItem : public ui::BasicTreeViewItem { bool can_drop(const wmDrag &drag, const char **r_disabled_hint) const override; std::string drop_tooltip(const wmDrag &drag) const override; - bool on_drop(const wmDrag &drag) override; + bool on_drop(struct bContext *C, const wmDrag &drag) override; }; std::unique_ptr<ui::AbstractTreeViewItemDropController> create_drop_controller() const override; @@ -426,13 +428,14 @@ std::string AssetCatalogDropController::drop_tooltip_asset_list(const wmDrag &dr ")"; } -bool AssetCatalogDropController::on_drop(const wmDrag &drag) +bool AssetCatalogDropController::on_drop(struct bContext *C, const wmDrag &drag) { if (drag.type == WM_DRAG_ASSET_CATALOG) { return drop_asset_catalog_into_catalog( drag, tree_view<AssetCatalogTreeView>(), catalog_item_.get_catalog_id()); } - return drop_assets_into_catalog(tree_view<AssetCatalogTreeView>(), + return drop_assets_into_catalog(C, + tree_view<AssetCatalogTreeView>(), drag, catalog_item_.get_catalog_id(), catalog_item_.get_simple_name()); @@ -452,7 +455,8 @@ bool AssetCatalogDropController::drop_asset_catalog_into_catalog( return true; } -bool AssetCatalogDropController::drop_assets_into_catalog(const AssetCatalogTreeView &tree_view, +bool AssetCatalogDropController::drop_assets_into_catalog(struct bContext *C, + const AssetCatalogTreeView &tree_view, const wmDrag &drag, CatalogID catalog_id, StringRefNull simple_name) @@ -463,11 +467,14 @@ bool AssetCatalogDropController::drop_assets_into_catalog(const AssetCatalogTree return false; } + bool did_update = false; LISTBASE_FOREACH (wmDragAssetListItem *, asset_item, asset_drags) { if (asset_item->is_external) { /* Only internal assets can be modified! */ continue; } + + did_update = true; BKE_asset_metadata_catalog_id_set( asset_item->asset_data.local_id->asset_data, catalog_id, simple_name.c_str()); @@ -477,6 +484,9 @@ bool AssetCatalogDropController::drop_assets_into_catalog(const AssetCatalogTree WM_main_add_notifier(NC_SPACE | ND_SPACE_FILE_LIST, nullptr); } + if (did_update) { + ED_undo_push(C, "Assign Asset Catalog"); + } return true; } @@ -598,7 +608,7 @@ std::string AssetCatalogTreeViewAllItem::DropController::drop_tooltip(const wmDr TIP_("to the top level of the tree"); } -bool AssetCatalogTreeViewAllItem::DropController::on_drop(const wmDrag &drag) +bool AssetCatalogTreeViewAllItem::DropController::on_drop(struct bContext *, const wmDrag &drag) { BLI_assert(drag.type == WM_DRAG_ASSET_CATALOG); return AssetCatalogDropController::drop_asset_catalog_into_catalog( @@ -641,11 +651,12 @@ std::string AssetCatalogTreeViewUnassignedItem::DropController::drop_tooltip( TIP_("Move asset out of any catalog"); } -bool AssetCatalogTreeViewUnassignedItem::DropController::on_drop(const wmDrag &drag) +bool AssetCatalogTreeViewUnassignedItem::DropController::on_drop(struct bContext *C, + const wmDrag &drag) { /* Assign to nil catalog ID. */ return AssetCatalogDropController::drop_assets_into_catalog( - tree_view<AssetCatalogTreeView>(), drag, CatalogID{}); + C, tree_view<AssetCatalogTreeView>(), drag, CatalogID{}); } } // namespace blender::ed::asset_browser |