[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34613] trunk/blender: Bugfix [#25902] alt+a over 3D view don't up date dropesheet editor

Joshua Leung aligorith at gmail.com
Wed Feb 2 00:41:05 CET 2011


Revision: 34613
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34613
Author:   aligorith
Date:     2011-02-01 23:41:01 +0000 (Tue, 01 Feb 2011)
Log Message:
-----------
Bugfix [#25902] alt+a over 3D view don't up date dropesheet editor

Migrating "redraws" settings from TimeLine view data to per Screen.
The options are now still shown in the TimeLine "Playback" menu
though.

This means that whatever redraw settings you set in a TimeLine editor
will be used throughout a screen (i.e. editor layout) to determine
which editors will get updated during playback, instead of only
certain editors doing certain things at vague times.

---

Also, I moved some version patches pre 2.56 version bump into a
version-check for 2.56. These must've been missed when doing the
release...

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_time.py
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/animation/anim_filter.c
    trunk/blender/source/blender/editors/screen/screen_edit.c
    trunk/blender/source/blender/editors/screen/screen_ops.c
    trunk/blender/source/blender/editors/space_time/space_time.c
    trunk/blender/source/blender/makesdna/DNA_screen_types.h
    trunk/blender/source/blender/makesdna/DNA_space_types.h
    trunk/blender/source/blender/makesrna/intern/rna_screen.c
    trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/release/scripts/ui/space_time.py
===================================================================
--- trunk/blender/release/scripts/ui/space_time.py	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/release/scripts/ui/space_time.py	2011-02-01 23:41:01 UTC (rev 34613)
@@ -168,16 +168,16 @@
     def draw(self, context):
         layout = self.layout
 
-        st = context.space_data
+        screen = context.screen
         scene = context.scene
 
-        layout.prop(st, "use_play_top_left_3d_editor")
-        layout.prop(st, "use_play_3d_editors")
-        layout.prop(st, "use_play_animation_editors")
-        layout.prop(st, "use_play_properties_editors")
-        layout.prop(st, "use_play_image_editors")
-        layout.prop(st, "use_play_sequence_editors")
-        layout.prop(st, "use_play_node_editors")
+        layout.prop(screen, "use_play_top_left_3d_editor")
+        layout.prop(screen, "use_play_3d_editors")
+        layout.prop(screen, "use_play_animation_editors")
+        layout.prop(screen, "use_play_properties_editors")
+        layout.prop(screen, "use_play_image_editors")
+        layout.prop(screen, "use_play_sequence_editors")
+        layout.prop(screen, "use_play_node_editors")
 
         layout.separator()
 

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2011-02-01 23:41:01 UTC (rev 34613)
@@ -11249,13 +11249,13 @@
 			}
 		}
 	}
-
-	/* put compatibility code here until next subversion bump */
 	
-	{
-		/* Fix for sample line scope initializing with no height */
+	if (main->versionfile < 256) {
 		bScreen *sc;
 		ScrArea *sa;
+		Key *key;
+		
+		/* Fix for sample line scope initializing with no height */
 		for(sc= main->screen.first; sc; sc= sc->id.next) {
 			sa= sc->areabase.first;
 			while(sa) {
@@ -11270,10 +11270,6 @@
 				sa= sa->next;
 			}
 		}
-	}
-	
-	{
-		Key *key;
 		
 		/* old files could have been saved with slidermin = slidermax = 0.0, but the UI in
 		 * 2.4x would never reveal this to users as a dummy value always ended up getting used
@@ -11288,6 +11284,21 @@
 			}
 		}
 	}
+	
+	/* put compatibility code here until next subversion bump */
+	
+	{
+		bScreen *sc;
+		
+		/* redraws flag in SpaceTime has been moved to Screen level */
+		for (sc = main->screen.first; sc; sc= sc->id.next) {
+			if (sc->redraws_flag == 0) {
+				/* just initialise to default? */
+				// XXX: we could also have iterated through areas, and taken them from the first timeline available...
+				sc->redraws_flag = TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN;
+			}
+		}
+	}
 
 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
 	/* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */

Modified: trunk/blender/source/blender/editors/animation/anim_filter.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_filter.c	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/source/blender/editors/animation/anim_filter.c	2011-02-01 23:41:01 UTC (rev 34613)
@@ -2467,7 +2467,7 @@
 	
 	/* dopesheet summary 
 	 *	- only for drawing and/or selecting keyframes in channels, but not for real editing 
-	 *	- only useful for DopeSheet Editor, where the summary is useful
+	 *	- only useful for DopeSheet/Action/etc. editors where it is actually useful
 	 */
 	// TODO: we should really check if some other prohibited filters are also active, but that can be for later
 	if ((filter_mode & ANIMFILTER_CHANNELS) && (ads->filterflag & ADS_FILTER_SUMMARY)) {
@@ -2568,7 +2568,8 @@
 		switch (datatype) {
 			case ANIMCONT_ACTION:	/* 'Action Editor' */
 			{
-				bDopeSheet *ads = ((ac->sa) && (ac->sa->spacetype==SPACE_ACTION)) ? &((SpaceAction*)ac->sa->spacedata.first)->ads : NULL;
+				SpaceAction *saction = (SpaceAction *)ac->sa->spacedata.first;
+				bDopeSheet *ads = (saction)? &saction->ads : NULL;
 				
 				/* the check for the DopeSheet summary is included here since the summary works here too */
 				if (animdata_filter_dopesheet_summary(ac, anim_data, filter_mode, &items))

Modified: trunk/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_edit.c	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/source/blender/editors/screen/screen_edit.c	2011-02-01 23:41:01 UTC (rev 34613)
@@ -418,6 +418,7 @@
 	sc= alloc_libblock(&G.main->screen, ID_SCR, name);
 	sc->scene= scene;
 	sc->do_refresh= 1;
+	sc->redraws_flag= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN;
 	sc->winid= win->winid;
 	
 	sv1= screen_addvert(sc, 0, 0);

Modified: trunk/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- trunk/blender/source/blender/editors/screen/screen_ops.c	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/source/blender/editors/screen/screen_ops.c	2011-02-01 23:41:01 UTC (rev 34613)
@@ -2696,37 +2696,19 @@
 	}
 	else {
 		ScrArea *sa= CTX_wm_area(C);
-		int refresh= SPACE_TIME;
+		int refresh= SPACE_TIME; /* these settings are currently only available from a menu in the TimeLine */
 		
 		if (mode == 1) // XXX only play audio forwards!?
 			sound_play_scene(scene);
 		
-		/* timeline gets special treatment since it has it's own menu for determining redraws */
-		if ((sa) && (sa->spacetype == SPACE_TIME)) {
-			SpaceTime *stime= (SpaceTime *)sa->spacedata.first;
+		ED_screen_animation_timer(C, screen->redraws_flag, refresh, sync, mode);
+		
+		if (screen->animtimer) {
+			wmTimer *wt= screen->animtimer;
+			ScreenAnimData *sad= wt->customdata;
 			
-			ED_screen_animation_timer(C, stime->redraws, refresh, sync, mode);
-			
-			/* update region if TIME_REGION was set, to leftmost 3d window */
-			ED_screen_animation_timer_update(screen, stime->redraws, refresh);
+			sad->ar= CTX_wm_region(C);
 		}
-		else {
-			int redraws = TIME_REGION|TIME_ALL_3D_WIN;
-			
-			/* XXX - would like a better way to deal with this situation - Campbell */
-			if ((!sa) || (sa->spacetype == SPACE_SEQ)) {
-				redraws |= TIME_SEQ;
-			}
-			
-			ED_screen_animation_timer(C, redraws, refresh, sync, mode);
-			
-			if(screen->animtimer) {
-				wmTimer *wt= screen->animtimer;
-				ScreenAnimData *sad= wt->customdata;
-				
-				sad->ar= CTX_wm_region(C);
-			}
-		}
 	}
 
 	return OPERATOR_FINISHED;
@@ -2763,7 +2745,7 @@
 {
 	bScreen *screen= CTX_wm_screen(C);
 	
-	if(screen->animtimer) {
+	if (screen->animtimer) {
 		ScreenAnimData *sad= screen->animtimer->customdata;
 		Scene *scene= CTX_data_scene(C);
 		

Modified: trunk/blender/source/blender/editors/space_time/space_time.c
===================================================================
--- trunk/blender/source/blender/editors/space_time/space_time.c	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/source/blender/editors/space_time/space_time.c	2011-02-01 23:41:01 UTC (rev 34613)
@@ -569,7 +569,7 @@
 	stime= MEM_callocN(sizeof(SpaceTime), "inittime");
 
 	stime->spacetype= SPACE_TIME;
-	stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN;
+	stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN; // XXX: depreceated
 	stime->flag |= TIME_DRAWFRAMES;
 
 	/* header */

Modified: trunk/blender/source/blender/makesdna/DNA_screen_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_screen_types.h	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/source/blender/makesdna/DNA_screen_types.h	2011-02-01 23:41:01 UTC (rev 34613)
@@ -54,6 +54,9 @@
 	struct Scene *scene;
 	struct Scene *newscene;				/* temporary when switching */
 	
+	int redraws_flag;					/* user-setting for which editors get redrawn during anim playback (used to be time->redraws) */
+	int pad1;
+	
 	short full;							/* temp screen for image render display or fileselect */
 	short temp;							/* temp screen in a temp window, don't save (like user prefs) */
 	short winid;						/* winid from WM, starts with 1 */

Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_space_types.h	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h	2011-02-01 23:41:01 UTC (rev 34613)
@@ -372,7 +372,7 @@
 	ListBase caches;
 	int cache_display, pad;
 	
-	int flag, redraws;
+	int flag, redraws; /* redraws is deprecated... moved to screen */
 	
 } SpaceTime;
 
@@ -863,7 +863,7 @@
 	/* only keyframes from active/selected channels get shown */
 #define TIME_ONLYACTSEL		4
 
-/* time->redraws */
+/* time->redraws (now screen->redraws_flag) */
 #define TIME_REGION				1
 #define TIME_ALL_3D_WIN			2
 #define TIME_ALL_ANIM_WIN		4

Modified: trunk/blender/source/blender/makesrna/intern/rna_screen.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_screen.c	2011-02-01 22:21:43 UTC (rev 34612)
+++ trunk/blender/source/blender/makesrna/intern/rna_screen.c	2011-02-01 23:41:01 UTC (rev 34613)
@@ -46,12 +46,12 @@
 
 #include "ED_screen.h"
 
+#include "WM_api.h"
+#include "WM_types.h"
+
 #ifdef RNA_RUNTIME
 
 
-#include "WM_api.h"
-#include "WM_types.h"
-
 static void rna_Screen_scene_set(PointerRNA *ptr, PointerRNA value)
 {
 	bScreen *sc= (bScreen*)ptr->data;
@@ -74,6 +74,15 @@
 	}
 }
 
+static void rna_Screen_redraw_update(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+	bScreen *screen= (bScreen*)ptr->data;
+	
+	/* the settings for this are currently only available from a menu in the TimeLine, hence refresh=SPACE_TIME */
+	ED_screen_animation_timer_update(screen, screen->redraws_flag, SPACE_TIME);
+}
+
+
 static int rna_Screen_is_animation_playing_get(PointerRNA *ptr)
 {
 	bScreen *sc= (bScreen*)ptr->data;
@@ -189,6 +198,7 @@
 	RNA_def_struct_ui_text(srna, "Screen", "Screen datablock, defining the layout of areas in a window");
 	RNA_def_struct_ui_icon(srna, ICON_SPLITSCREEN);
 	
+	/* pointers */
 	prop= RNA_def_property(srna, "scene", PROP_POINTER, PROP_NONE);
 	RNA_def_property_flag(prop, PROP_EDITABLE|PROP_NEVER_NULL);
 	RNA_def_property_pointer_funcs(prop, NULL, "rna_Screen_scene_set", NULL, NULL);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list