[Bf-blender-cvs] [82e2ea8fce4] temp-udim-images: Added Alt+LMouse key binding to select current tile
Lukas Stockner
noreply at git.blender.org
Fri Jun 15 20:46:03 CEST 2018
Commit: 82e2ea8fce4c0a54a861c9da8e12a2f51155be00
Author: Lukas Stockner
Date: Fri Jun 15 20:39:24 2018 +0200
Branches: temp-udim-images
https://developer.blender.org/rB82e2ea8fce4c0a54a861c9da8e12a2f51155be00
Added Alt+LMouse key binding to select current tile
===================================================================
M source/blender/editors/space_image/image_intern.h
M source/blender/editors/space_image/image_ops.c
M source/blender/editors/space_image/space_image.c
===================================================================
diff --git a/source/blender/editors/space_image/image_intern.h b/source/blender/editors/space_image/image_intern.h
index 585b1889cc5..671a9c50bcf 100644
--- a/source/blender/editors/space_image/image_intern.h
+++ b/source/blender/editors/space_image/image_intern.h
@@ -100,6 +100,7 @@ void IMAGE_OT_clear_render_border(struct wmOperatorType *ot);
void IMAGE_OT_add_tile(struct wmOperatorType *ot);
void IMAGE_OT_remove_tile(struct wmOperatorType *ot);
void IMAGE_OT_generate_tile(struct wmOperatorType *ot);
+void IMAGE_OT_select_tile(struct wmOperatorType *ot);
/* image_panels.c */
struct ImageUser *ntree_get_active_iuser(struct bNodeTree *ntree);
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index 95fea88250b..d3017b24ad2 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -4110,3 +4110,45 @@ void IMAGE_OT_generate_tile(wmOperatorType *ot)
prop = RNA_def_int(ot->srna, "height", 1024, 1, INT_MAX, "Height", "Image height", 1, 16384);
RNA_def_property_subtype(prop, PROP_PIXEL);
}
+
+/* ********************* Select tile operator ****************** */
+
+static int image_select_tile_poll(bContext *C)
+{
+ Image *ima = CTX_data_edit_image(C);
+
+ return (ima && ima->source == IMA_SRC_TILED);
+}
+
+static int image_select_tile_invoke(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
+{
+ SpaceImage *sima = CTX_wm_space_image(C);
+ ARegion *ar = CTX_wm_region(C);
+
+ float uv[2];
+ UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &uv[0], &uv[1]);
+
+ if (uv[0] >= 0.0f && uv[1] >= 0.0f && uv[0] < 10.0f) {
+ int tx = (int) uv[0];
+ int ty = (int) uv[1];
+
+ sima->curtile = 10*ty + tx;
+
+ WM_event_add_notifier(C, NC_WINDOW, NULL);
+ return OPERATOR_FINISHED;
+ }
+
+ return OPERATOR_CANCELLED;
+}
+
+void IMAGE_OT_select_tile(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name = "Select tile";
+ ot->idname = "IMAGE_OT_select_tile";
+ ot->description = "Use mouse to select a tile of the image";
+
+ /* api callbacks */
+ ot->invoke = image_select_tile_invoke;
+ ot->poll = image_select_tile_poll;
+}
\ No newline at end of file
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index a15f0c0712d..77434119e85 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -292,6 +292,7 @@ static void image_operatortypes(void)
WM_operatortype_append(IMAGE_OT_add_tile);
WM_operatortype_append(IMAGE_OT_remove_tile);
WM_operatortype_append(IMAGE_OT_generate_tile);
+ WM_operatortype_append(IMAGE_OT_select_tile);
}
static void image_keymap(struct wmKeyConfig *keyconf)
@@ -358,6 +359,7 @@ static void image_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "IMAGE_OT_sample", ACTIONMOUSE, KM_PRESS, 0, 0);
RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "point", 0);
RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "point", 1);
+ WM_keymap_add_item(keymap, "IMAGE_OT_select_tile", ACTIONMOUSE, KM_PRESS, KM_ALT, 0);
/* toggle editmode is handy to have while UV unwrapping */
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
More information about the Bf-blender-cvs
mailing list