Page Menu
Home
Search
Configure Global Search
Log In
Files
F10825
kbdslotnav.patch
Public
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Authored By
Shane Ambler (sambler)
Nov 13 2013, 2:18 PM
Size
4 KB
Subscribers
None
kbdslotnav.patch
View Options
Index: source/blender/makesdna/DNA_image_types.h
===================================================================
--- source/blender/makesdna/DNA_image_types.h (revision 31274)
+++ source/blender/makesdna/DNA_image_types.h (working copy)
@@ -73,7 +73,7 @@
struct anim *anim;
struct RenderResult *rr;
- struct RenderResult *renders[8]; /* IMA_MAX_RENDER_SLOT */
+ struct RenderResult *renders[10]; /* IMA_MAX_RENDER_SLOT */
short render_slot, last_render_slot;
short ok, flag;
@@ -128,7 +128,7 @@
/* render */
#define IMA_MAX_RENDER_TEXT 512
-#define IMA_MAX_RENDER_SLOT 8
+#define IMA_MAX_RENDER_SLOT 10 /* shouldn't this be above the image struct and used in renders[]? */
#endif
Index: source/blender/editors/space_image/image_ops.c
===================================================================
--- source/blender/editors/space_image/image_ops.c (revision 31274)
+++ source/blender/editors/space_image/image_ops.c (working copy)
@@ -2070,6 +2070,54 @@
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
+/******************** goto specific render slot *********************/
+/* make available image slots 10 and use keyoard 1 through 0 to select
+ a specific slot similar to 3d layers */
+
+/* I used a mixture of cycle_render_slot and view_zoom_ratio to do this */
+
+/* select_render_slot_poll -
+ I don't think I need this to be any different from cycle_render_slot_poll
+ but have included a renamed version for completeness */
+static int select_render_slot_poll(bContext *C)
+{
+ Image *ima= CTX_data_edit_image(C);
+
+ return (ima && ima->type == IMA_TYPE_R_RESULT);
+}
+
+static int select_render_slot_exec(bContext *C, wmOperator *op)
+{
+ Image *ima= CTX_data_edit_image(C);
+
+ ima->render_slot = RNA_int_get(op->ptr, "render_slot");
+
+ if(ima->render_slot >= IMA_MAX_RENDER_SLOT )
+ ima->render_slot = 1;
+
+ WM_event_add_notifier(C, NC_IMAGE|ND_DRAW, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void IMAGE_OT_select_render_slot(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Select Render Slot";
+ ot->idname= "IMAGE_OT_select_render_slot";
+
+ /* api callbacks */
+ ot->exec= select_render_slot_exec;
+ ot->poll= select_render_slot_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ RNA_def_int(ot->srna, "render_slot", 0, 0, 9,
+ "Render Slot", "Current render slot.", 0, 9);
+}
+
/******************** TODO ********************/
/* XXX notifier? */
Index: source/blender/editors/space_image/image_intern.h
===================================================================
--- source/blender/editors/space_image/image_intern.h (revision 31274)
+++ source/blender/editors/space_image/image_intern.h (working copy)
@@ -78,6 +78,7 @@
void IMAGE_OT_unpack(struct wmOperatorType *ot);
void IMAGE_OT_cycle_render_slot(struct wmOperatorType *ot);
+void IMAGE_OT_select_render_slot(struct wmOperatorType *ot);
void IMAGE_OT_sample(struct wmOperatorType *ot);
void IMAGE_OT_sample_line(struct wmOperatorType *ot);
Index: source/blender/editors/space_image/space_image.c
===================================================================
--- source/blender/editors/space_image/space_image.c (revision 31274)
+++ source/blender/editors/space_image/space_image.c (working copy)
@@ -472,6 +472,7 @@
WM_operatortype_append(IMAGE_OT_unpack);
WM_operatortype_append(IMAGE_OT_cycle_render_slot);
+ WM_operatortype_append(IMAGE_OT_select_render_slot);
WM_operatortype_append(IMAGE_OT_sample);
WM_operatortype_append(IMAGE_OT_sample_line);
@@ -497,6 +498,16 @@
WM_keymap_add_item(keymap, "IMAGE_OT_scopes", PKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, 0, 0);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", ONEKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 0);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", TWOKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 1);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", THREEKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 2);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", FOURKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 3);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", FIVEKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 4);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", SIXKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 5);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", SEVENKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 6);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", EIGHTKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 7);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", NINEKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 8);
+ RNA_int_set(WM_keymap_add_item(keymap, "IMAGE_OT_select_render_slot", ZEROKEY, KM_PRESS, 0, 0)->ptr, "render_slot", 9);
keymap= WM_keymap_find(keyconf, "Image", SPACE_IMAGE, 0);
File Metadata
Details
Mime Type
text/x-diff
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
cd/95/ec23ba378e807818701cfebac0a1
Event Timeline
Log In to Comment