[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48861] trunk/blender: Clip editor mode selection: show menu with modes on TAB

Sergey Sharybin sergey.vfx at gmail.com
Thu Jul 12 14:06:41 CEST 2012


Revision: 48861
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48861
Author:   nazgul
Date:     2012-07-12 12:06:40 +0000 (Thu, 12 Jul 2012)
Log Message:
-----------
Clip editor mode selection: show menu with modes on TAB

This seems to be the only straightforward way to switch fast between
modes without keeping bunch of shortcuts and current mode in head.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/space_clip.py
    trunk/blender/source/blender/editors/space_clip/clip_ops.c
    trunk/blender/source/blender/editors/space_clip/space_clip.c
    trunk/blender/source/blender/makesrna/RNA_enum_types.h
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_clip.py	2012-07-12 11:52:09 UTC (rev 48860)
+++ trunk/blender/release/scripts/startup/bl_ui/space_clip.py	2012-07-12 12:06:40 UTC (rev 48861)
@@ -1301,6 +1301,17 @@
         layout.menu("CLIP_MT_mask_animation")
 
 
+class CLIP_MT_select_mode(Menu):
+    bl_label = "Select Mode"
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.operator_context = 'INVOKE_REGION_WIN'
+
+        layout.operator_enum("clip.mode_set", "mode")
+
+
 class CLIP_MT_mask_visibility(Menu):
     bl_label = "Show/Hide"
 

Modified: trunk/blender/source/blender/editors/space_clip/clip_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_ops.c	2012-07-12 11:52:09 UTC (rev 48860)
+++ trunk/blender/source/blender/editors/space_clip/clip_ops.c	2012-07-12 12:06:40 UTC (rev 48861)
@@ -62,6 +62,7 @@
 
 #include "RNA_access.h"
 #include "RNA_define.h"
+#include "RNA_enum_types.h"
 
 #include "UI_view2d.h"
 
@@ -1074,15 +1075,8 @@
 {
 	SpaceClip *sc = CTX_wm_space_clip(C);
 	int mode = RNA_enum_get(op->ptr, "mode");
-	int toggle = RNA_boolean_get(op->ptr, "toggle");
 
-	if (sc->mode == mode) {
-		if (toggle)
-			sc->mode = SC_MODE_TRACKING;
-	}
-	else {
-		sc->mode = mode;
-	}
+	sc->mode = mode;
 
 	WM_event_add_notifier(C, NC_SPACE | ND_SPACE_CLIP, NULL);
 
@@ -1091,13 +1085,6 @@
 
 void CLIP_OT_mode_set(wmOperatorType *ot)
 {
-	static EnumPropertyItem mode_items[] = {
-		{SC_MODE_TRACKING, "TRACKING", 0, "Tracking", "Show tracking and solving tools"},
-		{SC_MODE_RECONSTRUCTION, "RECONSTRUCTION", 0, "Reconstruction", "Show tracking/reconstruction tools"},
-		{SC_MODE_DISTORTION, "DISTORTION", 0, "Distortion", "Show distortion tools"},
-		{0, NULL, 0, NULL, NULL}};
-
-
 	/* identifiers */
 	ot->name = "Set Clip Mode";
 	ot->description = "Set the clip interaction mode";
@@ -1109,8 +1096,7 @@
 	ot->poll = ED_space_clip_poll;
 
 	/* properties */
-	RNA_def_enum(ot->srna, "mode", mode_items, SC_MODE_TRACKING, "Mode", "");
-	RNA_def_boolean(ot->srna, "toggle", 0, "Toggle", "");
+	RNA_def_enum(ot->srna, "mode", clip_editor_mode_items, SC_MODE_TRACKING, "Mode", "");
 }
 
 /********************** macroses *********************/

Modified: trunk/blender/source/blender/editors/space_clip/space_clip.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/space_clip.c	2012-07-12 11:52:09 UTC (rev 48860)
+++ trunk/blender/source/blender/editors/space_clip/space_clip.c	2012-07-12 12:06:40 UTC (rev 48861)
@@ -559,14 +559,8 @@
 	RNA_boolean_set(kmi->ptr, "sequence", TRUE);
 
 	/* mode */
-	kmi = WM_keymap_add_item(keymap, "CLIP_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
-	RNA_enum_set(kmi->ptr, "mode", SC_MODE_RECONSTRUCTION);
-	RNA_boolean_set(kmi->ptr, "toggle", TRUE);
+	WM_keymap_add_menu(keymap, "CLIP_MT_select_mode", TABKEY, KM_PRESS, 0, 0);
 
-	kmi = WM_keymap_add_item(keymap, "CLIP_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0);
-	RNA_enum_set(kmi->ptr, "mode", SC_MODE_DISTORTION);
-	RNA_boolean_set(kmi->ptr, "toggle", TRUE);
-
 	WM_keymap_add_item(keymap, "CLIP_OT_solve_camera", SKEY, KM_PRESS, KM_SHIFT, 0);
 
 	/* ******** Hotkeys avalaible for main region only ******** */

Modified: trunk/blender/source/blender/makesrna/RNA_enum_types.h
===================================================================
--- trunk/blender/source/blender/makesrna/RNA_enum_types.h	2012-07-12 11:52:09 UTC (rev 48860)
+++ trunk/blender/source/blender/makesrna/RNA_enum_types.h	2012-07-12 12:06:40 UTC (rev 48861)
@@ -127,6 +127,8 @@
 
 extern EnumPropertyItem prop_dynamicpaint_type_items[];
 
+extern EnumPropertyItem clip_editor_mode_items[];
+
 struct bContext;
 struct PointerRNA;
 struct PropertyRNA;

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_space.c	2012-07-12 11:52:09 UTC (rev 48860)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c	2012-07-12 12:06:40 UTC (rev 48861)
@@ -118,6 +118,15 @@
 	{0, NULL, 0, NULL, NULL}
 };
 
+EnumPropertyItem clip_editor_mode_items[] = {
+	{SC_MODE_TRACKING, "TRACKING", ICON_ANIM_DATA, "Tracking", "Show tracking and solving tools"},
+	{SC_MODE_RECONSTRUCTION, "RECONSTRUCTION", ICON_SNAP_FACE, "Reconstruction",
+	                         "Show tracking/reconstruction tools"},
+	{SC_MODE_DISTORTION, "DISTORTION", ICON_GRID, "Distortion", "Show distortion tools"},
+	{SC_MODE_MASKEDIT, "MASKEDIT", ICON_MOD_MASK, "Mask editing", "Show mask editing tools"},
+	{0, NULL, 0, NULL, NULL}
+};
+
 #ifdef RNA_RUNTIME
 
 #include "DNA_anim_types.h"
@@ -3011,15 +3020,6 @@
 	StructRNA *srna;
 	PropertyRNA *prop;
 
-	static EnumPropertyItem mode_items[] = {
-		{SC_MODE_TRACKING, "TRACKING", ICON_ANIM_DATA, "Tracking", "Show tracking and solving tools"},
-		{SC_MODE_RECONSTRUCTION, "RECONSTRUCTION", ICON_SNAP_FACE, "Reconstruction",
-		                         "Show tracking/reconstruction tools"},
-		{SC_MODE_DISTORTION, "DISTORTION", ICON_GRID, "Distortion", "Show distortion tools"},
-		{SC_MODE_MASKEDIT, "MASKEDIT", ICON_MOD_MASK, "Mask editing", "Show mask editing tools"},
-		{0, NULL, 0, NULL, NULL}
-	};
-
 	static EnumPropertyItem view_items[] = {
 		{SC_VIEW_CLIP, "CLIP", ICON_SEQUENCE, "Clip", "Show editing clip preview"},
 		{SC_VIEW_GRAPH, "GRAPH", ICON_IPO, "Graph", "Show graph view for active element"},
@@ -3086,7 +3086,7 @@
 	/* mode */
 	prop = RNA_def_property(srna, "mode", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_sdna(prop, NULL, "mode");
-	RNA_def_property_enum_items(prop, mode_items);
+	RNA_def_property_enum_items(prop, clip_editor_mode_items);
 	RNA_def_property_ui_text(prop, "Mode", "Editing context being displayed");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_CLIP, "rna_SpaceClipEditor_clip_mode_update");
 




More information about the Bf-blender-cvs mailing list