[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29714] trunk/blender/release/scripts/ui/ space_userpref.py: Updated Themes user preference pane.

William Reynish william at reynish.com
Sat Jun 26 19:06:55 CEST 2010


Revision: 29714
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29714
Author:   billrey
Date:     2010-06-26 19:06:55 +0200 (Sat, 26 Jun 2010)

Log Message:
-----------
Updated Themes user preference pane. 

Layout is now simpler, more easy to scan. This commit also simplifies the Python code and gets rid of hundreds of wasted lines of code, making it much easier to make layout changes.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_userpref.py

Modified: trunk/blender/release/scripts/ui/space_userpref.py
===================================================================
--- trunk/blender/release/scripts/ui/space_userpref.py	2010-06-26 16:35:56 UTC (rev 29713)
+++ trunk/blender/release/scripts/ui/space_userpref.py	2010-06-26 17:06:55 UTC (rev 29714)
@@ -21,30 +21,72 @@
 import os
 import shutil
 
+def ui_theme_layout_general(split, themedata):
 
+    row = split.row()
+
+    subsplit = row.split(percentage=0.95) 
+    
+    padding = subsplit.split(percentage=0.15)
+    colsub1 = padding.column()
+    colsub1 = padding.column()
+    
+    subsplit = row.split(percentage=0.85) 
+    
+    padding = subsplit.split(percentage=0.15)
+    colsub2 = padding.column()
+    colsub2 = padding.column()
+
+#    for i, attr in enumerate(dir(themedata)):
+    props_color = []
+    props_other = []
+    for i, prop in enumerate(themedata.rna_type.properties):
+        if prop.subtype == 'COLOR':
+            props_color.append(prop)
+        else:
+            props_other.append(prop)
+    
+    for props_ls in props_color, props_other:
+        for i, prop in enumerate(props_ls):
+            attr = prop.identifier
+            if attr == "rna_type":
+                continue
+            if not i % 2:  
+                colsub1.row().prop(themedata, attr)
+            else:
+                colsub2.row().prop(themedata, attr)
+
 def ui_items_general(col, context):
     """ General UI Theme Settings (User Interface)
     """
+    
     row = col.row()
-    sub = row.column()
-    sub.prop(context, "outline")
-    sub.prop(context, "item", slider=True)
-    sub = row.column()
-    sub.prop(context, "inner", slider=True)
-    sub.prop(context, "inner_sel", slider=True)
-    sub = row.column()
-    sub.prop(context, "text")
-    sub.prop(context, "text_sel")
-    sub = row.column()
-    sub.prop(context, "shaded")
-    subsub = sub.column(align=True)
+
+    subsplit = row.split(percentage=0.95) 
+    
+    padding = subsplit.split(percentage=0.15)
+    colsub = padding.column()
+    colsub = padding.column()
+    colsub.row().prop(context, "outline")
+    colsub.row().prop(context, "item", slider=True)
+    colsub.row().prop(context, "inner", slider=True)
+    colsub.row().prop(context, "inner_sel", slider=True)
+    
+    subsplit = row.split(percentage=0.85) 
+    
+    padding = subsplit.split(percentage=0.15)
+    colsub = padding.column()
+    colsub = padding.column()
+    colsub.row().prop(context, "text")
+    colsub.row().prop(context, "text_sel")
+    colsub.prop(context, "shaded")
+    subsub = colsub.column(align=True)
     subsub.active = context.shaded
     subsub.prop(context, "shadetop")
     subsub.prop(context, "shadedown")
 
     col.separator()
 
-
 def opengl_lamp_buttons(column, lamp):
     split = column.split(percentage=0.1)
 
@@ -491,11 +533,14 @@
 
         theme = context.user_preferences.themes[0]
 
-        split_themes = layout.split(percentage=0.2)
-        split_themes.prop(theme, "theme_area", expand=True)
+        split = layout.split(percentage=0.4)
+        split.prop(theme, "theme_area", text="")
+        
+        layout.separator()
+        layout.separator()
+        
+        split = layout.split()
 
-        split = split_themes.split()
-
         if theme.theme_area == 'USER_INTERFACE':
             col = split.column()
 
@@ -565,24 +610,35 @@
 
             ui = theme.user_interface.wcol_state
             col.label(text="State:")
-
+            
             row = col.row()
-            sub = row.column()
-            sub.prop(ui, "inner_anim")
-            sub.prop(ui, "inner_anim_sel")
-            sub = row.column()
-            sub.prop(ui, "inner_driven")
-            sub.prop(ui, "inner_driven_sel")
-            sub = row.column()
-            sub.prop(ui, "inner_key")
-            sub.prop(ui, "inner_key_sel")
-            sub = row.column()
-            sub.prop(ui, "blend")
 
+            subsplit = row.split(percentage=0.95) 
+            
+            padding = subsplit.split(percentage=0.15)
+            colsub = padding.column()
+            colsub = padding.column()
+            colsub.row().prop(ui, "inner_anim")
+            colsub.row().prop(ui, "inner_anim_sel")
+            colsub.row().prop(ui, "inner_driven")
+            colsub.row().prop(ui, "inner_driven_sel")
+            
+            subsplit = row.split(percentage=0.85) 
+            
+            padding = subsplit.split(percentage=0.15)
+            colsub = padding.column()
+            colsub = padding.column()
+            colsub.row().prop(ui, "inner_key")
+            colsub.row().prop(ui, "inner_key_sel")
+            colsub.row().prop(ui, "blend")
+
+
             ui = theme.user_interface
             col.separator()
             col.separator()
-            col.prop(ui, "icon_file")
+            
+            split= col.split(percentage=0.93)
+            split.prop(ui, "icon_file")
 
             layout.separator()
             layout.separator()
@@ -590,367 +646,86 @@
 
         elif theme.theme_area == 'VIEW_3D':
             v3d = theme.view_3d
+            
+            ui_theme_layout_general(split, v3d)
 
-            col = split.column()
-            col.prop(v3d, "back")
-            col.prop(v3d, "button")
-            col.prop(v3d, "button_title")
-            col.prop(v3d, "button_text")
-            col.prop(v3d, "header")
-
-            col = split.column()
-            col.prop(v3d, "grid")
-            col.prop(v3d, "wire")
-            col.prop(v3d, "lamp", slider=True)
-            col.prop(v3d, "editmesh_active", slider=True)
-
-            col = split.column()
-            col.prop(v3d, "object_selected")
-            col.prop(v3d, "object_active")
-            col.prop(v3d, "object_grouped")
-            col.prop(v3d, "object_grouped_active")
-            col.prop(v3d, "transform")
-            col.prop(v3d, "nurb_uline")
-            col.prop(v3d, "nurb_vline")
-            col.prop(v3d, "nurb_sel_uline")
-            col.prop(v3d, "nurb_sel_vline")
-            col.prop(v3d, "handle_free")
-            col.prop(v3d, "handle_auto")
-            col.prop(v3d, "handle_vect")
-            col.prop(v3d, "handle_align")
-            col.prop(v3d, "handle_sel_free")
-            col.prop(v3d, "handle_sel_auto")
-            col.prop(v3d, "handle_sel_vect")
-            col.prop(v3d, "handle_sel_align")
-            col.prop(v3d, "act_spline")
-            col.prop(v3d, "lastsel_point")
-
-            col = split.column()
-            col.prop(v3d, "vertex")
-            col.prop(v3d, "face", slider=True)
-            col.prop(v3d, "normal")
-            col.prop(v3d, "vertex_normal")
-            col.prop(v3d, "bone_solid")
-            col.prop(v3d, "bone_pose")
-            col.prop(v3d, "edge_seam")
-            col.prop(v3d, "edge_select")
-            col.prop(v3d, "edge_facesel")
-            col.prop(v3d, "edge_sharp")
-            col.prop(v3d, "edge_crease")
-
         elif theme.theme_area == 'GRAPH_EDITOR':
             graph = theme.graph_editor
+            
+            ui_theme_layout_general(split, graph)
 
-            col = split.column()
-            col.prop(graph, "back")
-            col.prop(graph, "button")
-            col.prop(graph, "button_title")
-            col.prop(graph, "button_text")
-
-            col = split.column()
-            col.prop(graph, "header")
-            col.prop(graph, "grid")
-            col.prop(graph, "list")
-            col.prop(graph, "channel_group")
-
-            col = split.column()
-            col.prop(graph, "active_channels_group")
-            col.prop(graph, "dopesheet_channel")
-            col.prop(graph, "dopesheet_subchannel")
-            col.prop(graph, "frame_current")
-
-            col = split.column()
-            col.prop(graph, "vertex")
-            col.prop(graph, "handle_vertex")
-            col.prop(graph, "handle_vertex_select")
-            col.separator()
-            col.prop(graph, "handle_vertex_size")
-            col.separator()
-            col.separator()
-            col.prop(graph, "handle_free")
-            col.prop(graph, "handle_auto")
-            col.prop(graph, "handle_vect")
-            col.prop(graph, "handle_align")
-            col.prop(graph, "handle_sel_free")
-            col.prop(graph, "handle_sel_auto")
-            col.prop(graph, "handle_sel_vect")
-            col.prop(graph, "handle_sel_align")
-
         elif theme.theme_area == 'FILE_BROWSER':
             file_browse = theme.file_browser
+            
+            ui_theme_layout_general(split, file_browse)
 
-            col = split.column()
-            col.prop(file_browse, "back")
-            col.prop(file_browse, "text")
-            col.prop(file_browse, "text_hi")
-
-            col = split.column()
-            col.prop(file_browse, "header")
-            col.prop(file_browse, "list")
-
-            col = split.column()
-            col.prop(file_browse, "selected_file")
-            col.prop(file_browse, "tiles")
-
-            col = split.column()
-            col.prop(file_browse, "active_file")
-            col.prop(file_browse, "active_file_text")
-
         elif theme.theme_area == 'NLA_EDITOR':
             nla = theme.nla_editor
+            
+            ui_theme_layout_general(split, nla)
 
-            col = split.column()
-            col.prop(nla, "back")
-            col.prop(nla, "button")
-            col.prop(nla, "button_title")
-
-            col = split.column()
-            col.prop(nla, "button_text")
-            col.prop(nla, "text")
-            col.prop(nla, "header")
-
-            col = split.column()
-            col.prop(nla, "grid")
-            col.prop(nla, "bars")
-            col.prop(nla, "bars_selected")
-
-            col = split.column()
-            col.prop(nla, "strips")
-            col.prop(nla, "strips_selected")
-            col.prop(nla, "frame_current")
-
         elif theme.theme_area == 'DOPESHEET_EDITOR':
             dope = theme.dopesheet_editor
-
-            col = split.column()
-            col.prop(dope, "back")
-            col.prop(dope, "list")
-            col.prop(dope, "text")
-            col.prop(dope, "header")
-
-            col = split.column()
-            col.prop(dope, "grid")
-            col.prop(dope, "channels")
-            col.prop(dope, "channels_selected")
-            col.prop(dope, "channel_group")
-
-            col = split.column()
-            col.prop(dope, "active_channels_group")

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list