Image Editor / UV:
* Bring back "Snap to Vertex", own regression introduced in r39460. Patch by Brecht (DNA, Transform) and myself (RNA, Script).
This commit is contained in:
@@ -414,7 +414,9 @@ class IMAGE_HT_header(Header):
|
||||
|
||||
row = layout.row(align=True)
|
||||
row.prop(toolsettings, "use_snap", text="")
|
||||
row.prop(toolsettings, "snap_target", text="")
|
||||
row.prop(toolsettings, "snap_uv_element", text="", icon_only=True)
|
||||
if toolsettings.snap_uv_element != 'INCREMENT':
|
||||
row.prop(toolsettings, "snap_target", text="")
|
||||
|
||||
mesh = context.edit_object.data
|
||||
layout.prop_search(mesh.uv_textures, "active", mesh, "uv_textures", text="")
|
||||
|
@@ -408,9 +408,15 @@ static void initSnappingMode(TransInfo *t)
|
||||
|
||||
t->tsnap.mode = ts->snap_node_mode;
|
||||
}
|
||||
else if (t->spacetype == SPACE_IMAGE) {
|
||||
/* force project off when not supported */
|
||||
t->tsnap.project = 0;
|
||||
|
||||
t->tsnap.mode = ts->snap_uv_mode;
|
||||
}
|
||||
else {
|
||||
/* force project off when not supported */
|
||||
if (t->spacetype == SPACE_IMAGE || ts->snap_mode != SCE_SNAP_MODE_FACE)
|
||||
if (ts->snap_mode != SCE_SNAP_MODE_FACE)
|
||||
t->tsnap.project = 0;
|
||||
|
||||
t->tsnap.mode = ts->snap_mode;
|
||||
|
@@ -1009,7 +1009,7 @@ typedef struct ToolSettings {
|
||||
|
||||
/* Transform */
|
||||
char snap_mode, snap_node_mode;
|
||||
char pad3;
|
||||
char snap_uv_mode;
|
||||
short snap_flag, snap_target;
|
||||
short proportional, prop_mode;
|
||||
char proportional_objects; /* proportional edit, object mode */
|
||||
|
@@ -145,6 +145,11 @@ EnumPropertyItem snap_node_element_items[] = {
|
||||
{0, NULL, 0, NULL, NULL}
|
||||
};
|
||||
|
||||
EnumPropertyItem snap_uv_element_items[] = {
|
||||
{SCE_SNAP_MODE_INCREMENT, "INCREMENT", ICON_SNAP_INCREMENT, "Increment", "Snap to increments of grid"},
|
||||
{SCE_SNAP_MODE_VERTEX, "VERTEX", ICON_SNAP_VERTEX, "Vertex", "Snap to vertices"},
|
||||
{0, NULL, 0, NULL, NULL}
|
||||
};
|
||||
|
||||
/* workaround for duplicate enums,
|
||||
* have each enum line as a defne then conditionally set it or not
|
||||
@@ -1642,6 +1647,13 @@ static void rna_def_tool_settings(BlenderRNA *brna)
|
||||
RNA_def_property_enum_items(prop, snap_node_element_items);
|
||||
RNA_def_property_ui_text(prop, "Snap Node Element", "Type of element to snap to");
|
||||
RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); /* header redraw */
|
||||
|
||||
/* image editor uses own set of snap modes */
|
||||
prop = RNA_def_property(srna, "snap_uv_element", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_sdna(prop, NULL, "snap_uv_mode");
|
||||
RNA_def_property_enum_items(prop, snap_uv_element_items);
|
||||
RNA_def_property_ui_text(prop, "Snap UV Element", "Type of element to snap to");
|
||||
RNA_def_property_update(prop, NC_SCENE | ND_TOOLSETTINGS, NULL); /* header redraw */
|
||||
|
||||
prop = RNA_def_property(srna, "snap_target", PROP_ENUM, PROP_NONE);
|
||||
RNA_def_property_enum_sdna(prop, NULL, "snap_target");
|
||||
|
Reference in New Issue
Block a user