diff options
author | mano-wii <germano.costa@ig.com.br> | 2019-03-18 21:51:09 +0300 |
---|---|---|
committer | mano-wii <germano.costa@ig.com.br> | 2019-03-18 21:51:09 +0300 |
commit | 742fa2002ee416cddcc81e90ca8dbaa5ab520428 (patch) | |
tree | 6e07f282107c044c21f1e1cc68691904625e12ba /mesh_snap_utilities_line/preferences.py | |
parent | 4aa080a1c338177ade30534f5d4ba20423446a8d (diff) |
mesh_snap_utilities_line: Update for changes in Blender
Diffstat (limited to 'mesh_snap_utilities_line/preferences.py')
-rw-r--r-- | mesh_snap_utilities_line/preferences.py | 116 |
1 files changed, 91 insertions, 25 deletions
diff --git a/mesh_snap_utilities_line/preferences.py b/mesh_snap_utilities_line/preferences.py index 7361284e..11b91dc4 100644 --- a/mesh_snap_utilities_line/preferences.py +++ b/mesh_snap_utilities_line/preferences.py @@ -16,6 +16,7 @@ # ##### END GPL LICENSE BLOCK ##### import bpy + from bpy.props import ( EnumProperty, StringProperty, @@ -25,6 +26,10 @@ from bpy.props import ( FloatProperty, ) +from bpy.app.translations import contexts as i18n_contexts + +import rna_keymap_ui + class SnapUtilitiesPreferences(bpy.types.AddonPreferences): # this must match the addon name, use '__package__' @@ -67,38 +72,47 @@ class SnapUtilitiesPreferences(bpy.types.AddonPreferences): step=1, precision=3) - out_color: FloatVectorProperty(name="OUT", default=(0.0, 0.0, 0.0, 0.5), size=4, subtype="COLOR", min=0, max=1) - face_color: FloatVectorProperty(name="FACE", default=(1.0, 0.8, 0.0, 0.5), size=4, subtype="COLOR", min=0, max=1) - edge_color: FloatVectorProperty(name="EDGE", default=(0.0, 0.8, 1.0, 0.5), size=4, subtype="COLOR", min=0, max=1) - vert_color: FloatVectorProperty(name="VERT", default=(1.0, 0.5, 0.0, 0.5), size=4, subtype="COLOR", min=0, max=1) - center_color: FloatVectorProperty(name="CENTER", default=(1.0, 0.0, 1.0, 1.0), size=4, subtype="COLOR", min=0, max=1) - perpendicular_color: FloatVectorProperty(name="PERPENDICULAR", default=(0.1, 0.5, 0.5, 1.0), size=4, subtype="COLOR", min=0, max=1) - constrain_shift_color: FloatVectorProperty(name="SHIFT CONSTRAIN", default=(0.8, 0.5, 0.4, 1.0), size=4, subtype="COLOR", min=0, max=1) + out_color: FloatVectorProperty(name="Floor", default=(0.0, 0.0, 0.0, 0.5), size=4, subtype="COLOR", min=0, max=1) + face_color: FloatVectorProperty(name="Face Highlighted", default=(1.0, 0.8, 0.0, 0.5), size=4, subtype="COLOR", min=0, max=1) + edge_color: FloatVectorProperty(name="Edge Highlighted", default=(0.0, 0.8, 1.0, 0.5), size=4, subtype="COLOR", min=0, max=1) + vert_color: FloatVectorProperty(name="Vertex Highlighted", default=(1.0, 0.5, 0.0, 0.5), size=4, subtype="COLOR", min=0, max=1) + center_color: FloatVectorProperty(name="Middle of the Edge", default=(1.0, 0.0, 1.0, 1.0), size=4, subtype="COLOR", min=0, max=1) + perpendicular_color: FloatVectorProperty(name="Perpendicular Point", default=(0.1, 0.5, 0.5, 1.0), size=4, subtype="COLOR", min=0, max=1) + constrain_shift_color: FloatVectorProperty(name="Shift Constrain", default=(0.8, 0.5, 0.4, 1.0), size=4, subtype="COLOR", min=0, max=1) + + # hidden + tabs: EnumProperty( + name="Tabs", + items = [ + ("GENERAL", "General", ""), + ("KEYMAPS", "Keymaps", ""), + ("COLORS", "Colors", ""), + ], + default="GENERAL") def draw(self, context): layout = self.layout - layout.label(text="Snap Colors:") - split = layout.split() - - col = split.column() - col.prop(self, "out_color") - col.prop(self, "constrain_shift_color") - col = split.column() - col.prop(self, "face_color") - col = split.column() - col.prop(self, "edge_color") - col = split.column() - col.prop(self, "vert_color") - col = split.column() - col.prop(self, "center_color") - col = split.column() - col.prop(self, "perpendicular_color") - + # TAB BAR row = layout.row() + row.prop(self, "tabs", expand=True) + + box = layout.box() + + if self.tabs == "GENERAL": + self.draw_general(box) + if self.tabs == "COLORS": + self.draw_snap_utilities_colors(box) + + elif self.tabs == "KEYMAPS": + self.draw_snap_utilities_keymaps(context, box) + + def draw_general(self, layout): + row = layout.row() col = row.column() - #col.label(text="Snap Items:") + + col.label(text="Snap Properties:") col.prop(self, "incremental") col.prop(self, "increments_grid") if self.increments_grid: @@ -111,3 +125,55 @@ class SnapUtilitiesPreferences(bpy.types.AddonPreferences): col.label(text="Line Tool:") col.prop(self, "intersect") col.prop(self, "create_face") + + def draw_snap_utilities_colors(self, layout): + layout.use_property_split = True + + flow = layout.grid_flow(row_major=False, columns=0, even_columns=True, even_rows=False, align=False) + + flow.prop(self, "out_color") + flow.prop(self, "constrain_shift_color") + flow.prop(self, "face_color") + flow.prop(self, "edge_color") + flow.prop(self, "vert_color") + flow.prop(self, "center_color") + flow.prop(self, "perpendicular_color") + + def draw_snap_utilities_keymaps(self, context, layout): + from .keys import ( + generate_snap_utilities_global_keymaps, + generate_snap_utilities_tools_keymaps, + ) + + wm = context.window_manager + #kc = wm.keyconfigs.addon + kc = wm.keyconfigs.user + + layout.label(text="Global:") + + for km_name, km_args, km_content in generate_snap_utilities_global_keymaps(): + km = kc.keymaps.get(km_name) + if km: + self.draw_snap_utilities_km(kc, km, layout) + + layout.label(text="Tools:") + + for km_name, km_args, km_content in generate_snap_utilities_tools_keymaps(): + km = kc.keymaps.get(km_name) + if km: + self.draw_snap_utilities_km(kc, km, layout) + + @staticmethod + def draw_snap_utilities_km(kc, km, layout): + layout.context_pointer_set("keymap", km) + + row = layout.row() + row.prop(km, "show_expanded_items", text="", emboss=False) + row.label(text=km.name, text_ctxt=i18n_contexts.id_windowmanager) + + if km.show_expanded_items: + col = layout.column() + + for kmi in km.keymap_items: + if "snap_utilities" in kmi.idname: + rna_keymap_ui.draw_kmi(["ADDON", "USER", "DEFAULT"], kc, km, kmi, col, 0) |