Revision: 19423
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19423
Author:   campbellbarton
Date:     2009-03-27 07:06:11 +0100 (Fri, 27 Mar 2009)

Log Message:
-----------
* sequencer transform needs t->data not to be freed by postTrans so 
special_aftertrans_update can use it.
* text header needs a static char* so text is not rendered as gibberish. (until 
labels own their own strings)
* epy_doc_gen.py - write out a graphviz representation of the data api.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/space_text/text_header.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
    branches/blender2.5/blender/source/blender/python/epy_doc_gen.py

Modified: 
branches/blender2.5/blender/source/blender/editors/space_text/text_header.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_text/text_header.c 
2009-03-27 06:05:49 UTC (rev 19422)
+++ branches/blender2.5/blender/source/blender/editors/space_text/text_header.c 
2009-03-27 06:06:11 UTC (rev 19423)
@@ -388,7 +388,8 @@
 
        /* file info */
        if(text) {
-               char fname[HEADER_PATH_MAX], headtxt[HEADER_PATH_MAX+17];
+               char fname[HEADER_PATH_MAX];
+               static char headtxt[HEADER_PATH_MAX+17];
                int len;
 
                if(text->name) {

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
        2009-03-27 06:05:49 UTC (rev 19422)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
        2009-03-27 06:06:11 UTC (rev 19423)
@@ -4386,7 +4386,6 @@
                        ListBase *seqbasep= ed->seqbasep;
                        int a;
                        TransData *td= t->data;
-                       TransData2D *td2d= t->data2d;
                        TransDataSeq *tdsq= NULL;
                        Sequence *seq;
 
@@ -4398,7 +4397,7 @@
                        Sequence *seq_prev= NULL;
 
                        /* flush to 2d vector from internally used 3d vector */
-                       for(a=0; a<t->total; a++, td++, td2d++) {
+                       for(a=0; a<t->total; a++, td++) {
 
                                tdsq= (TransDataSeq *)td->extra;
                                seq= tdsq->seq;
@@ -4429,7 +4428,8 @@
                
                if (t->customData)
                        MEM_freeN(t->customData);
-
+               if (t->data)
+                       MEM_freeN(t->data); // XXX postTrans useually does this
        }
        else if (t->spacetype == SPACE_ACTION) {
                SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first;

Modified: 
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- 
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
   2009-03-27 06:05:49 UTC (rev 19422)
+++ 
branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
   2009-03-27 06:06:11 UTC (rev 19423)
@@ -841,7 +841,7 @@
        }
        
        /* postTrans can be called when nothing is selected, so data is NULL 
already */
-       if (t->data) {
+       if (t->data && (t->spacetype != SPACE_SEQ)) { // XXX SEQ Exception is 
needed because of special_aftertrans_update using t->data
                int a;
 
                /* since ipokeys are optional on objects, we mallocced them per 
trans-data */

Modified: branches/blender2.5/blender/source/blender/python/epy_doc_gen.py
===================================================================
--- branches/blender2.5/blender/source/blender/python/epy_doc_gen.py    
2009-03-27 06:05:49 UTC (rev 19422)
+++ branches/blender2.5/blender/source/blender/python/epy_doc_gen.py    
2009-03-27 06:06:11 UTC (rev 19423)
@@ -246,10 +246,7 @@
        for rna_refs in rna_references_dict.values():
                rna_refs.sort()
        
-       structs = [data[2] for data in structs]
-       
-       for rna_struct in structs:
-               # print(type(rna_struct))
+       for (rna_base, identifier, rna_struct) in structs:
                if rna_struct.nested:
                        continue
                
@@ -261,6 +258,70 @@
        
        # # We could also just run....
        # os.system('epydoc source/blender/python/doc/rna.py -o 
./source/blender/python/doc/html -v')
+       
+       
+       # Write graphviz
+       out= open(target_path.replace('.py', '.dot'), 'w')
+       out.write('digraph "rna data api" {\n')
+       out.write('\tnode [style=filled, shape = "box"];\n')
+       out.write('\toverlap=false;\n')
+       out.write('\trankdir = LR;\n')
+       out.write('\tsplines=true;\n')
+       out.write('\tratio=auto;\n')
+       
+       
+       
+       out.write('\tsize="10,10"\n')
+       #out.write('\tpage="8.5,11"\n')
+       #out.write('\tcenter=""\n')
+       
+       def isop(rna_struct):
+               return '_OT_' in rna_struct.identifier
+       
+       
+       for (rna_base, identifier, rna_struct) in structs:
+               if isop(rna_struct):
+                       continue
+               
+               base = rna_struct.base
+               
+               
+               out.write('\t"%s";\n' % identifier)
+       
+       for (rna_base, identifier, rna_struct) in structs:
+               
+               if isop(rna_struct):
+                       continue
+                       
+               base = rna_struct.base
+               
+               if base and not isop(base):
+                       out.write('\t"%s" -> "%s" [label="(base)" 
weight=1.0];\n' % (base.identifier, identifier))
+               
+               nested = rna_struct.nested
+               if nested and not isop(nested):
+                       out.write('\t"%s" -> "%s" [label="(nested)"  
weight=1.0];\n' % (nested.identifier, identifier))
+               
+               
+               
+               rna_refs= rna_references_dict[identifier]
+               
+               for rna_ref_string in rna_refs:
+                       
+                       if '_OT_' in rna_ref_string:
+                               continue
+                       
+                       ref = rna_ref_string.split('.')[-2]
+                       out.write('\t"%s" -> "%s" [label="%s" weight=0.01];\n' 
% (ref, identifier, rna_ref_string))
+               
+               
+       
+       out.write('}\n')
+       out.close()
+       
+       # # We could also just run....
+       # os.system('dot source/blender/python/doc/rna.dot -Tsvg -o 
./source/blender/python/doc/rna.svg')
+       
 
 def op2epy(target_path):
        out = open(target_path, 'w')


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

Reply via email to