diff --git a/release/datafiles/icons_svg/edge_bevel.svg b/release/datafiles/icons_svg/edge_bevel.svg
new file mode 100644
index 00000000000..86c25f0b8f3
--- /dev/null
+++ b/release/datafiles/icons_svg/edge_bevel.svg
@@ -0,0 +1 @@
+
diff --git a/release/datafiles/icons_svg/edge_crease.svg b/release/datafiles/icons_svg/edge_crease.svg
new file mode 100644
index 00000000000..d1a06eaf1af
--- /dev/null
+++ b/release/datafiles/icons_svg/edge_crease.svg
@@ -0,0 +1 @@
+
diff --git a/release/datafiles/icons_svg/edge_seam.svg b/release/datafiles/icons_svg/edge_seam.svg
new file mode 100644
index 00000000000..2b5f2657f55
--- /dev/null
+++ b/release/datafiles/icons_svg/edge_seam.svg
@@ -0,0 +1 @@
+
diff --git a/release/datafiles/icons_svg/edge_sharp.svg b/release/datafiles/icons_svg/edge_sharp.svg
new file mode 100644
index 00000000000..309795974ba
--- /dev/null
+++ b/release/datafiles/icons_svg/edge_sharp.svg
@@ -0,0 +1 @@
+
diff --git a/release/datafiles/icons_svg/vertex_crease.svg b/release/datafiles/icons_svg/vertex_crease.svg
new file mode 100644
index 00000000000..eb90e5d95ae
--- /dev/null
+++ b/release/datafiles/icons_svg/vertex_crease.svg
@@ -0,0 +1 @@
+
diff --git a/scripts/startup/bl_ui/space_image.py b/scripts/startup/bl_ui/space_image.py
index d12b3230dd3..20734270987 100644
--- a/scripts/startup/bl_ui/space_image.py
+++ b/scripts/startup/bl_ui/space_image.py
@@ -460,7 +460,7 @@ class IMAGE_MT_uvs(Menu):
layout.separator()
- layout.operator("uv.mark_seam").clear = False
+ layout.operator("uv.mark_seam", icon="ICON_EDGE_SEAM").clear = False
layout.operator("uv.mark_seam", text="Clear Seam").clear = True
layout.operator("uv.seams_from_islands")
diff --git a/scripts/startup/bl_ui/space_view3d.py b/scripts/startup/bl_ui/space_view3d.py
index b2d2bf433bf..8ffd98e25d1 100644
--- a/scripts/startup/bl_ui/space_view3d.py
+++ b/scripts/startup/bl_ui/space_view3d.py
@@ -1440,7 +1440,7 @@ class VIEW3D_MT_uv_map(Menu):
layout.separator()
- layout.operator("mesh.mark_seam").clear = False
+ layout.operator("mesh.mark_seam", icon="EDGE_SEAM").clear = False
layout.operator("mesh.mark_seam", text="Clear Seam").clear = True
layout.separator()
@@ -4566,7 +4566,7 @@ class VIEW3D_MT_edit_mesh_context_menu(Menu):
col.separator()
- col.operator("transform.vert_crease")
+ col.operator("transform.vert_crease", icon="VERTEX_CREASE")
col.separator()
@@ -4618,17 +4618,17 @@ class VIEW3D_MT_edit_mesh_context_menu(Menu):
col.separator()
# Edge Flags
- col.operator("transform.edge_crease")
- col.operator("transform.edge_bevelweight")
+ col.operator("transform.edge_bevelweight", icon='EDGE_BEVEL')
+ col.operator("transform.edge_crease", icon='EDGE_CREASE')
col.separator()
- col.operator("mesh.mark_seam").clear = False
+ col.operator("mesh.mark_seam", icon="EDGE_SEAM").clear = False
col.operator("mesh.mark_seam", text="Clear Seam").clear = True
col.separator()
- col.operator("mesh.mark_sharp")
+ col.operator("mesh.mark_sharp", icon="EDGE_SHARP").clear = False
col.operator("mesh.mark_sharp", text="Clear Sharp").clear = True
col.operator("mesh.set_sharpness_by_angle")
@@ -4774,7 +4774,7 @@ class VIEW3D_MT_edit_mesh_vertices(Menu):
layout.separator()
- layout.operator("transform.vert_crease")
+ layout.operator("transform.vert_crease", icon="VERTEX_CREASE")
layout.separator()
@@ -4828,17 +4828,17 @@ class VIEW3D_MT_edit_mesh_edges(Menu):
layout.separator()
- layout.operator("transform.edge_crease")
- layout.operator("transform.edge_bevelweight")
+ layout.operator("transform.edge_bevelweight", icon="EDGE_BEVEL")
+ layout.operator("transform.edge_crease", icon="EDGE_CREASE")
layout.separator()
- layout.operator("mesh.mark_seam").clear = False
+ layout.operator("mesh.mark_seam", icon="EDGE_SEAM").clear = False
layout.operator("mesh.mark_seam", text="Clear Seam").clear = True
layout.separator()
- layout.operator("mesh.mark_sharp")
+ layout.operator("mesh.mark_sharp", icon="EDGE_SHARP")
layout.operator("mesh.mark_sharp", text="Clear Sharp").clear = True
layout.operator("mesh.mark_sharp", text="Mark Sharp from Vertices").use_verts = True
@@ -7187,7 +7187,7 @@ class VIEW3D_PT_overlay_edit_mesh(Panel):
bl_space_type = 'VIEW_3D'
bl_region_type = 'HEADER'
bl_label = "Mesh Edit Mode"
- bl_ui_units_x = 12
+ bl_ui_units_x = 14
@classmethod
def poll(cls, context):
@@ -7207,6 +7207,19 @@ class VIEW3D_PT_overlay_edit_mesh(Panel):
col = layout.column()
col.active = display_all
+ row = col.row(align=True)
+ row.prop(overlay, "show_edge_bevel_weight", text="Bevel", icon="EDGE_BEVEL", toggle=True)
+ row.prop(overlay, "show_edge_crease", text="Crease", icon="EDGE_CREASE", toggle=True)
+ row.prop(overlay, "show_edge_seams", text="Seam", icon="EDGE_SEAM", toggle=True)
+ row.prop(
+ overlay,
+ "show_edge_sharp",
+ text="Sharp",
+ icon="EDGE_SHARP",
+ text_ctxt=i18n_contexts.plural,
+ toggle=True)
+
+ col.separator()
split = col.split()
sub = split.column()
@@ -7215,13 +7228,6 @@ class VIEW3D_PT_overlay_edit_mesh(Panel):
sub.active = is_any_solid_shading
sub.prop(overlay, "show_face_center", text="Center")
- row = col.row(align=True)
- row.prop(overlay, "show_edge_crease", text="Creases", toggle=True)
- row.prop(overlay, "show_edge_sharp", text="Sharp", text_ctxt=i18n_contexts.plural, toggle=True)
- row.prop(overlay, "show_edge_bevel_weight", text="Bevel", toggle=True)
- row.prop(overlay, "show_edge_seams", text="Seams", toggle=True)
-
- col.separator()
col.prop(overlay, "show_extra_indices", text="Indices")
diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt
index efb0df19bc9..f4176dda8de 100644
--- a/source/blender/editors/datafiles/CMakeLists.txt
+++ b/source/blender/editors/datafiles/CMakeLists.txt
@@ -317,6 +317,10 @@ if(WITH_BLENDER)
driver_transform
duplicate
edgesel
+ edge_bevel
+ edge_crease
+ edge_seam
+ edge_sharp
editmode_hlt
empty_arrows
empty_axis
@@ -901,6 +905,7 @@ if(WITH_BLENDER)
uv_sync_select
uv_vertexsel
vertexsel
+ vertex_crease
view3d
viewzoom
view_camera
diff --git a/source/blender/editors/include/UI_icons.hh b/source/blender/editors/include/UI_icons.hh
index 8c5477bca6f..69f08bd8aab 100644
--- a/source/blender/editors/include/UI_icons.hh
+++ b/source/blender/editors/include/UI_icons.hh
@@ -630,6 +630,10 @@ DEF_ICON(SOLO_ON)
DEF_ICON(CENTER_ONLY)
DEF_ICON(CURSOR)
DEF_ICON(EDGESEL)
+DEF_ICON_COLOR(EDGE_BEVEL)
+DEF_ICON_COLOR(EDGE_CREASE)
+DEF_ICON_COLOR(EDGE_SEAM)
+DEF_ICON_COLOR(EDGE_SHARP)
DEF_ICON(FACE_CORNER)
DEF_ICON(FACESEL)
DEF_ICON(INVERSESQUARECURVE)
@@ -653,6 +657,7 @@ DEF_ICON(SHARPCURVE)
DEF_ICON(SMOOTHCURVE)
DEF_ICON(SPHERECURVE)
DEF_ICON(VERTEXSEL)
+DEF_ICON_COLOR(VERTEX_CREASE)
/* SNAPPING */
DEF_ICON(SNAP_EDGE)
diff --git a/source/blender/editors/interface/interface_icons.cc b/source/blender/editors/interface/interface_icons.cc
index 7ec0a86a1d3..bfff04bc0ef 100644
--- a/source/blender/editors/interface/interface_icons.cc
+++ b/source/blender/editors/interface/interface_icons.cc
@@ -1548,6 +1548,10 @@ static void svg_replace_color_attributes(std::string &svg,
{"blender_tool_transform", tool_transform},
{"blender_tool_white", tool_white},
{"blender_tool_red", tool_red},
+ {"blender_bevel_weight", nullptr, TH_EDGE_BEVEL},
+ {"blender_mesh_crease", nullptr, TH_EDGE_CREASE},
+ {"blender_edge_seam", nullptr, TH_EDGE_SEAM},
+ {"blender_edge_sharp", nullptr, TH_EDGE_SHARP},
};
for (const ColorItem &item : items) {
diff --git a/source/blender/editors/interface/resources.cc b/source/blender/editors/interface/resources.cc
index ea953c08528..6b0eaafd48f 100644
--- a/source/blender/editors/interface/resources.cc
+++ b/source/blender/editors/interface/resources.cc
@@ -405,17 +405,17 @@ const uchar *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
case TH_EDGE_MODE_SELECT:
cp = ts->edge_mode_select;
break;
- case TH_EDGE_SEAM:
- cp = ts->edge_seam;
- break;
- case TH_EDGE_SHARP:
- cp = ts->edge_sharp;
+ case TH_EDGE_BEVEL:
+ cp = btheme->space_view3d.edge_bevel;
break;
case TH_EDGE_CREASE:
- cp = ts->edge_crease;
+ cp = btheme->space_view3d.edge_crease;
break;
- case TH_EDGE_BEVEL:
- cp = ts->edge_bevel;
+ case TH_EDGE_SEAM:
+ cp = btheme->space_view3d.edge_seam;
+ break;
+ case TH_EDGE_SHARP:
+ cp = btheme->space_view3d.edge_sharp;
break;
case TH_EDITMESH_ACTIVE:
cp = ts->editmesh_active;
diff --git a/source/blender/makesrna/intern/rna_userdef.cc b/source/blender/makesrna/intern/rna_userdef.cc
index db4704040b9..fcdece4cddc 100644
--- a/source/blender/makesrna/intern/rna_userdef.cc
+++ b/source/blender/makesrna/intern/rna_userdef.cc
@@ -2424,23 +2424,23 @@ static void rna_def_userdef_theme_spaces_edge(StructRNA *srna)
prop = RNA_def_property(srna, "edge_seam", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Edge Seam", "");
- RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+ RNA_def_property_update(prop, 0, "rna_userdef_gpu_update");
prop = RNA_def_property(srna, "edge_sharp", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Edge Sharp", "");
- RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+ RNA_def_property_update(prop, 0, "rna_userdef_gpu_update");
prop = RNA_def_property(srna, "edge_crease", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Edge Crease", "");
RNA_def_property_translation_context(prop, BLT_I18NCONTEXT_ID_WINDOWMANAGER);
- RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+ RNA_def_property_update(prop, 0, "rna_userdef_gpu_update");
prop = RNA_def_property(srna, "edge_bevel", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_array(prop, 3);
RNA_def_property_ui_text(prop, "Edge Bevel", "");
- RNA_def_property_update(prop, 0, "rna_userdef_theme_update");
+ RNA_def_property_update(prop, 0, "rna_userdef_gpu_update");
prop = RNA_def_property(srna, "edge_facesel", PROP_FLOAT, PROP_COLOR_GAMMA);
RNA_def_property_array(prop, 3);