OverviewFilesCommitsIssuesDocsReleasesPeers

hardops / ui / draw / workflow.py

56 lines · python ref:
import bpy
from ... utility import addon
from ... utility import modifier

def draw(column, context):

    preference = addon.preference().property

    row = column.row(align=True)
    row.label(text = "Behavior / Boolean Solver ")

    box = column.box()
    row = box.row(align=True)
    row.prop(preference, 'workflow', expand=True)

    if bpy.app.version[:2] >= (4, 5):
        row = box.row(align=True)
        row.prop(preference, 'workflow_modifier', expand=True)

    row = box.row(align=True)
    row.prop(preference, 'boolean_solver', expand=True)

    box = column.box()

    row = box.row(align=True)
    row.prop(preference, 'sort_modifiers', text='Sort Modifier', expand=True)

    if preference.sort_modifiers:
        row = row.row(align=True)
        row.scale_x = 1.5
        row.alignment = 'RIGHT'
        split = row.split(align=True, factor=0.85)

        row = split.row(align=True)
        for type in modifier.sort_types:
            icon = F'MOD_{type}'
            if icon == 'MOD_WEIGHTED_NORMAL':
                icon = 'MOD_NORMALEDIT'
            elif icon == 'MOD_SIMPLE_DEFORM':
                icon = 'MOD_SIMPLEDEFORM'
            elif icon == 'MOD_DECIMATE':
                icon = 'MOD_DECIM'
            elif icon == 'MOD_WELD':
                icon = 'AUTOMERGE_OFF'
            elif icon == 'MOD_UV_PROJECT':
                icon = 'MOD_UVPROJECT'
            elif icon == 'MOD_NODES':
                icon = 'GEOMETRY_NODES'
            row.prop(preference, F'sort_{type.lower()}', text='', icon=icon)

        row = split.row(align=True)
        row.scale_x = 1.5
        row.popover('HOPS_PT_sort_last', text='', icon='SORT_ASC')

    column.separator()