forked from bartvdbraak/blender
Userpreferences Panel (for the 3DView)
This is an attempt to improve the User preferences panel for the 3DView. I made 2 changes: - I reordered the sequence of properties by grouping them into more logical groups as it made sense to me. Please indicate where to rearrange the order if necessary. - Then i added some changes in the code to get the groups better arranged visually. I am pretty sure that this can be done much better, more clever, more generic, whatever. This is just what i could figure out on my own so far. Reviewers: aligorith, sergey, gaiaclary Subscribers: sergey Projects: #user_interface Maniphest Tasks: T47295 Differential Revision: https://developer.blender.org/D1757
This commit is contained in:
parent
5f613f7b5d
commit
90e77c871b
@ -559,8 +559,33 @@ class USERPREF_PT_theme(Panel):
|
||||
bl_region_type = 'WINDOW'
|
||||
bl_options = {'HIDE_HEADER'}
|
||||
|
||||
# not essential, hard-coded UI delimiters for the theme layout
|
||||
ui_delimiters = {
|
||||
'VIEW_3D': {
|
||||
"text_grease_pencil",
|
||||
"text_keyframe",
|
||||
"speaker",
|
||||
"freestyle_face_mark",
|
||||
"split_normal",
|
||||
"bone_solid",
|
||||
"paint_curve_pivot",
|
||||
},
|
||||
'GRAPH_EDITOR': {
|
||||
"handle_vertex_select",
|
||||
},
|
||||
'IMAGE_EDITOR': {
|
||||
"paint_curve_pivot",
|
||||
},
|
||||
'NODE_EDITOR': {
|
||||
"layout_node",
|
||||
},
|
||||
'CLIP_EDITOR': {
|
||||
"handle_vertex_select",
|
||||
}
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def _theme_generic(split, themedata):
|
||||
def _theme_generic(split, themedata, theme_area):
|
||||
|
||||
col = split.column()
|
||||
|
||||
@ -587,13 +612,30 @@ class USERPREF_PT_theme(Panel):
|
||||
|
||||
props_type.setdefault((prop.type, prop.subtype), []).append(prop)
|
||||
|
||||
th_delimiters = USERPREF_PT_theme.ui_delimiters.get(theme_area)
|
||||
for props_type, props_ls in sorted(props_type.items()):
|
||||
if props_type[0] == 'POINTER':
|
||||
for i, prop in enumerate(props_ls):
|
||||
theme_generic_recurse(getattr(data, prop.identifier))
|
||||
else:
|
||||
for i, prop in enumerate(props_ls):
|
||||
colsub_pair[i % 2].row().prop(data, prop.identifier)
|
||||
if th_delimiters is None:
|
||||
# simple, no delimiters
|
||||
for i, prop in enumerate(props_ls):
|
||||
colsub_pair[i % 2].row().prop(data, prop.identifier)
|
||||
else:
|
||||
# add hard coded delimiters
|
||||
i = 0
|
||||
for prop in props_ls:
|
||||
colsub = colsub_pair[i]
|
||||
colsub.row().prop(data, prop.identifier)
|
||||
i = (i + 1) % 2
|
||||
if prop.identifier in th_delimiters:
|
||||
if i:
|
||||
colsub = colsub_pair[1]
|
||||
colsub.row().label("")
|
||||
colsub_pair[0].row().label("")
|
||||
colsub_pair[1].row().label("")
|
||||
i = 0
|
||||
|
||||
theme_generic_recurse(themedata)
|
||||
|
||||
@ -864,7 +906,7 @@ class USERPREF_PT_theme(Panel):
|
||||
col.label(text="Widget Label:")
|
||||
self._ui_font_style(col, style.widget_label)
|
||||
else:
|
||||
self._theme_generic(split, getattr(theme, theme.theme_area.lower()))
|
||||
self._theme_generic(split, getattr(theme, theme.theme_area.lower()), theme.theme_area)
|
||||
|
||||
|
||||
class USERPREF_PT_file(Panel):
|
||||
|
@ -1593,11 +1593,18 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
|
||||
|
||||
rna_def_userdef_theme_spaces_gradient(srna);
|
||||
|
||||
/* General Viewport options */
|
||||
|
||||
prop = RNA_def_property(srna, "grid", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Grid", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "clipping_border_3d", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Clipping Border", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "wire", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Wire", "");
|
||||
@ -1608,32 +1615,18 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Wire Edit", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
|
||||
/* Grease Pencil */
|
||||
|
||||
rna_def_userdef_theme_spaces_gpencil(srna);
|
||||
|
||||
prop = RNA_def_property(srna, "lamp", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Lamp", "");
|
||||
prop = RNA_def_property(srna, "text_grease_pencil", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "time_gp_keyframe");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Grease Pencil Keyframe", "Color for indicating Grease Pencil keyframes");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "speaker", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Speaker", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "camera", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Camera", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "view_overlay", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "View Overlay", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "empty", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Empty", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
/* Object specific options */
|
||||
|
||||
prop = RNA_def_property(srna, "object_selected", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "select");
|
||||
@ -1659,14 +1652,42 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Object Grouped Active", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "transform", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
prop = RNA_def_property(srna, "text_keyframe", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "time_keyframe");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Transform", "");
|
||||
RNA_def_property_ui_text(prop, "Object Keyframe", "Color for indicating Object keyframes");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
|
||||
/* Object type options */
|
||||
|
||||
prop = RNA_def_property(srna, "camera", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Camera", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "empty", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Empty", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "lamp", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Lamp", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "speaker", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Speaker", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
/* Mesh Object specific */
|
||||
|
||||
rna_def_userdef_theme_spaces_vertex(srna);
|
||||
rna_def_userdef_theme_spaces_edge(srna);
|
||||
rna_def_userdef_theme_spaces_face(srna);
|
||||
|
||||
/* Mesh Object specific curves*/
|
||||
|
||||
rna_def_userdef_theme_spaces_curves(srna, true, true, true, false);
|
||||
|
||||
prop = RNA_def_property(srna, "extra_edge_len", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
@ -1710,10 +1731,7 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Split Normal", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "bone_solid", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Bone Solid", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
/* Armature Object specific */
|
||||
|
||||
prop = RNA_def_property(srna, "bone_pose", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
@ -1725,16 +1743,12 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Bone Pose Active", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "frame_current", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "cframe");
|
||||
prop = RNA_def_property(srna, "bone_solid", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Current Frame", "");
|
||||
RNA_def_property_ui_text(prop, "Bone Solid", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "outline_width", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_range(prop, 1, 5);
|
||||
RNA_def_property_ui_text(prop, "Outline Width", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
/* misc */
|
||||
|
||||
prop = RNA_def_property(srna, "bundle_solid", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "bundle_solid");
|
||||
@ -1753,24 +1767,29 @@ static void rna_def_userdef_theme_space_view3d(BlenderRNA *brna)
|
||||
RNA_def_property_ui_text(prop, "Skin Root", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "clipping_border_3d", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 4);
|
||||
RNA_def_property_ui_text(prop, "Clipping Border", "");
|
||||
prop = RNA_def_property(srna, "view_overlay", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "View Overlay", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "text_keyframe", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "time_keyframe");
|
||||
prop = RNA_def_property(srna, "transform", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Keyframe", "Color for indicating Object keyframes");
|
||||
RNA_def_property_ui_text(prop, "Transform", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
prop = RNA_def_property(srna, "text_grease_pencil", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "time_gp_keyframe");
|
||||
prop = RNA_def_property(srna, "frame_current", PROP_FLOAT, PROP_COLOR_GAMMA);
|
||||
RNA_def_property_float_sdna(prop, NULL, "cframe");
|
||||
RNA_def_property_array(prop, 3);
|
||||
RNA_def_property_ui_text(prop, "Grease Pencil", "Color for indicating Grease Pencil keyframes");
|
||||
RNA_def_property_ui_text(prop, "Current Frame", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
rna_def_userdef_theme_spaces_paint_curves(srna);
|
||||
|
||||
prop = RNA_def_property(srna, "outline_width", PROP_INT, PROP_NONE);
|
||||
RNA_def_property_range(prop, 1, 5);
|
||||
RNA_def_property_ui_text(prop, "Outline Width", "");
|
||||
RNA_def_property_update(prop, 0, "rna_userdef_update");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user