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:
-rw-r--r--release/scripts/startup/bl_ui/space_filebrowser.py74
-rw-r--r--source/blender/makesrna/intern/rna_space.c20
2 files changed, 88 insertions, 6 deletions
diff --git a/release/scripts/startup/bl_ui/space_filebrowser.py b/release/scripts/startup/bl_ui/space_filebrowser.py
index 8ca93d2406c..570d8b42821 100644
--- a/release/scripts/startup/bl_ui/space_filebrowser.py
+++ b/release/scripts/startup/bl_ui/space_filebrowser.py
@@ -84,12 +84,12 @@ class FILEBROWSER_HT_header(Header):
if space_data.active_operator is None:
layout.template_header()
- FILEBROWSER_MT_editor_menus.draw_collapsible(context, layout)
-
if SpaceAssetInfo.is_asset_browser(space_data):
+ ASSETBROWSER_MT_editor_menus.draw_collapsible(context, layout)
layout.separator()
self.draw_asset_browser_buttons(context)
else:
+ FILEBROWSER_MT_editor_menus.draw_collapsible(context, layout)
layout.separator_spacer()
if not context.screen.show_statusbar:
@@ -477,7 +477,14 @@ class FILEBROWSER_PT_directory_path(Panel):
).region_type = 'TOOL_PROPS'
-class FILEBROWSER_MT_editor_menus(Menu):
+class FileBrowserMenu:
+ @classmethod
+ def poll(cls, context):
+ space_data = context.space_data
+ return space_data and space_data.type == 'FILE_BROWSER' and space_data.browse_mode == 'FILES'
+
+
+class FILEBROWSER_MT_editor_menus(FileBrowserMenu, Menu):
bl_idname = "FILEBROWSER_MT_editor_menus"
bl_label = ""
@@ -488,7 +495,7 @@ class FILEBROWSER_MT_editor_menus(Menu):
layout.menu("FILEBROWSER_MT_select")
-class FILEBROWSER_MT_view(Menu):
+class FILEBROWSER_MT_view(FileBrowserMenu, Menu):
bl_label = "View"
def draw(self, context):
@@ -510,7 +517,7 @@ class FILEBROWSER_MT_view(Menu):
layout.menu("INFO_MT_area")
-class FILEBROWSER_MT_select(Menu):
+class FILEBROWSER_MT_select(FileBrowserMenu, Menu):
bl_label = "Select"
def draw(self, _context):
@@ -572,6 +579,60 @@ class FILEBROWSER_MT_context_menu(Menu):
layout.prop_menu_enum(params, "sort_method")
+class AssetBrowserMenu:
+ @classmethod
+ def poll(cls, context):
+ from bpy_extras.asset_utils import SpaceAssetInfo
+ return SpaceAssetInfo.is_asset_browser_poll(context)
+
+
+class ASSETBROWSER_MT_editor_menus(AssetBrowserMenu, Menu):
+ bl_idname = "ASSETBROWSER_MT_editor_menus"
+ bl_label = ""
+
+ def draw(self, _context):
+ layout = self.layout
+
+ layout.menu("ASSETBROWSER_MT_view")
+ layout.menu("ASSETBROWSER_MT_select")
+
+
+class ASSETBROWSER_MT_view(AssetBrowserMenu, Menu):
+ bl_label = "View"
+
+ def draw(self, context):
+ layout = self.layout
+ st = context.space_data
+ params = st.params
+
+ layout.prop(st, "show_region_toolbar", text="Source List")
+ layout.prop(st, "show_region_tool_props", text="Asset Details")
+ layout.operator("file.view_selected")
+
+ layout.separator()
+
+ layout.prop_menu_enum(params, "display_size")
+
+ layout.separator()
+
+ layout.menu("INFO_MT_area")
+
+
+class ASSETBROWSER_MT_select(AssetBrowserMenu, Menu):
+ bl_label = "Select"
+
+ def draw(self, _context):
+ layout = self.layout
+
+ layout.operator("file.select_all", text="All").action = 'SELECT'
+ layout.operator("file.select_all", text="None").action = 'DESELECT'
+ layout.operator("file.select_all", text="Inverse").action = 'INVERT'
+
+ layout.separator()
+
+ layout.operator("file.select_box")
+
+
class ASSETBROWSER_PT_navigation_bar(asset_utils.AssetBrowserPanel, Panel):
bl_label = "Asset Navigation"
bl_region_type = 'TOOLS'
@@ -694,6 +755,9 @@ classes = (
FILEBROWSER_MT_view,
FILEBROWSER_MT_select,
FILEBROWSER_MT_context_menu,
+ ASSETBROWSER_MT_editor_menus,
+ ASSETBROWSER_MT_view,
+ ASSETBROWSER_MT_select,
ASSETBROWSER_PT_navigation_bar,
ASSETBROWSER_PT_metadata,
ASSETBROWSER_PT_metadata_preview,
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 1d4318602c2..796e62c8b2a 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -778,6 +778,19 @@ static void rna_Space_show_region_toolbar_update(bContext *C, PointerRNA *ptr)
rna_Space_bool_from_region_flag_update_by_type(C, ptr, RGN_TYPE_TOOLS, RGN_FLAG_HIDDEN);
}
+static bool rna_Space_show_region_tool_props_get(PointerRNA *ptr)
+{
+ return !rna_Space_bool_from_region_flag_get_by_type(ptr, RGN_TYPE_TOOL_PROPS, RGN_FLAG_HIDDEN);
+}
+static void rna_Space_show_region_tool_props_set(PointerRNA *ptr, bool value)
+{
+ rna_Space_bool_from_region_flag_set_by_type(ptr, RGN_TYPE_TOOL_PROPS, RGN_FLAG_HIDDEN, !value);
+}
+static void rna_Space_show_region_tool_props_update(bContext *C, PointerRNA *ptr)
+{
+ rna_Space_bool_from_region_flag_update_by_type(C, ptr, RGN_TYPE_TOOL_PROPS, RGN_FLAG_HIDDEN);
+}
+
/* Channels Region. */
static bool rna_Space_show_region_channels_get(PointerRNA *ptr)
{
@@ -3196,6 +3209,10 @@ static void rna_def_space_generic_show_region_toggles(StructRNA *srna, int regio
region_type_mask &= ~(1 << RGN_TYPE_TOOLS);
DEF_SHOW_REGION_PROPERTY(show_region_toolbar, "Toolbar", "");
}
+ if (region_type_mask & (1 << RGN_TYPE_TOOL_PROPS)) {
+ region_type_mask &= ~(1 << RGN_TYPE_TOOL_PROPS);
+ DEF_SHOW_REGION_PROPERTY(show_region_tool_props, "Toolbar", "");
+ }
if (region_type_mask & (1 << RGN_TYPE_CHANNELS)) {
region_type_mask &= ~(1 << RGN_TYPE_CHANNELS);
DEF_SHOW_REGION_PROPERTY(show_region_channels, "Channels", "");
@@ -6546,7 +6563,8 @@ static void rna_def_space_filebrowser(BlenderRNA *brna)
RNA_def_struct_sdna(srna, "SpaceFile");
RNA_def_struct_ui_text(srna, "Space File Browser", "File browser space data");
- rna_def_space_generic_show_region_toggles(srna, (1 << RGN_TYPE_TOOLS) | (1 << RGN_TYPE_UI));
+ rna_def_space_generic_show_region_toggles(
+ srna, (1 << RGN_TYPE_TOOLS) | (1 << RGN_TYPE_UI) | (1 << RGN_TYPE_TOOL_PROPS));
prop = RNA_def_property(srna, "browse_mode", PROP_ENUM, PROP_NONE);
RNA_def_property_enum_items(prop, rna_enum_space_file_browse_mode_items);