Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2021-08-02 17:59:10 +0300
committerJulian Eisel <julian@blender.org>2021-08-02 18:00:20 +0300
commit3ff5d8f719f592c2ea17533532708e883a8baa96 (patch)
tree36561027ba8887c5437accdca4045e0dd9e9077b /release
parentceb049133c6fe7e66e67227c5f8fde311e69aa14 (diff)
Asset Browser: Proper context menu for assets
Add a context menu dedicated to asset operations to the Asset Browser. There are two separate context menus to keep things separated well and avoid confusing if-else logic (similar to D12057 & D12059). Their polls make sure they are displayed for the right contexts only. Also (to be committed as followup cleanup): Remove now unused special handling for assets in file delete operator. Differential Revision: https://developer.blender.org/D12062
Diffstat (limited to 'release')
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/blender_default.py1
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py1
-rw-r--r--release/scripts/startup/bl_ui/space_filebrowser.py35
3 files changed, 31 insertions, 6 deletions
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 3527e993173..a37577e898b 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -2000,6 +2000,7 @@ def km_file_browser(params):
("file.filenum", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True, "repeat": True},
{"properties": [("increment", -100)]}),
*_template_items_context_menu("FILEBROWSER_MT_context_menu", params.context_menu_event),
+ *_template_items_context_menu("ASSETBROWSER_MT_context_menu", params.context_menu_event),
])
return keymap
diff --git a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
index 714126903d8..9d34b110afe 100644
--- a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
+++ b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
@@ -1249,6 +1249,7 @@ def km_file_browser(params):
("file.filenum", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True, "repeat": True},
{"properties": [("increment", -100)]}),
*_template_items_context_menu("FILEBROWSER_MT_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}),
+ *_template_items_context_menu("ASSETBROWSER_MT_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}),
])
return keymap
diff --git a/release/scripts/startup/bl_ui/space_filebrowser.py b/release/scripts/startup/bl_ui/space_filebrowser.py
index 81a71ea0de2..44631e368a3 100644
--- a/release/scripts/startup/bl_ui/space_filebrowser.py
+++ b/release/scripts/startup/bl_ui/space_filebrowser.py
@@ -296,7 +296,7 @@ class FILEBROWSER_MT_bookmarks_context_menu(Menu):
text="Move to Bottom").direction = 'BOTTOM'
-class FILEBROWSER_PT_bookmarks_favorites(Panel):
+class FILEBROWSER_PT_bookmarks_favorites(FileBrowserPanel, Panel):
bl_space_type = 'FILE_BROWSER'
bl_region_type = 'TOOLS'
bl_category = "Bookmarks"
@@ -526,7 +526,7 @@ class FILEBROWSER_MT_select(FileBrowserMenu, Menu):
layout.operator("file.select_box")
-class FILEBROWSER_MT_context_menu(Menu):
+class FILEBROWSER_MT_context_menu(FileBrowserMenu, Menu):
bl_label = "Files Context Menu"
def draw(self, context):
@@ -553,10 +553,6 @@ class FILEBROWSER_MT_context_menu(Menu):
sub.operator_context = 'EXEC_DEFAULT'
sub.operator("file.delete", text="Delete")
- active_asset = asset_utils.SpaceAssetInfo.get_active_asset(context)
- if active_asset:
- layout.operator("asset.open_containing_blend_file")
-
layout.separator()
sub = layout.row()
@@ -755,6 +751,32 @@ class ASSETBROWSER_UL_metadata_tags(UIList):
row.prop(tag, "name", text="", emboss=False, icon_value=icon)
+class ASSETBROWSER_MT_context_menu(AssetBrowserMenu, Menu):
+ bl_label = "Assets Context Menu"
+
+ def draw(self, context):
+ layout = self.layout
+ st = context.space_data
+ params = st.params
+
+ layout.operator("file.refresh", text="Refresh")
+
+ layout.separator()
+
+ sub = layout.row()
+ sub.operator_context = 'EXEC_DEFAULT'
+ sub.operator("asset.clear", text="Clear Asset")
+
+ layout.separator()
+
+ layout.operator("asset.open_containing_blend_file")
+
+ layout.separator()
+
+ if params.display_type == 'THUMBNAIL':
+ layout.prop_menu_enum(params, "display_size")
+
+
classes = (
FILEBROWSER_HT_header,
FILEBROWSER_PT_display,
@@ -781,6 +803,7 @@ classes = (
ASSETBROWSER_PT_metadata_details,
ASSETBROWSER_PT_metadata_tags,
ASSETBROWSER_UL_metadata_tags,
+ ASSETBROWSER_MT_context_menu,
)
if __name__ == "__main__": # only for live edit.