diff options
author | Ryan Inch <mythologylover75@gmail.com> | 2020-06-25 07:33:35 +0300 |
---|---|---|
committer | Ryan Inch <mythologylover75@gmail.com> | 2020-06-25 07:33:35 +0300 |
commit | 2aa47457996acac2fa0d1505b7699e1a1da62010 (patch) | |
tree | 302d691dd3050c8780a7b214547459fe7c181c44 /object_collection_manager | |
parent | c20728941cf32e9cbe2f0bcd6ebae27bb6d01238 (diff) |
Collection Manager: Add alignment options. Task: T69577
Add an option to display RTOs and other operators aligned to the right.
Renamed the Filter Restrictions Toggle popover to Display Options.
Added a line separator between collections in the tree view.
Diffstat (limited to 'object_collection_manager')
-rw-r--r-- | object_collection_manager/__init__.py | 9 | ||||
-rw-r--r-- | object_collection_manager/ui.py | 90 |
2 files changed, 74 insertions, 25 deletions
diff --git a/object_collection_manager/__init__.py b/object_collection_manager/__init__.py index 33e4c6e0..6a1a9f22 100644 --- a/object_collection_manager/__init__.py +++ b/object_collection_manager/__init__.py @@ -22,7 +22,7 @@ bl_info = { "name": "Collection Manager", "description": "Manage collections and their objects", "author": "Ryan Inch", - "version": (2, 7, 26), + "version": (2, 8, 0), "blender": (2, 80, 0), "location": "View3D - Object Mode (Shortcut - M)", "warning": '', # used for warning icon and text in addons panel @@ -78,10 +78,15 @@ class CollectionManagerProperties(PropertyGroup): show_disable_viewport: BoolProperty(default=False, name="[DV] Disable in Viewports") show_render: BoolProperty(default=False, name="[RR] Disable in Renders") + align_local_ops: BoolProperty(default=False, name="Align Local Options", + description="Align local options in a column to the right") + in_phantom_mode: BoolProperty(default=False) update_header: CollectionProperty(type=internals.CMListCollection) + ui_separator: StringProperty(name="", default="") + qcd_slots_blend_data: StringProperty() @@ -110,7 +115,7 @@ classes = ( preferences.CMPreferences, ui.CM_UL_items, ui.CollectionManager, - ui.CMRestrictionTogglesPanel, + ui.CMDisplayOptionsPanel, CollectionManagerProperties, ) diff --git a/object_collection_manager/ui.py b/object_collection_manager/ui.py index 812310dd..8516ecf9 100644 --- a/object_collection_manager/ui.py +++ b/object_collection_manager/ui.py @@ -141,7 +141,7 @@ class CollectionManager(Operator): filter_sec = button_row.row() filter_sec.alignment = 'RIGHT' - filter_sec.popover(panel="COLLECTIONMANAGER_PT_restriction_toggles", + filter_sec.popover(panel="COLLECTIONMANAGER_PT_display_options", text="", icon='FILTER') mc_box = layout.box() @@ -450,9 +450,17 @@ class CM_UL_items(UIList): selected_objects = get_move_selection() active_object = get_move_active() - split = layout.split(factor=0.96) - row = split.row(align=True) - row.alignment = 'LEFT' + column = layout.column(align=True) + + main_row = column.row() + + s1 = main_row.row(align=True) + s1.alignment = 'LEFT' + + s2 = main_row.row(align=True) + s2.alignment = 'RIGHT' + + row = s1 # allow room to select the row from the beginning row.separator() @@ -505,20 +513,22 @@ class CM_UL_items(UIList): QCD.scale_x = 0.4 QCD.prop(item, "qcd_slot_idx", text="") - name_row = row.row() + c_name = row.row() #if rename[0] and index == cm.cm_list_index: - #name_row.activate_init = True + #c_name.activate_init = True #rename[0] = False - name_row.prop(item, "name", text="", expand=True) + c_name.prop(item, "name", text="", expand=True) # used as a separator (actual separator not wide enough) row.label() + row = s2 if cm.align_local_ops else s1 + # add set_collection op - row_setcol = row.row() - row_setcol.operator_context = 'INVOKE_DEFAULT' + set_obj_col = row.row() + set_obj_col.operator_context = 'INVOKE_DEFAULT' icon = 'MESH_CUBE' @@ -530,10 +540,10 @@ class CM_UL_items(UIList): icon = 'STICKY_UVS_LOC' else: - row_setcol.enabled = False + set_obj_col.enabled = False - prop = row_setcol.operator("view3d.set_collection", text="", + prop = set_obj_col.operator("view3d.set_collection", text="", icon=icon, emboss=False) prop.collection_index = laycol["id"] prop.collection_name = item.name @@ -598,15 +608,35 @@ class CM_UL_items(UIList): emboss=highlight, depress=highlight).name = item.name - rm_op = split.row() - rm_op.alignment = 'RIGHT' + + row = s2 + + row.separator() + row.separator() + + rm_op = row.row() rm_op.operator("view3d.remove_collection", text="", icon='X', emboss=False).collection_name = item.name + + if len(data.cm_list_collection) > index + 1: + line_separator = column.row(align=True) + line_separator.ui_units_y = 0.01 + line_separator.scale_y = 0.1 + line_separator.enabled = False + + line_separator.separator() + line_separator.label(icon='BLANK1') + + for _ in range(laycol["lvl"] + 1): + line_separator.label(icon='BLANK1') + + line_separator.prop(cm, "ui_separator") + if cm.in_phantom_mode: c_icon.enabled = False - name_row.enabled = False - row_setcol.enabled = False + c_name.enabled = False + set_obj_col.enabled = False rm_op.enabled = False if prefs.enable_qcd: @@ -669,29 +699,43 @@ class CM_UL_items(UIList): pass -class CMRestrictionTogglesPanel(Panel): - bl_label = "Restriction Toggles" - bl_idname = "COLLECTIONMANAGER_PT_restriction_toggles" +class CMDisplayOptionsPanel(Panel): + bl_label = "Display Options" + bl_idname = "COLLECTIONMANAGER_PT_display_options" bl_space_type = 'VIEW_3D' - bl_region_type = 'HEADER' + bl_region_type = 'UI' + bl_category = "Collection Manager" def draw(self, context): cm = context.scene.collection_manager layout = self.layout - name_row = layout.row() - name_row.alignment = 'LEFT' - name_row.label(text="Filter Restriction Toggles") + panel_header = layout.row() + panel_header.alignment = 'CENTER' + panel_header.label(text="Display Options") - row = layout.row() + layout.separator() + section_header = layout.row() + section_header.alignment = 'LEFT' + section_header.label(text="Restriction Toggles") + + row = layout.row() row.prop(cm, "show_exclude", icon='CHECKBOX_HLT', icon_only=True) row.prop(cm, "show_selectable", icon='RESTRICT_SELECT_OFF', icon_only=True) row.prop(cm, "show_hide_viewport", icon='HIDE_OFF', icon_only=True) row.prop(cm, "show_disable_viewport", icon='RESTRICT_VIEW_OFF', icon_only=True) row.prop(cm, "show_render", icon='RESTRICT_RENDER_OFF', icon_only=True) + layout.separator() + + section_header = layout.row() + section_header.label(text="Layout") + + row = layout.row() + row.prop(cm, "align_local_ops") + def view3d_header_qcd_slots(self, context): layout = self.layout |