Revision: 17833
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17833
Author:   ton
Date:     2008-12-14 11:52:48 +0100 (Sun, 14 Dec 2008)

Log Message:
-----------
2.5

The basics for InfoSpace.
Also added InfoSpace data to area by default, older files allowed to
have nothing here (space empty). (prevents reported crasher in switching
space info to others).

Also: added ifdeffed code in readfile.c to debug missing memory frees
from data read from files. (instead of "data from SCR" it will print
the actual struct names).

Modified Paths:
--------------
    branches/blender2.5/blender/source/Makefile
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/Makefile
    branches/blender2.5/blender/source/blender/editors/SConscript
    branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h
    branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h
    branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
    branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/space_info/Makefile
    branches/blender2.5/blender/source/blender/editors/space_info/SConscript
    branches/blender2.5/blender/source/blender/editors/space_info/info_header.c
    branches/blender2.5/blender/source/blender/editors/space_info/info_intern.h
    branches/blender2.5/blender/source/blender/editors/space_info/space_info.c

Modified: branches/blender2.5/blender/source/Makefile
===================================================================
--- branches/blender2.5/blender/source/Makefile 2008-12-14 10:33:18 UTC (rev 
17832)
+++ branches/blender2.5/blender/source/Makefile 2008-12-14 10:52:48 UTC (rev 
17833)
@@ -235,6 +235,7 @@
 PULIB += $(NAN_ELBEEM)/lib/$(DEBUG_DIR)libelbeem.a
 PULIB += $(OCGDIR)/blender/readblenfile/$(DEBUG_DIR)libreadblenfile.a
 PULIB += $(OCGDIR)/blender/ed_space/libed_space.a
+PULIB += $(OCGDIR)/blender/ed_info/libed_info.a
 PULIB += $(OCGDIR)/blender/ed_buttons/libed_buttons.a
 PULIB += $(OCGDIR)/blender/ed_node/libed_node.a
 PULIB += $(OCGDIR)/blender/ed_image/libed_image.a

Modified: 
branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c     
2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c     
2008-12-14 10:52:48 UTC (rev 17833)
@@ -4206,8 +4206,12 @@
                sa->type= NULL; /* spacetype callbacks */
                
                /* accident can happen when read/save new file with older 
version */
-               if(sa->spacedata.first==NULL && sa->spacetype>SPACE_NLA)
-                       sa->spacetype= SPACE_EMPTY;
+               /* 2.50: we now always add spacedata for info */
+               if(sa->spacedata.first==NULL) {
+                       SpaceInfo *sinfo= MEM_callocN(sizeof(SpaceInfo), 
"spaceinfo");
+                       sa->spacetype= SPACE_INFO;
+                       BLI_addtail(&sa->spacedata, sinfo);
+               }
                
                for(pa= sa->panels.first; pa; pa=pa->next) {
                        pa->paneltab= newdataadr(fd, pa->paneltab);
@@ -4513,15 +4517,17 @@
        
        while(bhead && bhead->code==DATA) {
                void *data;
-               /* XXX BAD DEBUGGING OPTION TO GIVE NAMES */            
+#if 0          
+               /* XXX DUMB DEBUGGING OPTION TO GIVE NAMES for guarded malloc 
errors */         
                short *sp= fd->filesdna->structs[bhead->SDNAnr];
                char *allocname = fd->filesdna->types[ sp[0] ];
                char *tmp= malloc(100);
                
                strcpy(tmp, allocname);
+               data= read_struct(fd, bhead, tmp);
+#endif
+               data= read_struct(fd, bhead, allocname);
                
-               data= read_struct(fd, bhead, tmp);
-
                if (data) {
                        oldnewmap_insert(fd->datamap, bhead->old, data, 0);
                }

Modified: branches/blender2.5/blender/source/blender/editors/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/Makefile 2008-12-14 
10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/Makefile 2008-12-14 
10:52:48 UTC (rev 17833)
@@ -29,6 +29,6 @@
 # Bounces make to subdirectories.
 
 SOURCEDIR = source/blender/editors
-DIRS = datafiles screen space_outliner space_time space_view3d interface util  
space_api space_ipo space_image space_node space_buttons
+DIRS = datafiles screen space_outliner space_time space_view3d interface util  
space_api space_ipo space_image space_node space_buttons space_info
 
 include nan_subdirs.mk

Modified: branches/blender2.5/blender/source/blender/editors/SConscript
===================================================================
--- branches/blender2.5/blender/source/blender/editors/SConscript       
2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/SConscript       
2008-12-14 10:52:48 UTC (rev 17833)
@@ -15,5 +15,6 @@
                        'space_image/SConscript',
                        'space_node/SConscript',
                        'space_buttons/SConscript',
+                       'space_info/SConscript',
                        'transform/SConscript',
                        'screen/SConscript'])

Modified: 
branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h   
2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_space_api.h   
2008-12-14 10:52:48 UTC (rev 17833)
@@ -39,6 +39,7 @@
 void ED_spacetype_image(void);
 void ED_spacetype_node(void);
 void ED_spacetype_buttons(void);
+void ED_spacetype_info(void);
 
 #endif /* ED_AREA_H */
 

Modified: 
branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c     
2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_edit.c     
2008-12-14 10:52:48 UTC (rev 17833)
@@ -521,6 +521,47 @@
        return 1;
 }
 
+void select_connected_scredge(bScreen *sc, ScrEdge *edge)
+{
+       ScrEdge *se;
+       ScrVert *sv;
+       int oneselected;
+       char dir;
+       
+       /* select connected, only in the right direction */
+       /* 'dir' is the direction of EDGE */
+       
+       if(edge->v1->vec.x==edge->v2->vec.x) dir= 'v';
+       else dir= 'h';
+       
+       sv= sc->vertbase.first;
+       while(sv) {
+               sv->flag = 0;
+               sv= sv->next;
+       }
+       
+       edge->v1->flag= 1;
+       edge->v2->flag= 1;
+       
+       oneselected= 1;
+       while(oneselected) {
+               se= sc->edgebase.first;
+               oneselected= 0;
+               while(se) {
+                       if(se->v1->flag + se->v2->flag==1) {
+                               if(dir=='h') if(se->v1->vec.y==se->v2->vec.y) {
+                                       se->v1->flag= se->v2->flag= 1;
+                                       oneselected= 1;
+                               }
+                                       if(dir=='v') 
if(se->v1->vec.x==se->v2->vec.x) {
+                                               se->v1->flag= se->v2->flag= 1;
+                                               oneselected= 1;
+                                       }
+                       }
+                               se= se->next;
+               }
+       }
+}
 
 /* test if screen vertices should be scaled */
 static void screen_test_scale(bScreen *sc, int winsizex, int winsizey)
@@ -580,6 +621,33 @@
                if(sa->v1==sa->v2 || sa->v3==sa->v4 || sa->v2==sa->v3)
                        screen_delarea(sc, sa);
        }
+       
+       /* make each window at least HEADERY high */
+       for(sa= sc->areabase.first; sa; sa= sa->next) {
+               int headery= HEADERY+1;
+               
+               if(sa->v1->vec.y+headery > sa->v2->vec.y) {
+                       /* lower edge */
+                       ScrEdge *se= screen_findedge(sc, sa->v4, sa->v1);
+                       if(se && sa->v1!=sa->v2 ) {
+                               int yval;
+                               
+                               select_connected_scredge(sc, se);
+                               
+                               /* all selected vertices get the right offset */
+                               yval= sa->v2->vec.y-headery;
+                               sv= sc->vertbase.first;
+                               while(sv) {
+                                       /* if is a collapsed area */
+                                       if(sv!=sa->v2 && sv!=sa->v3) {
+                                               if(sv->flag) sv->vec.y= yval;
+                                       }
+                                       sv= sv->next;
+                               }
+                       }
+               }
+       }
+       
 }
 
 /* *********************** DRAWING **************************************** */

Modified: 
branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h   
2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_intern.h   
2008-12-14 10:52:48 UTC (rev 17833)
@@ -32,19 +32,20 @@
 struct wmWindow;
 
 /* area.c */
-void area_copy_data(ScrArea *sa1, ScrArea *sa2, int swap_space);
+void           area_copy_data  (ScrArea *sa1, ScrArea *sa2, int swap_space);
 
 /* screen_edit.c */
-bScreen *screen_add(struct wmWindow *win, char *name);
-ScrEdge *screen_findedge(bScreen *sc, ScrVert *v1, ScrVert *v2);
-ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float 
fac);
-int screen_area_join(bScreen* scr, ScrArea *sa1, ScrArea *sa2);
-int area_getorientation(bScreen *screen, ScrArea *sa, ScrArea *sb);
+bScreen                *screen_add(struct wmWindow *win, char *name);
+ScrEdge                *screen_findedge(bScreen *sc, ScrVert *v1, ScrVert *v2);
+ScrArea                *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, 
char dir, float fac);
+int                    screen_area_join(bScreen* scr, ScrArea *sa1, ScrArea 
*sa2);
+int                    area_getorientation(bScreen *screen, ScrArea *sa, 
ScrArea *sb);
+void           select_connected_scredge(bScreen *sc, ScrEdge *edge);
 
-void removenotused_scrverts(bScreen *sc);
-void removedouble_scrverts(bScreen *sc);
-void removedouble_scredges(bScreen *sc);
-void removenotused_scredges(bScreen *sc);
+void           removenotused_scrverts(bScreen *sc);
+void           removedouble_scrverts(bScreen *sc);
+void           removedouble_scredges(bScreen *sc);
+void           removenotused_scredges(bScreen *sc);
 
 #endif /* ED_SCREEN_INTERN_H */
 

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c      
2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_ops.c      
2008-12-14 10:52:48 UTC (rev 17833)
@@ -416,48 +416,6 @@
        }
 }
 
-static void select_connected_scredge(bScreen *sc, ScrEdge *edge)
-{
-       ScrEdge *se;
-       ScrVert *sv;
-       int oneselected;
-       char dir;
-       
-       /* select connected, only in the right direction */
-       /* 'dir' is the direction of EDGE */
-       
-       if(edge->v1->vec.x==edge->v2->vec.x) dir= 'v';
-       else dir= 'h';
-       
-       sv= sc->vertbase.first;
-       while(sv) {
-               sv->flag = 0;
-               sv= sv->next;
-       }
-       
-       edge->v1->flag= 1;
-       edge->v2->flag= 1;
-       
-       oneselected= 1;
-       while(oneselected) {
-               se= sc->edgebase.first;
-               oneselected= 0;
-               while(se) {
-                       if(se->v1->flag + se->v2->flag==1) {
-                               if(dir=='h') if(se->v1->vec.y==se->v2->vec.y) {
-                                       se->v1->flag= se->v2->flag= 1;
-                                       oneselected= 1;
-                               }
-                                       if(dir=='v') 
if(se->v1->vec.x==se->v2->vec.x) {
-                                               se->v1->flag= se->v2->flag= 1;
-                                               oneselected= 1;
-                                       }
-                       }
-                               se= se->next;
-               }
-       }
-}
-
 /* validate selection inside screen, set variables OK */
 /* return 0: init failed */
 static int area_move_init (bContext *C, wmOperator *op)

Modified: 
branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c   
2008-12-14 10:33:18 UTC (rev 17832)
+++ branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c   
2008-12-14 10:52:48 UTC (rev 17833)
@@ -68,6 +68,7 @@
        ED_spacetype_image();
        ED_spacetype_node();
        ED_spacetype_buttons();
+       ED_spacetype_info();
 //     ...
        
        /* register operator types for screen and all spaces */

Added: branches/blender2.5/blender/source/blender/editors/space_info/Makefile
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_info/Makefile      
                        (rev 0)
+++ branches/blender2.5/blender/source/blender/editors/space_info/Makefile      
2008-12-14 10:52:48 UTC (rev 17833)
@@ -0,0 +1,53 @@
+#
+# $Id: Makefile 14 2002-10-13 15:57:19Z hans $
+#
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to