[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43048] trunk/blender/release/scripts/ startup: theme import/export - uses generic rna_xml py module.
Campbell Barton
ideasman42 at gmail.com
Sun Jan 1 09:12:52 CET 2012
Revision: 43048
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43048
Author: campbellbarton
Date: 2012-01-01 08:12:51 +0000 (Sun, 01 Jan 2012)
Log Message:
-----------
theme import/export - uses generic rna_xml py module.
Modified Paths:
--------------
trunk/blender/release/scripts/startup/bl_operators/wm.py
trunk/blender/release/scripts/startup/bl_ui/space_userpref.py
Modified: trunk/blender/release/scripts/startup/bl_operators/wm.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_operators/wm.py 2012-01-01 08:09:30 UTC (rev 43047)
+++ trunk/blender/release/scripts/startup/bl_operators/wm.py 2012-01-01 08:12:51 UTC (rev 43048)
@@ -1462,6 +1462,8 @@
self.report({'INFO'}, "See OperatorList.txt textblock")
return {'FINISHED'}
+# -----------------------------------------------------------------------------
+# Addon Operators
class WM_OT_addon_enable(Operator):
"Enable an addon"
@@ -1762,3 +1764,61 @@
info = addon_utils.module_bl_info(mod)
info["show_expanded"] = not info["show_expanded"]
return {'FINISHED'}
+
+
+# -----------------------------------------------------------------------------
+# Theme IO
+from bpy_extras.io_utils import (ImportHelper,
+ ExportHelper,
+ )
+
+
+class WM_OT_theme_import(Operator, ImportHelper):
+ bl_idname = "wm.theme_import"
+ bl_label = "Import Theme"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ filename_ext = ".xml"
+ filter_glob = StringProperty(default="*.xml", options={'HIDDEN'})
+
+ def execute(self, context):
+ import rna_xml
+ import xml.dom.minidom
+
+ filepath = self.filepath
+
+ xml_nodes = xml.dom.minidom.parse(filepath)
+ theme_xml = xml_nodes.getElementsByTagName("Theme")[0]
+
+ # XXX, why always 0?, allow many?
+ theme = context.user_preferences.themes[0]
+
+ rna_xml.xml2rna(theme_xml,
+ root_rna=theme,
+ )
+
+ return {'FINISHED'}
+
+
+class WM_OT_theme_export(Operator, ExportHelper):
+ bl_idname = "wm.theme_export"
+ bl_label = "Export Theme"
+
+ filename_ext = ".xml"
+ filter_glob = StringProperty(default="*.xml", options={'HIDDEN'})
+
+ def execute(self, context):
+ import rna_xml
+
+ filepath = self.filepath
+ file = open(filepath, 'w', encoding='utf-8')
+
+ # XXX, why always 0?, allow many?
+ theme = context.user_preferences.themes[0]
+
+ rna_xml.rna2xml(file.write,
+ root_rna=theme,
+ method='ATTR',
+ )
+
+ return {'FINISHED'}
Modified: trunk/blender/release/scripts/startup/bl_ui/space_userpref.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_userpref.py 2012-01-01 08:09:30 UTC (rev 43047)
+++ trunk/blender/release/scripts/startup/bl_ui/space_userpref.py 2012-01-01 08:12:51 UTC (rev 43048)
@@ -96,6 +96,8 @@
layout.menu("USERPREF_MT_addons_dev_guides")
elif userpref.active_section == 'THEMES':
layout.operator("ui.reset_default_theme")
+ layout.operator("wm.theme_import")
+ layout.operator("wm.theme_export")
class USERPREF_PT_tabs(Panel):
More information about the Bf-blender-cvs
mailing list