Changeset View
Changeset View
Standalone View
Standalone View
release/scripts/startup/bl_ui/space_filebrowser.py
| Show All 28 Lines | def draw(self, context): | ||||
| st = context.space_data | st = context.space_data | ||||
| params = st.params | params = st.params | ||||
| if st.active_operator is None: | if st.active_operator is None: | ||||
| layout.template_header() | layout.template_header() | ||||
| layout.menu("FILEBROWSER_MT_view") | layout.menu("FILEBROWSER_MT_view") | ||||
| row = layout.row(align=True) | # can be None when save/reload with a file selector open | ||||
| row.operator("file.previous", text="", icon='BACK') | |||||
| row.operator("file.next", text="", icon='FORWARD') | |||||
| row.operator("file.parent", text="", icon='FILE_PARENT') | |||||
| row.operator("file.refresh", text="", icon='FILE_REFRESH') | |||||
| layout.operator_context = 'EXEC_DEFAULT' | layout.separator_spacer() | ||||
| layout.operator("file.directory_new", icon='NEWFOLDER', text="") | |||||
| layout.operator_context = 'INVOKE_DEFAULT' | layout.template_running_jobs() | ||||
| class FILEBROWSER_PT_display(Panel): | |||||
| bl_space_type = 'FILE_BROWSER' | |||||
| bl_region_type = 'HEADER' | |||||
| bl_label = "Display" | |||||
| @classmethod | |||||
| def poll(cls, context): | |||||
| # can be None when save/reload with a file selector open | # can be None when save/reload with a file selector open | ||||
| if params: | return context.space_data.params is not None | ||||
| def draw(self, context): | |||||
| layout = self.layout | |||||
| space = context.space_data | |||||
| params = space.params | |||||
| is_lib_browser = params.use_library_browsing | is_lib_browser = params.use_library_browsing | ||||
| layout.prop(params, "display_type", expand=True, text="") | layout.label(text="Display as") | ||||
| layout.prop(params, "sort_method", expand=True, text="") | layout.column().prop(params, "display_type", expand=True) | ||||
| layout.prop(params, "show_hidden", text="", icon='FILE_HIDDEN') | |||||
| layout.separator_spacer() | layout.use_property_split = True | ||||
| layout.use_property_decorate = False # No animation. | |||||
| layout.template_running_jobs() | if params.display_type == 'THUMBNAIL': | ||||
| layout.prop(params, "display_size", text="Size") | |||||
| else: | |||||
| layout.prop(params, "show_details_size", text="Size") | |||||
| layout.prop(params, "show_details_datetime", text="Date") | |||||
| layout.prop(params, "recursion_level", text="Recursions") | |||||
| layout.use_property_split = False | |||||
| layout.separator() | |||||
| layout.label(text="Sort by") | |||||
| layout.column().prop(params, "sort_method", expand=True) | |||||
| layout.prop(params, "use_sort_invert") | |||||
| class FILEBROWSER_PT_filter(Panel): | |||||
| bl_space_type = 'FILE_BROWSER' | |||||
| bl_region_type = 'HEADER' | |||||
| bl_label = "Filter" | |||||
| @classmethod | |||||
| def poll(cls, context): | |||||
| # can be None when save/reload with a file selector open | |||||
| return context.space_data.params is not None | |||||
| def draw(self, context): | |||||
| layout = self.layout | |||||
| if params: | space = context.space_data | ||||
| layout.prop(params, "use_filter", text="", icon='FILTER') | params = space.params | ||||
| is_lib_browser = params.use_library_browsing | |||||
| row = layout.row(align=True) | row = layout.row(align=True) | ||||
| row.active = params.use_filter | row.prop(params, "use_filter", text="", toggle=0) | ||||
| row.prop(params, "use_filter_folder", text="") | row.label(text="Filter") | ||||
| col = layout.column() | |||||
| col.active = params.use_filter | |||||
| row = col.row() | |||||
| row.label(icon='FILE_FOLDER') | |||||
| row.prop(params, "use_filter_folder", text="Folders", toggle=0) | |||||
| if params.filter_glob: | if params.filter_glob: | ||||
| # if st.active_operator and hasattr(st.active_operator, "filter_glob"): | col.label(text=params.filter_glob) | ||||
| # row.prop(params, "filter_glob", text="") | |||||
| row.label(text=params.filter_glob) | |||||
| else: | else: | ||||
| row.prop(params, "use_filter_blender", text="") | row = col.row() | ||||
| row.prop(params, "use_filter_backup", text="") | row.label(icon='FILE_BLEND') | ||||
| row.prop(params, "use_filter_image", text="") | row.prop(params, "use_filter_blender", | ||||
| row.prop(params, "use_filter_movie", text="") | text=".blend Files", toggle=0) | ||||
| row.prop(params, "use_filter_script", text="") | row = col.row() | ||||
| row.prop(params, "use_filter_font", text="") | row.label(icon='FILE_BACKUP') | ||||
| row.prop(params, "use_filter_sound", text="") | row.prop(params, "use_filter_backup", | ||||
| row.prop(params, "use_filter_text", text="") | text="Backup .blend Files", toggle=0) | ||||
| row = col.row() | |||||
| row.label(icon='FILE_IMAGE') | |||||
| row.prop(params, "use_filter_image", text="Image Files", toggle=0) | |||||
| row = col.row() | |||||
| row.label(icon='FILE_MOVIE') | |||||
| row.prop(params, "use_filter_movie", text="Movie Files", toggle=0) | |||||
| row = col.row() | |||||
| row.label(icon='FILE_SCRIPT') | |||||
| row.prop(params, "use_filter_script", | |||||
| text="Script Files", toggle=0) | |||||
| row = col.row() | |||||
| row.label(icon='FILE_FONT') | |||||
| row.prop(params, "use_filter_font", text="Font Files", toggle=0) | |||||
| row = col.row() | |||||
| row.label(icon='FILE_SOUND') | |||||
| row.prop(params, "use_filter_sound", text="Sound Files", toggle=0) | |||||
| row = col.row() | |||||
| row.label(icon='FILE_TEXT') | |||||
| row.prop(params, "use_filter_text", text="Text Files", toggle=0) | |||||
| col.separator() | |||||
| if is_lib_browser: | if is_lib_browser: | ||||
| row.prop(params, "use_filter_blendid", text="") | row = col.row() | ||||
| row.label(icon='BLANK1') # Indentation | |||||
| row.prop(params, "use_filter_blendid", | |||||
| text="Blender IDs", toggle=0) | |||||
| if params.use_filter_blendid: | if params.use_filter_blendid: | ||||
| row.separator() | row = col.row() | ||||
| row.label(icon='BLANK1') # Indentation | |||||
| row.prop(params, "filter_id_category", text="") | row.prop(params, "filter_id_category", text="") | ||||
| row.separator() | col.separator() | ||||
| row.prop(params, "filter_search", text="", icon='VIEWZOOM') | |||||
| layout.prop(params, "show_hidden") | |||||
| def panel_poll_is_upper_region(region): | |||||
| # The upper region is left-aligned, the lower is split into it then. | |||||
| return region.alignment == 'LEFT' | |||||
| class FILEBROWSER_UL_dir(UIList): | class FILEBROWSER_UL_dir(UIList): | ||||
| def draw_item(self, _context, layout, _data, item, icon, _active_data, active_propname, _index): | def draw_item(self, _context, layout, _data, item, icon, _active_data, active_propname, _index): | ||||
| direntry = item | direntry = item | ||||
| # space = context.space_data | # space = context.space_data | ||||
| icon = 'NONE' | icon = 'NONE' | ||||
| if active_propname == "system_folders_active": | if active_propname == "system_folders_active": | ||||
| Show All 17 Lines | def draw_item(self, _context, layout, _data, item, icon, _active_data, active_propname, _index): | ||||
| elif self.layout_type == 'GRID': | elif self.layout_type == 'GRID': | ||||
| layout.alignment = 'CENTER' | layout.alignment = 'CENTER' | ||||
| layout.prop(direntry, "path", text="") | layout.prop(direntry, "path", text="") | ||||
| class FILEBROWSER_PT_bookmarks_volumes(Panel): | class FILEBROWSER_PT_bookmarks_volumes(Panel): | ||||
| bl_space_type = 'FILE_BROWSER' | bl_space_type = 'FILE_BROWSER' | ||||
| bl_region_type = 'TOOLS' | bl_region_type = 'TOOLS' | ||||
| bl_options = {'DEFAULT_CLOSED'} | |||||
| bl_category = "Bookmarks" | bl_category = "Bookmarks" | ||||
| bl_label = "Volumes" | bl_label = "Volumes" | ||||
| @classmethod | |||||
| def poll(cls, context): | |||||
| return panel_poll_is_upper_region(context.region) | |||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| space = context.space_data | space = context.space_data | ||||
| if space.system_folders: | if space.system_folders: | ||||
| row = layout.row() | row = layout.row() | ||||
| row.template_list("FILEBROWSER_UL_dir", "system_folders", space, "system_folders", | row.template_list("FILEBROWSER_UL_dir", "system_folders", space, "system_folders", | ||||
| space, "system_folders_active", item_dyntip_propname="path", rows=1, maxrows=10) | space, "system_folders_active", item_dyntip_propname="path", rows=1, maxrows=10) | ||||
| class FILEBROWSER_PT_bookmarks_system(Panel): | class FILEBROWSER_PT_bookmarks_system(Panel): | ||||
| bl_space_type = 'FILE_BROWSER' | bl_space_type = 'FILE_BROWSER' | ||||
| bl_region_type = 'TOOLS' | bl_region_type = 'TOOLS' | ||||
| bl_category = "Bookmarks" | bl_category = "Bookmarks" | ||||
| bl_label = "System" | bl_label = "System" | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| return not context.preferences.filepaths.hide_system_bookmarks | return not context.preferences.filepaths.hide_system_bookmarks and panel_poll_is_upper_region(context.region) | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| space = context.space_data | space = context.space_data | ||||
| if space.system_bookmarks: | if space.system_bookmarks: | ||||
| row = layout.row() | row = layout.row() | ||||
| row.template_list("FILEBROWSER_UL_dir", "system_bookmarks", space, "system_bookmarks", | row.template_list("FILEBROWSER_UL_dir", "system_bookmarks", space, "system_bookmarks", | ||||
| space, "system_bookmarks_active", item_dyntip_propname="path", rows=1, maxrows=10) | space, "system_bookmarks_active", item_dyntip_propname="path", rows=1, maxrows=10) | ||||
| class FILEBROWSER_MT_bookmarks_context_menu(Menu): | class FILEBROWSER_MT_bookmarks_context_menu(Menu): | ||||
| bl_label = "Bookmarks Specials" | bl_label = "Bookmarks Specials" | ||||
| def draw(self, _context): | def draw(self, _context): | ||||
| layout = self.layout | layout = self.layout | ||||
| layout.operator("file.bookmark_cleanup", icon='X', text="Cleanup") | layout.operator("file.bookmark_cleanup", icon='X', text="Cleanup") | ||||
| layout.separator() | layout.separator() | ||||
| layout.operator("file.bookmark_move", icon='TRIA_UP_BAR', text="Move To Top").direction = 'TOP' | layout.operator("file.bookmark_move", icon='TRIA_UP_BAR', | ||||
| layout.operator("file.bookmark_move", icon='TRIA_DOWN_BAR', text="Move To Bottom").direction = 'BOTTOM' | text="Move To Top").direction = 'TOP' | ||||
| layout.operator("file.bookmark_move", icon='TRIA_DOWN_BAR', | |||||
| text="Move To Bottom").direction = 'BOTTOM' | |||||
| class FILEBROWSER_PT_bookmarks_favorites(Panel): | class FILEBROWSER_PT_bookmarks_favorites(Panel): | ||||
| bl_space_type = 'FILE_BROWSER' | bl_space_type = 'FILE_BROWSER' | ||||
| bl_region_type = 'TOOLS' | bl_region_type = 'TOOLS' | ||||
| bl_category = "Bookmarks" | bl_category = "Bookmarks" | ||||
| bl_label = "Favorites" | bl_label = "Favorites" | ||||
| @classmethod | |||||
| def poll(cls, context): | |||||
| return panel_poll_is_upper_region(context.region) | |||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| space = context.space_data | space = context.space_data | ||||
| if space.bookmarks: | if space.bookmarks: | ||||
| row = layout.row() | row = layout.row() | ||||
| num_rows = len(space.bookmarks) | num_rows = len(space.bookmarks) | ||||
| row.template_list("FILEBROWSER_UL_dir", "bookmarks", space, "bookmarks", | row.template_list("FILEBROWSER_UL_dir", "bookmarks", space, "bookmarks", | ||||
| space, "bookmarks_active", item_dyntip_propname="path", | space, "bookmarks_active", item_dyntip_propname="path", | ||||
| rows=(2 if num_rows < 2 else 4), maxrows=10) | rows=(2 if num_rows < 2 else 4), maxrows=10) | ||||
| col = row.column(align=True) | col = row.column(align=True) | ||||
| col.operator("file.bookmark_add", icon='ADD', text="") | col.operator("file.bookmark_add", icon='ADD', text="") | ||||
| col.operator("file.bookmark_delete", icon='REMOVE', text="") | col.operator("file.bookmark_delete", icon='REMOVE', text="") | ||||
| col.menu("FILEBROWSER_MT_bookmarks_context_menu", icon='DOWNARROW_HLT', text="") | col.menu("FILEBROWSER_MT_bookmarks_context_menu", | ||||
| icon='DOWNARROW_HLT', text="") | |||||
| if num_rows > 1: | if num_rows > 1: | ||||
| col.separator() | col.separator() | ||||
| col.operator("file.bookmark_move", icon='TRIA_UP', text="").direction = 'UP' | col.operator("file.bookmark_move", icon='TRIA_UP', | ||||
| col.operator("file.bookmark_move", icon='TRIA_DOWN', text="").direction = 'DOWN' | text="").direction = 'UP' | ||||
| col.operator("file.bookmark_move", icon='TRIA_DOWN', | |||||
| text="").direction = 'DOWN' | |||||
| else: | else: | ||||
| layout.operator("file.bookmark_add", icon='ADD') | layout.operator("file.bookmark_add", icon='ADD') | ||||
| class FILEBROWSER_PT_bookmarks_recents(Panel): | class FILEBROWSER_PT_bookmarks_recents(Panel): | ||||
| bl_space_type = 'FILE_BROWSER' | bl_space_type = 'FILE_BROWSER' | ||||
| bl_region_type = 'TOOLS' | bl_region_type = 'TOOLS' | ||||
| bl_category = "Bookmarks" | bl_category = "Bookmarks" | ||||
| bl_label = "Recents" | bl_label = "Recents" | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| return not context.preferences.filepaths.hide_recent_locations | return not context.preferences.filepaths.hide_recent_locations and panel_poll_is_upper_region(context.region) | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| space = context.space_data | space = context.space_data | ||||
| if space.recent_folders: | if space.recent_folders: | ||||
| row = layout.row() | row = layout.row() | ||||
| row.template_list("FILEBROWSER_UL_dir", "recent_folders", space, "recent_folders", | row.template_list("FILEBROWSER_UL_dir", "recent_folders", space, "recent_folders", | ||||
| space, "recent_folders_active", item_dyntip_propname="path", rows=1, maxrows=10) | space, "recent_folders_active", item_dyntip_propname="path", rows=1, maxrows=10) | ||||
| col = row.column(align=True) | col = row.column(align=True) | ||||
| col.operator("file.reset_recent", icon='X', text="") | col.operator("file.reset_recent", icon='X', text="") | ||||
| class FILEBROWSER_PT_advanced_filter(Panel): | class FILEBROWSER_PT_advanced_filter(Panel): | ||||
| bl_space_type = 'FILE_BROWSER' | bl_space_type = 'FILE_BROWSER' | ||||
| bl_region_type = 'TOOLS' | bl_region_type = 'TOOLS' | ||||
| bl_category = "Filter" | bl_category = "Filter" | ||||
| bl_label = "Advanced Filter" | bl_label = "Advanced Filter" | ||||
| @classmethod | @classmethod | ||||
| def poll(cls, context): | def poll(cls, context): | ||||
| # only useful in append/link (library) context currently... | # only useful in append/link (library) context currently... | ||||
| return context.space_data.params.use_library_browsing | return context.space_data.params.use_library_browsing and panel_poll_is_upper_region(context.region) | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| space = context.space_data | space = context.space_data | ||||
| params = space.params | params = space.params | ||||
| if params and params.use_library_browsing: | if params and params.use_library_browsing: | ||||
| layout.prop(params, "use_filter_blendid") | layout.prop(params, "use_filter_blendid") | ||||
| if params.use_filter_blendid: | if params.use_filter_blendid: | ||||
| layout.separator() | layout.separator() | ||||
| col = layout.column() | col = layout.column() | ||||
| col.prop(params, "filter_id") | col.prop(params, "filter_id") | ||||
| class FILEBROWSER_PT_options_toggle(Panel): | |||||
| bl_space_type = 'FILE_BROWSER' | |||||
| bl_region_type = 'TOOLS' | |||||
| bl_label = "Options Toggle" | |||||
| bl_options = {'HIDE_HEADER'} | |||||
| @classmethod | |||||
| def poll(cls, context): | |||||
| sfile = context.space_data | |||||
| return context.region.alignment == 'BOTTOM' and sfile.active_operator | |||||
| def is_option_region_visible(self, context): | |||||
| for region in context.area.regions: | |||||
| if region.type == 'TOOL_PROPS' and region.width <= 1: | |||||
| return False | |||||
| return True | |||||
| def draw(self, context): | |||||
| layout = self.layout | |||||
| label = "Hide Options" if self.is_option_region_visible( | |||||
| context) else "Options" | |||||
| layout.scale_x = 1.3 | |||||
| layout.scale_y = 1.3 | |||||
| layout.operator("screen.region_toggle", | |||||
| text=label).region_type = 'TOOL_PROPS' | |||||
| class FILEBROWSER_PT_directory_path(Panel): | |||||
| bl_space_type = 'FILE_BROWSER' | |||||
| bl_region_type = 'UI' | |||||
| bl_label = "Directory Path" | |||||
| bl_category = "Attributes" | |||||
| bl_options = {'HIDE_HEADER'} | |||||
| def is_header_visible(self, context): | |||||
| for region in context.area.regions: | |||||
| if region.type == 'HEADER' and region.height <= 1: | |||||
| return False | |||||
| return True | |||||
| def draw(self, context): | |||||
| layout = self.layout | |||||
| space = context.space_data | |||||
| params = space.params | |||||
| layout.scale_x = 1.3 | |||||
| layout.scale_y = 1.3 | |||||
| row = layout.row() | |||||
| subrow = row.row(align=True) | |||||
| subrow.operator("file.previous", text="", icon='BACK') | |||||
| subrow.operator("file.next", text="", icon='FORWARD') | |||||
| subrow.operator("file.parent", text="", icon='FILE_PARENT') | |||||
| subrow.operator("file.refresh", text="", icon='FILE_REFRESH') | |||||
| row.operator("file.directory_new", icon='NEWFOLDER', text="") | |||||
| subrow = row.row() | |||||
| subrow.prop(params, "directory", text="") | |||||
| subrow = row.row() | |||||
| subrow.scale_x = 0.5 | |||||
| subrow.prop(params, "filter_search", text="", icon='VIEWZOOM') | |||||
| # Uses prop_with_popover() as popover() only adds the triangle icon in headers. | |||||
| row.prop_with_popover( | |||||
| params, | |||||
| "display_type", | |||||
| panel="FILEBROWSER_PT_display", | |||||
| text="", | |||||
| icon_only=True, | |||||
| ) | |||||
| row.prop_with_popover( | |||||
| params, | |||||
| "display_type", | |||||
| panel="FILEBROWSER_PT_filter", | |||||
| text="", | |||||
| icon='FILTER', | |||||
| icon_only=True, | |||||
| ) | |||||
| class FILEBROWSER_PT_file_operation(Panel): | |||||
| bl_space_type = 'FILE_BROWSER' | |||||
| bl_region_type = 'EXECUTE' | |||||
| bl_label = "Execute File Operation" | |||||
| bl_options = {'HIDE_HEADER'} | |||||
| @classmethod | |||||
| def poll(cls, context): | |||||
| return context.space_data.active_operator | |||||
| def draw(self, context): | |||||
| import sys | |||||
| layout = self.layout | |||||
| space = context.space_data | |||||
| params = space.params | |||||
| layout.scale_x = 1.3 | |||||
| layout.scale_y = 1.3 | |||||
| row = layout.row() | |||||
| sub = row.row() | |||||
| sub.prop(params, "filename", text="") | |||||
| sub = row.row() | |||||
| sub.ui_units_x = 5 | |||||
| # subsub = sub.row(align=True) | |||||
| # subsub.operator("file.filenum", text="", icon='ADD').increment = 1 | |||||
| # subsub.operator("file.filenum", text="", icon='REMOVE').increment = -1 | |||||
| # organize buttons according to the OS standard | |||||
| if sys.platform != "win": | |||||
| sub.operator("FILE_OT_cancel", text="Cancel") | |||||
| subsub = sub.row() | |||||
| subsub.active_default = True | |||||
| subsub.operator("FILE_OT_execute", text=params.title) | |||||
| if sys.platform == "win": | |||||
| sub.operator("FILE_OT_cancel", text="Cancel") | |||||
| class FILEBROWSER_MT_view(Menu): | class FILEBROWSER_MT_view(Menu): | ||||
| bl_label = "View" | bl_label = "View" | ||||
| def draw(self, context): | def draw(self, context): | ||||
| layout = self.layout | layout = self.layout | ||||
| st = context.space_data | st = context.space_data | ||||
| params = st.params | params = st.params | ||||
| layout.prop(st, "show_region_toolbar") | layout.prop(st, "show_region_toolbar", text="Source List") | ||||
| layout.prop(st, "show_region_ui", text="File Path") | layout.prop(st, "show_region_ui", text="File Path") | ||||
| layout.separator() | layout.separator() | ||||
| layout.prop_menu_enum(params, "display_size") | layout.prop_menu_enum(params, "display_size") | ||||
| layout.prop_menu_enum(params, "recursion_level") | layout.prop_menu_enum(params, "recursion_level") | ||||
| layout.separator() | layout.separator() | ||||
| layout.menu("INFO_MT_area") | layout.menu("INFO_MT_area") | ||||
| class FILEBROWSER_MT_context_menu(Menu): | |||||
| bl_label = "Files Context Menu" | |||||
| def draw(self, context): | |||||
| layout = self.layout | |||||
| st = context.space_data | |||||
| params = st.params | |||||
| layout.operator("file.previous", text="Back") | |||||
| layout.operator("file.next", text="Forward") | |||||
| layout.operator("file.parent", text="Go to Parent") | |||||
| layout.operator("file.refresh", text="Refresh") | |||||
| layout.separator() | |||||
| layout.operator("file.filenum", text="Increase Number", | |||||
| icon='ADD').increment = 1 | |||||
| layout.operator("file.filenum", text="Decrease Number", | |||||
| icon='REMOVE').increment = -1 | |||||
| layout.separator() | |||||
| layout.operator("file.rename", text="Rename") | |||||
| # layout.operator("file.delete") | |||||
| layout.operator("file.directory_new", text="New Folder") | |||||
| layout.operator("file.bookmark_add", text="Add Bookmark") | |||||
| layout.separator() | |||||
| layout.prop_menu_enum(params, "display_type") | |||||
| if params.display_type == 'THUMBNAIL': | |||||
| layout.prop_menu_enum(params, "display_size") | |||||
| layout.prop_menu_enum(params, "recursion_level", text="Recursions") | |||||
| layout.prop_menu_enum(params, "sort_method") | |||||
| classes = ( | classes = ( | ||||
| FILEBROWSER_HT_header, | FILEBROWSER_HT_header, | ||||
| FILEBROWSER_PT_display, | |||||
| FILEBROWSER_PT_filter, | |||||
| FILEBROWSER_UL_dir, | FILEBROWSER_UL_dir, | ||||
| FILEBROWSER_PT_bookmarks_volumes, | FILEBROWSER_PT_bookmarks_volumes, | ||||
| FILEBROWSER_PT_bookmarks_system, | FILEBROWSER_PT_bookmarks_system, | ||||
| FILEBROWSER_MT_bookmarks_context_menu, | FILEBROWSER_MT_bookmarks_context_menu, | ||||
| FILEBROWSER_PT_bookmarks_favorites, | FILEBROWSER_PT_bookmarks_favorites, | ||||
| FILEBROWSER_PT_bookmarks_recents, | FILEBROWSER_PT_bookmarks_recents, | ||||
| FILEBROWSER_PT_advanced_filter, | FILEBROWSER_PT_advanced_filter, | ||||
| FILEBROWSER_PT_directory_path, | |||||
| FILEBROWSER_PT_file_operation, | |||||
| FILEBROWSER_PT_options_toggle, | |||||
| FILEBROWSER_MT_view, | FILEBROWSER_MT_view, | ||||
| FILEBROWSER_MT_context_menu, | |||||
| ) | ) | ||||
| if __name__ == "__main__": # only for live edit. | if __name__ == "__main__": # only for live edit. | ||||
| from bpy.utils import register_class | from bpy.utils import register_class | ||||
| for cls in classes: | for cls in classes: | ||||
| register_class(cls) | register_class(cls) | ||||