Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2012-12-03 16:03:16 +0400
committerThomas Dinges <blender@dingto.org>2012-12-03 16:03:16 +0400
commit46d4d7559fa9f72a1040a30ca016a1674356cb71 (patch)
treecd6abdbfe2fc11a0f400e070b241aee6703150db
parent4302cde8ff88471e5e51fb9d7bf61fe6d59179e9 (diff)
Image Editor / UV:
* Bring back "Snap to Vertex", own regression introduced in r39460. Patch by Brecht (DNA, Transform) and myself (RNA, Script).
-rw-r--r--release/scripts/startup/bl_ui/space_image.py4
-rw-r--r--source/blender/editors/transform/transform_snap.c8
-rw-r--r--source/blender/makesdna/DNA_scene_types.h2
-rw-r--r--source/blender/makesrna/intern/rna_scene.c12
4 files changed, 23 insertions, 3 deletions
diff --git a/release/scripts/startup/bl_ui/space_image.py b/release/scripts/startup/bl_ui/space_image.py
index 358dc016219..1ea20d96386 100644
--- a/release/scripts/startup/bl_ui/space_image.py
+++ b/release/scripts/startup/bl_ui/space_image.py
@@ -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="")
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index a6fb7e7ed00..2d95e2ecdc6 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -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;
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 1eabe950e00..8e0a36a8a43 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -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 */
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 664b7cb37a7..6f3a483cf7e 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -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");