From e1293da01404ce2ae865e8a184c444715f747431 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 8 Oct 2018 19:19:05 +0200 Subject: [PATCH] Splash: add themes to first time setup in splash screen. * Add default theme as Blender Dark. * Rename Flatty Light to Blender Light. * When setting theme, reset to default first for consistent results. --- .../presets/interface_theme/blender_dark.xml | 6 ++++++ .../{flatty_light.xml => blender_light.xml} | 0 release/scripts/startup/bl_operators/presets.py | 16 +++++++++++++--- release/scripts/startup/bl_operators/wm.py | 10 +++++++--- release/scripts/startup/bl_ui/space_userpref.py | 3 +++ 5 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 release/scripts/presets/interface_theme/blender_dark.xml rename release/scripts/presets/interface_theme/{flatty_light.xml => blender_light.xml} (100%) diff --git a/release/scripts/presets/interface_theme/blender_dark.xml b/release/scripts/presets/interface_theme/blender_dark.xml new file mode 100644 index 00000000000..8bbb747447b --- /dev/null +++ b/release/scripts/presets/interface_theme/blender_dark.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/release/scripts/presets/interface_theme/flatty_light.xml b/release/scripts/presets/interface_theme/blender_light.xml similarity index 100% rename from release/scripts/presets/interface_theme/flatty_light.xml rename to release/scripts/presets/interface_theme/blender_light.xml diff --git a/release/scripts/startup/bl_operators/presets.py b/release/scripts/startup/bl_operators/presets.py index 9cc1591494a..59bcae2a789 100644 --- a/release/scripts/startup/bl_operators/presets.py +++ b/release/scripts/startup/bl_operators/presets.py @@ -238,6 +238,13 @@ class ExecutePreset(Operator): ext = splitext(filepath)[1].lower() + if ext not in {".py", ".xml"}: + self.report({'ERROR'}, "unknown filetype: %r" % ext) + return {'CANCELLED'} + + if hasattr(preset_class, "pre_cb"): + preset_class.pre_cb(context) + # execute the preset using script.python_file_run if ext == ".py": bpy.ops.script.python_file_run(filepath=filepath) @@ -246,9 +253,9 @@ class ExecutePreset(Operator): rna_xml.xml_file_run(context, filepath, preset_class.preset_xml_map) - else: - self.report({'ERROR'}, "unknown filetype: %r" % ext) - return {'CANCELLED'} + + if hasattr(preset_class, "post_cb"): + preset_class.post_cb(context) return {'FINISHED'} @@ -564,6 +571,9 @@ class AddPresetInterfaceTheme(AddPresetBase, Operator): preset_menu = "USERPREF_MT_interface_theme_presets" preset_subdir = "interface_theme" + def pre_cb(self, context): + bpy.ops.ui.reset_default_theme() + class AddPresetKeyconfig(AddPresetBase, Operator): """Add or remove a Key-config Preset""" diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py index 52b645685ba..4fcadbf63e3 100644 --- a/release/scripts/startup/bl_operators/wm.py +++ b/release/scripts/startup/bl_operators/wm.py @@ -2559,8 +2559,6 @@ class WM_MT_splash(Menu): col = split.column() - col.label() - sub = col.column(align=True) sub.label(text="Input and Shortcuts:") text = bpy.path.display_name(context.window_manager.keyconfigs.active.name) @@ -2570,13 +2568,19 @@ class WM_MT_splash(Menu): col.separator() + sub = col.column(align=True) + sub.label(text="Theme:") + label = bpy.types.USERPREF_MT_interface_theme_presets.bl_label + if label == "Presets": + label = "Blender Dark" + sub.menu("USERPREF_MT_interface_theme_presets", text=label) + # We need to make switching to a language easier first #sub = col.column(align=False) # sub.label(text="Language:") #userpref = context.user_preferences #sub.prop(userpref.system, "language", text="") - col.label() col.label() layout.label() diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py index ce52e8cb837..21c2e32e932 100644 --- a/release/scripts/startup/bl_ui/space_userpref.py +++ b/release/scripts/startup/bl_ui/space_userpref.py @@ -505,6 +505,9 @@ class USERPREF_MT_interface_theme_presets(Menu): ) draw = Menu.draw_preset + def pre_cb(context): + bpy.ops.ui.reset_default_theme() + class USERPREF_PT_theme(Panel): bl_space_type = 'USER_PREFERENCES'