[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19054] branches/blender2.5/blender/source /blender/windowmanager/intern/wm.c: 2.5
Revision: 19054 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19054 Author: ton Date: 2009-02-20 11:39:31 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5 Bugfix: on closing wm, it was using a free'd pointer to screen. Modified Paths: -- branches/blender2.5/blender/source/blender/windowmanager/intern/wm.c Modified: branches/blender2.5/blender/source/blender/windowmanager/intern/wm.c === --- branches/blender2.5/blender/source/blender/windowmanager/intern/wm.c 2009-02-20 06:30:47 UTC (rev 19053) +++ branches/blender2.5/blender/source/blender/windowmanager/intern/wm.c 2009-02-20 10:39:31 UTC (rev 19054) @@ -150,6 +150,7 @@ while((win= wm->windows.first)) { BLI_remlink(&wm->windows, win); + win->screen= NULL; /* prevent draw clear to use screen */ wm_draw_window_clear(win); wm_window_free(C, win); } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19055] branches/blender2.5/blender/source /blender/editors: DopeSheet/Graph Editor: Restored Duplicate Keyframes operators (Shift-D) for both of them
Revision: 19055 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19055 Author: aligorith Date: 2009-02-20 12:17:33 +0100 (Fri, 20 Feb 2009) Log Message: --- DopeSheet/Graph Editor: Restored Duplicate Keyframes operators (Shift-D) for both of them Modified Paths: -- branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c branches/blender2.5/blender/source/blender/editors/space_action/action_intern.h branches/blender2.5/blender/source/blender/editors/space_action/action_ops.c branches/blender2.5/blender/source/blender/editors/space_graph/graph_edit.c branches/blender2.5/blender/source/blender/editors/space_graph/graph_intern.h branches/blender2.5/blender/source/blender/editors/space_graph/graph_ops.c Modified: branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c === --- branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c 2009-02-20 10:39:31 UTC (rev 19054) +++ branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c 2009-02-20 11:17:33 UTC (rev 19055) @@ -72,6 +72,8 @@ #include "UI_view2d.h" +#include "BIF_transform.h" + #include "ED_anim_api.h" #include "ED_keyframing.h" #include "ED_keyframes_draw.h" @@ -573,6 +575,83 @@ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/* Duplicate Keyframes Operator * */ + +static void duplicate_action_keys (bAnimContext *ac) +{ + ListBase anim_data = {NULL, NULL}; + bAnimListElem *ale; + int filter; + + /* filter data */ + if (ac->datatype == ANIMCONT_GPENCIL) + filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT); + else + filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY); + ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype); + + /* loop through filtered data and delete selected keys */ + for (ale= anim_data.first; ale; ale= ale->next) { + //if (ale->type == ANIMTYPE_GPLAYER) + // delete_gplayer_frames((bGPDlayer *)ale->data); + //else + duplicate_fcurve_keys((FCurve *)ale->key_data); + } + + /* free filtered list */ + BLI_freelistN(&anim_data); +} + +/* --- */ + +static int actkeys_duplicate_exec(bContext *C, wmOperator *op) +{ + bAnimContext ac; + + /* get editor data */ + if (ANIM_animdata_get_context(C, &ac) == 0) + return OPERATOR_CANCELLED; + + /* duplicate keyframes */ + duplicate_action_keys(&ac); + + /* validate keyframes after editing */ + ANIM_editkeyframes_refresh(&ac); + + /* set notifier tha things have changed */ + ANIM_animdata_send_notifiers(C, &ac, ANIM_CHANGED_KEYFRAMES_VALUES); + + return OPERATOR_FINISHED; // xxx - start transform +} + +static int actkeys_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + actkeys_duplicate_exec(C, op); + + RNA_int_set(op->ptr, "mode", TFM_TIME_TRANSLATE); + WM_operator_name_call(C, "TFM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr); + + return OPERATOR_FINISHED; +} + +void ACT_OT_keyframes_duplicate (wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Duplicate Keyframes"; + ot->idname= "ACT_OT_keyframes_duplicate"; + + /* api callbacks */ + ot->invoke= actkeys_duplicate_invoke; + ot->exec= actkeys_duplicate_exec; + ot->poll= ED_operator_areaactive; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + /* to give to transform */ + RNA_def_int(ot->srna, "mode", TFM_TIME_TRANSLATE, 0, INT_MAX, "Mode", "", 0, INT_MAX); +} + /* Delete Keyframes Operator * */ static void delete_action_keys (bAnimContext *ac) Modified: branches/blender2.5/blender/source/blender/editors/space_action/action_intern.h === --- branches/blender2.5/blender/source/blender/editors/space_action/action_intern.h 2009-02-20 10:39:31 UTC (rev 19054) +++ branches/blender2.5/blender/source/blender/editors/space_action/action_intern.h 2009-02-20 11:17:33 UTC (rev 19055) @@ -83,6 +83,7 @@ void ACT_OT_keyframes_copy(struct wmOperatorType *ot); void ACT_OT_keyframes_paste(struct wmOperatorType *ot); +void ACT_OT_keyframes_duplicate(struct wmOperatorType *ot); void ACT_OT_keyframes_delete(struct wmOperatorType *ot); void ACT_OT_keyframes_clean(struct wmOperatorType *ot); void ACT_OT_keyframes_sample(struct wmOperatorType *ot); Modified: branches/blender2.5/blender/source/blender/editors
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19056] branches/blender2.5/blender/source /blender/blenkernel/intern: 2.5
Revision: 19056 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19056 Author: ton Date: 2009-02-20 17:18:37 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5 Small fixes for animsys: - Blender 2.4x allowed drivers to exist without object target, these got converted resulting in error prints. Now they get skipped. - Animdata struct was not created for objects with poses, but without action/nla linked. - An action-channel-constraint-ipo gets inserted in drivers differently than a pose-bone-constraint-ipo. Not sure yet how... but it makes a different depsgraph relation. Error is of course in depsgraph, that'll get tackled. For correct driver eval I've made 'object update ob' also been called for the 'object update data' tag. Modified Paths: -- branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c branches/blender2.5/blender/source/blender/blenkernel/intern/object.c Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c === --- branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c 2009-02-20 11:17:33 UTC (rev 19055) +++ branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c 2009-02-20 16:18:37 UTC (rev 19056) @@ -1190,8 +1190,13 @@ /* Since an IPO-Curve may end up being made into many F-Curves (i.e. bitflag curves), * we figure out the best place to put the channel, then tell the curve-converter to just dump there */ - if (icu->driver) - icu_to_fcurves(drivers, icu, actname, constname); + if (icu->driver) { + /* Blender 2.4x allowed empty drivers */ + if(icu->driver->ob || icu->driver->type == IPO_DRIVER_TYPE_PYTHON) + icu_to_fcurves(drivers, icu, actname, constname); + else + MEM_freeN(icu->driver); + } else icu_to_fcurves(anim, icu, actname, constname); @@ -1401,6 +1406,10 @@ /* check PoseChannels for constraints with local data */ if (ob->pose) { + + /* Verify if there's AnimData block */ + BKE_id_add_animdata(id); + for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) { for (con= pchan->constraints.first; con; con= con->next) { /* if constraint has own IPO, convert add these to Object Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/object.c === --- branches/blender2.5/blender/source/blender/blenkernel/intern/object.c 2009-02-20 11:17:33 UTC (rev 19055) +++ branches/blender2.5/blender/source/blender/blenkernel/intern/object.c 2009-02-20 16:18:37 UTC (rev 19056) @@ -2268,7 +2268,9 @@ { if(ob->recalc & OB_RECALC) { - if(ob->recalc & OB_RECALC_OB) { + /* XXX new animsys warning: depsgraph tag OB_RECALC_DATA should not skip drivers, + which is only in where_is_object now */ + if(ob->recalc & OB_RECALC) { if (G.f & G_DEBUG) printf("recalcob %s\n", ob->id.name+2); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19057] branches/blender2.5/blender/source /blender/blenloader/intern: 2.5
Revision: 19057 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19057 Author: ton Date: 2009-02-20 17:39:39 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5 Animsys bugfix: files didn't read or write all supported animdata structs yet (key was missing for read, crashing). Now it supports all 10 implemented ID types: OB CU KE MA TE NT LA CA WO SCE Modified Paths: -- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c branches/blender2.5/blender/source/blender/blenloader/intern/writefile.c Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c === --- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-02-20 16:18:37 UTC (rev 19056) +++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c 2009-02-20 16:39:39 UTC (rev 19057) @@ -1519,148 +1519,7 @@ SCRIPT_SET_NULL(script) } -/* READ NODE TREE *** */ -/* singe node tree (also used for material/scene trees), ntree is not NULL */ -static void lib_link_ntree(FileData *fd, ID *id, bNodeTree *ntree) -{ - bNode *node; - - for(node= ntree->nodes.first; node; node= node->next) - node->id= newlibadr_us(fd, id->lib, node->id); -} - -/* library ntree linking after fileread */ -static void lib_link_nodetree(FileData *fd, Main *main) -{ - bNodeTree *ntree; - - /* only link ID pointers */ - for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) { - if(ntree->id.flag & LIB_NEEDLINK) { - ntree->id.flag -= LIB_NEEDLINK; - lib_link_ntree(fd, &ntree->id, ntree); - } - } -} - -/* verify types for nodes and groups, all data has to be read */ -/* open = 0: appending/linking, open = 1: open new file (need to clean out dynamic - * typedefs*/ -static void lib_verify_nodetree(Main *main, int open) -{ - Scene *sce; - Material *ma; - Tex *tx; - bNodeTree *ntree; - - /* this crashes blender on undo/redo - if(open==1) { - reinit_nodesystem(); - }*/ - - /* now create the own typeinfo structs an verify nodes */ - /* here we still assume no groups in groups */ - for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) { - ntreeVerifyTypes(ntree);/* internal nodes, no groups! */ - ntreeMakeOwnType(ntree);/* for group usage */ - } - - /* now verify all types in material trees, groups are set OK now */ - for(ma= main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) - ntreeVerifyTypes(ma->nodetree); - } - /* and scene trees */ - for(sce= main->scene.first; sce; sce= sce->id.next) { - if(sce->nodetree) - ntreeVerifyTypes(sce->nodetree); - } - /* and texture trees */ - for(tx= main->tex.first; tx; tx= tx->id.next) { - if(tx->nodetree) - ntreeVerifyTypes(tx->nodetree); - } -} - - - -/* ntree itself has been read! */ -static void direct_link_nodetree(FileData *fd, bNodeTree *ntree) -{ - /* note: writing and reading goes in sync, for speed */ - bNode *node; - bNodeSocket *sock; - bNodeLink *link; - - ntree->init= 0; /* to set callbacks and force setting types */ - ntree->owntype= NULL; - ntree->timecursor= NULL; - - link_list(fd, &ntree->nodes); - for(node= ntree->nodes.first; node; node= node->next) { - if(node->type == NODE_DYNAMIC) { - node->custom1= 0; - node->custom1= BSET(node->custom1, NODE_DYNAMIC_LOADED); - node->typeinfo= NULL; - } - - node->storage= newdataadr(fd, node->storage); - if(node->storage) { - - /* could be handlerized at some point */ - if(ntree->type==NTREE_SHADER && (node->type==SH_NODE_CURVE_VEC || node->type==SH_NODE_CURVE_RGB)) - direct_link_curvemapping(fd, node->storage); - else if(ntree->type==NTREE_COMPOSIT) { - if( ELEM3(node->type, CMP_NODE_TIME, CMP_NODE_CURVE_VEC, CMP_NODE_CURVE_RGB)) - direct_link_curvemapping(fd, node->storage); - else if(ELEM3(node->type, CMP_NODE_IMAGE, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) - ((ImageUser *)node->storage)->ok= 1; - } - else if( ntree->type==NTREE_TEXTURE && (node->type==TEX_NODE_CURVE_RGB || node->type=
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19058] branches/blender2.5/blender/source /blender/blenfont/CMakeLists.txt: Small tweak to get cmake working again.
Revision: 19058 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19058 Author: sirdude Date: 2009-02-20 18:20:20 +0100 (Fri, 20 Feb 2009) Log Message: --- Small tweak to get cmake working again. Kent Modified Paths: -- branches/blender2.5/blender/source/blender/blenfont/CMakeLists.txt Modified: branches/blender2.5/blender/source/blender/blenfont/CMakeLists.txt === --- branches/blender2.5/blender/source/blender/blenfont/CMakeLists.txt 2009-02-20 16:39:39 UTC (rev 19057) +++ branches/blender2.5/blender/source/blender/blenfont/CMakeLists.txt 2009-02-20 17:20:20 UTC (rev 19058) @@ -26,7 +26,7 @@ SET(INC ../../../intern/guardedalloc ../blenlib ../makesdna ../editors/include - ../blenkernel ../ftfont ../../../extern/glew/include + ../blenkernel ../ftfont ../../../extern/glew/include . ${FTGL_INC} ${FREETYPE_INC} ${GETTEXT_INC} ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19059] branches/blender2.5/blender/source /blender/editors/space_view3d: 2.5
Revision: 19059 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19059 Author: ton Date: 2009-02-20 19:01:33 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5 View3d: - using layerbuttons in header allows SHIFT for extend - added operator for layer hotkeys, works as for 2.4x Modified Paths: -- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c === --- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c 2009-02-20 17:20:20 UTC (rev 19058) +++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c 2009-02-20 18:01:33 UTC (rev 19059) @@ -76,6 +76,9 @@ #include "WM_api.h" #include "WM_types.h" +#include "RNA_access.h" +#include "RNA_define.h" + #include "BIF_gl.h" #include "BIF_glutil.h" #include "BIF_transform.h" @@ -249,6 +252,70 @@ if(v3d->drawtype == OB_SHADED) reshadeall_displist(scene); } +static int layers_exec(bContext *C, wmOperator *op) +{ + Scene *scene= CTX_data_scene(C); + ScrArea *sa= CTX_wm_area(C); + View3D *v3d= sa->spacedata.first; + int nr= RNA_int_get(op->ptr, "nr"); + + if(nr<=0) + return OPERATOR_CANCELLED; + nr--; + + if(RNA_boolean_get(op->ptr, "extend")) + v3d->lay |= (1lay);/* tags all that moves and flushes */ + + ED_area_tag_redraw(sa); + + return OPERATOR_FINISHED; +} + +/* applies shift and alt, lazy coding or ok? :) */ +/* the local per-keymap-entry keymap will solve it */ +static int layers_invoke(bContext *C, wmOperator *op, wmEvent *event) +{ + if(event->ctrl || event->oskey) + return OPERATOR_PASS_THROUGH; + + if(event->shift) + RNA_boolean_set(op->ptr, "extend", 1); + + if(event->alt) { + int nr= RNA_int_get(op->ptr, "nr") + 10; + RNA_int_set(op->ptr, "nr", nr); + } + layers_exec(C, op); + + return OPERATOR_FINISHED; +} + +void VIEW3D_OT_layers(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Layers"; + ot->idname= "VIEW3D_OT_layers"; + + /* api callbacks */ + ot->invoke= layers_invoke; + ot->exec= layers_exec; + ot->poll= ED_operator_view3d_active; + + /* flags */ + ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; + + RNA_def_int(ot->srna, "nr", 1, 0, 20, "Number", "", 0, 20); + RNA_def_boolean(ot->srna, "extend", 0, "Extend", ""); +} + + #if 0 static void do_view3d_view_camerasmenu(bContext *C, void *arg, int event) { @@ -4937,6 +5004,7 @@ static void do_view3d_header_buttons(bContext *C, void *arg, int event) { + wmWindow *win= CTX_wm_window(C); Scene *scene= CTX_data_scene(C); ScrArea *sa= CTX_wm_area(C); View3D *v3d= sa->spacedata.first; @@ -4944,7 +5012,7 @@ Object *ob= CTX_data_active_object(C); Object *obedit = CTX_data_edit_object(C); EditMesh *em= NULL; - int bit, ctrl=0, shift=0; // XXX shift arg? + int bit, ctrl= win->eventstate->ctrl, shift= win->eventstate->shift; if(obedit && obedit->type==OB_MESH) { em= ((Mesh *)obedit->data)->edit_mesh; Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h === --- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h 2009-02-20 17:20:20 UTC (rev 19058) +++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h 2009-02-20 18:01:33 UTC (rev 19059) @@ -55,6 +55,7 @@ /* view3d_header.c */ void view3d_header_buttons(const struct bContext *C, struct ARegion *ar); +void VIEW3D_OT_layers(struct wmOperatorType *ot); /* view3d_ops.c */ void view3d_operatortypes(void); Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c === --- branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c 2009-02-20 17:20:20 UTC (rev 19058) +++ branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_ops.c 2009-02-20 18:01:33 UTC (rev 19059) @@ -86,6 +86,7 @@ WM_operatortype_append(VIEW3D_OT_editmesh_face_toolbox); WM_operatortype_append(VIEW3D_OT_properti
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19060] branches/blender2.5/blender/source /blender/editors/mesh/editmesh_tools.c: 2.5 - temporary hack hack
Revision: 19060 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19060 Author: jesterking Date: 2009-02-20 19:36:27 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5 - temporary hack hack #if 0 main body of EdgeSlide for now - 64bit msvc compiler chokes on it. - added a goto line combo to make the function complete. Modified Paths: -- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c === --- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c 2009-02-20 18:01:33 UTC (rev 19059) +++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_tools.c 2009-02-20 18:36:27 UTC (rev 19060) @@ -3805,6 +3805,12 @@ int EdgeSlide(EditMesh *em, wmOperator *op, short immediate, float imperc) { + return 0; +/* XXX REFACTOR - #if 0'd for now, otherwise can't make 64bit windows builds on 64bit machine */ +#if 0 +useless: + goto useless // because it doesn't do anything right now + // NumInput num; XXX Mesh *me= NULL; // XXX EditFace *efa; @@ -4583,6 +4589,7 @@ } return 1; +#endif // END OF XXX } int EdgeLoopDelete(EditMesh *em, wmOperator *op) ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19061] branches/blender2.5/blender/source /blender: 2.5
Revision: 19061 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19061 Author: ton Date: 2009-02-20 20:11:35 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5 Graph Editor: added region for buttons (properties), so we can check drivers again! Works like view3d, press NKEY. No buttons there yet though... no time anymore today, it'll require some RNA magic probably. Modified Paths: -- branches/blender2.5/blender/source/blender/editors/screen/area.c branches/blender2.5/blender/source/blender/editors/space_graph/graph_intern.h branches/blender2.5/blender/source/blender/editors/space_graph/graph_ops.c branches/blender2.5/blender/source/blender/editors/space_graph/space_graph.c branches/blender2.5/blender/source/blender/makesdna/DNA_screen_types.h Modified: branches/blender2.5/blender/source/blender/editors/screen/area.c === --- branches/blender2.5/blender/source/blender/editors/screen/area.c 2009-02-20 18:36:27 UTC (rev 19060) +++ branches/blender2.5/blender/source/blender/editors/screen/area.c 2009-02-20 19:11:35 UTC (rev 19061) @@ -325,18 +325,27 @@ static void region_rect_recursive(ARegion *ar, rcti *remainder, int quad) { + rcti *remainder_prev= remainder; int prefsizex, prefsizey; + int alignment; if(ar==NULL) return; BLI_init_rcti(&ar->winrct, 0, 0, 0, 0); + /* for test; allow split of previously defined region */ + if(ar->alignment & RGN_SPLIT_PREV) + if(ar->prev) + remainder= &ar->prev->winrct; + + alignment = ar->alignment & ~RGN_SPLIT_PREV; + /* clear state flags first */ ar->flag &= ~RGN_FLAG_TOO_SMALL; /* user errors */ - if(ar->next==NULL && ar->alignment!=RGN_ALIGN_QSPLIT) - ar->alignment= RGN_ALIGN_NONE; + if(ar->next==NULL && alignment!=RGN_ALIGN_QSPLIT) + alignment= RGN_ALIGN_NONE; prefsizex= ar->type->minsizex; prefsizey= ar->type->minsizey; @@ -344,17 +353,17 @@ /* hidden is user flag */ if(ar->flag & RGN_FLAG_HIDDEN); /* XXX floating area region, not handled yet here */ - else if(ar->alignment == RGN_ALIGN_FLOAT); + else if(alignment == RGN_ALIGN_FLOAT); /* remainder is too small for any usage */ else if( rct_fits(remainder, 'v', 1)<0 || rct_fits(remainder, 'h', 1) < 0 ) { ar->flag |= RGN_FLAG_TOO_SMALL; } - else if(ar->alignment==RGN_ALIGN_NONE) { + else if(alignment==RGN_ALIGN_NONE) { /* typically last region */ ar->winrct= *remainder; BLI_init_rcti(remainder, 0, 0, 0, 0); } - else if(ar->alignment==RGN_ALIGN_TOP || ar->alignment==RGN_ALIGN_BOTTOM) { + else if(alignment==RGN_ALIGN_TOP || alignment==RGN_ALIGN_BOTTOM) { if( rct_fits(remainder, 'v', prefsizey) < 0 ) { ar->flag |= RGN_FLAG_TOO_SMALL; @@ -367,7 +376,7 @@ ar->winrct= *remainder; - if(ar->alignment==RGN_ALIGN_TOP) { + if(alignment==RGN_ALIGN_TOP) { ar->winrct.ymin= ar->winrct.ymax - prefsizey + 1; remainder->ymax= ar->winrct.ymin - 1; } @@ -377,7 +386,7 @@ } } } - else if( ELEM4(ar->alignment, RGN_ALIGN_LEFT, RGN_ALIGN_RIGHT, RGN_OVERLAP_LEFT, RGN_OVERLAP_RIGHT)) { + else if( ELEM4(alignment, RGN_ALIGN_LEFT, RGN_ALIGN_RIGHT, RGN_OVERLAP_LEFT, RGN_OVERLAP_RIGHT)) { if( rct_fits(remainder, 'h', prefsizex) < 0 ) { ar->flag |= RGN_FLAG_TOO_SMALL; @@ -390,23 +399,23 @@ ar->winrct= *remainder; - if(ELEM(ar->alignment, RGN_ALIGN_RIGHT, RGN_OVERLAP_RIGHT)) { + if(ELEM(alignment, RGN_ALIGN_RIGHT, RGN_OVERLAP_RIGHT)) { ar->winrct.xmin= ar->winrct.xmax - prefsizex + 1; - if(ar->alignment==RGN_ALIGN_RIGHT) + if(alignment==RGN_ALIGN_RIGHT) remainder->xmax= ar->winrct.xmin - 1; } else { ar->winrct.xmax= ar->winrct.xmin + prefsizex - 1; - if(ar->alignment==RGN_ALIGN_LEFT) + if(alignment==RGN_ALIGN_LEFT) remainder->xmin= ar->winrct.xmax + 1; } }
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19062] branches/blender2.5/blender/source /blender: 2.5: Particle Edit, work in progress commit.
Revision: 19062 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19062 Author: blendix Date: 2009-02-20 21:39:27 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5: Particle Edit, work in progress commit. * Still incomplete and some operators don't work, refresh issues, etc. * Made Hide/Reveal operators consistent for various modes. Modified Paths: -- branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c branches/blender2.5/blender/source/blender/editors/armature/editarmature.c branches/blender2.5/blender/source/blender/editors/armature/poseobject.c branches/blender2.5/blender/source/blender/editors/curve/curve_ops.c branches/blender2.5/blender/source/blender/editors/curve/editcurve.c branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c branches/blender2.5/blender/source/blender/editors/object/object_edit.c branches/blender2.5/blender/source/blender/editors/physics/editparticle.c branches/blender2.5/blender/source/blender/editors/sculpt_paint/sculpt.c branches/blender2.5/blender/source/blender/editors/space_api/spacetypes.c branches/blender2.5/blender/source/blender/editors/space_image/image_header.c branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c branches/blender2.5/blender/source/blender/editors/space_view3d/space_view3d.c branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_buttons.c branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c branches/blender2.5/blender/source/blender/editors/util/undo.c branches/blender2.5/blender/source/blender/editors/uvedit/uvedit_ops.c branches/blender2.5/blender/source/blender/windowmanager/WM_types.h Added Paths: --- branches/blender2.5/blender/source/blender/editors/include/ED_particle.h Removed Paths: - branches/blender2.5/blender/source/blender/editors/include/ED_editparticle.h Modified: branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c === --- branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c 2009-02-20 19:11:35 UTC (rev 19061) +++ branches/blender2.5/blender/source/blender/editors/armature/armature_ops.c 2009-02-20 20:39:27 UTC (rev 19062) @@ -192,7 +192,7 @@ WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, 0, 0); kmi= WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0); - RNA_boolean_set(kmi->ptr, "invert", 1); + RNA_boolean_set(kmi->ptr, "unselected", 1); WM_keymap_add_item(keymap, "POSE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0); /*clear pose*/ WM_keymap_add_item(keymap, "POSE_OT_rot_clear", RKEY, KM_PRESS, KM_ALT, 0); Modified: branches/blender2.5/blender/source/blender/editors/armature/editarmature.c === --- branches/blender2.5/blender/source/blender/editors/armature/editarmature.c 2009-02-20 19:11:35 UTC (rev 19061) +++ branches/blender2.5/blender/source/blender/editors/armature/editarmature.c 2009-02-20 20:39:27 UTC (rev 19062) @@ -4703,7 +4703,7 @@ Object *ob= CTX_data_active_object(C); bArmature *arm= ob->data; - if(RNA_boolean_get(op->ptr, "invert")) + if(RNA_boolean_get(op->ptr, "unselected")) bone_looper(ob, arm->bonebase.first, NULL, hide_unselected_pose_bone); else @@ -4719,7 +4719,7 @@ void POSE_OT_hide(wmOperatorType *ot) { /* identifiers */ - ot->name= "Hide Selection"; + ot->name= "Hide Selected"; ot->idname= "POSE_OT_hide"; /* api callbacks */ @@ -4730,7 +4730,7 @@ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* props */ - RNA_def_boolean(ot->srna, "invert", 0, "Invert", ""); + RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", ""); } static int show_pose_bone(Object *ob, Bone *bone, void *ptr) @@ -4764,7 +4764,7 @@ void POSE_OT_reveal(wmOperatorType *ot) { /* identifiers */ - ot->name= "Reveil Selection"; + ot->name= "Reveal Selected"; ot->idname= "POSE_OT_reveal"; /* api callbacks */ @@ -4773,9 +4773,6 @@ /* flags */ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; - - /* props */ - RNA_def_boolean(ot->srna, "invert", 0, "Invert", ""); }
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19063] branches/blender2.5/blender/source /blender/editors/space_graph: 2.5: Fix build temporarily, seems there was a file missing
Revision: 19063 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19063 Author: blendix Date: 2009-02-20 21:43:22 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5: Fix build temporarily, seems there was a file missing in the graph properties panel commit. Ton, please check. Modified Paths: -- branches/blender2.5/blender/source/blender/editors/space_graph/graph_ops.c branches/blender2.5/blender/source/blender/editors/space_graph/space_graph.c Modified: branches/blender2.5/blender/source/blender/editors/space_graph/graph_ops.c === --- branches/blender2.5/blender/source/blender/editors/space_graph/graph_ops.c 2009-02-20 20:39:27 UTC (rev 19062) +++ branches/blender2.5/blender/source/blender/editors/space_graph/graph_ops.c 2009-02-20 20:43:22 UTC (rev 19063) @@ -99,7 +99,7 @@ WM_operatortype_append(GRAPHEDIT_OT_view_togglehandles); WM_operatortype_append(GRAPHEDIT_OT_set_previewrange); WM_operatortype_append(GRAPHEDIT_OT_view_all); - WM_operatortype_append(GRAPHEDIT_OT_properties); + // XXX file is not in svn: WM_operatortype_append(GRAPHEDIT_OT_properties); /* keyframes */ /* selection */ @@ -202,7 +202,7 @@ /* keymap for all regions */ keymap= WM_keymap_listbase(wm, "GraphEdit Generic", SPACE_IPO, 0); - WM_keymap_add_item(keymap, "GRAPHEDIT_OT_properties", NKEY, KM_PRESS, 0, 0); + // XXX file is not in svn: WM_keymap_add_item(keymap, "GRAPHEDIT_OT_properties", NKEY, KM_PRESS, 0, 0); /* channels */ /* Channels are not directly handled by the Graph Editor module, but are inherited from the Animation module. Modified: branches/blender2.5/blender/source/blender/editors/space_graph/space_graph.c === --- branches/blender2.5/blender/source/blender/editors/space_graph/space_graph.c 2009-02-20 20:39:27 UTC (rev 19062) +++ branches/blender2.5/blender/source/blender/editors/space_graph/space_graph.c 2009-02-20 20:43:22 UTC (rev 19063) @@ -354,7 +354,7 @@ /* set view2d view matrix for scrolling (without scrollers) */ UI_view2d_view_ortho(C, &ar->v2d); - graph_region_buttons(C, ar); + // XXX file is not in svn: graph_region_buttons(C, ar); /* restore view matrix? */ UI_view2d_view_restore(C); ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19064] branches/blender2.5/blender: 2.5 / Scons | Building on 64bit Windows
Revision: 19064 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19064 Author: jesterking Date: 2009-02-20 23:08:02 +0100 (Fri, 20 Feb 2009) Log Message: --- 2.5 / Scons | Building on 64bit Windows * add preliminary support for building Blender on 64bit Windows with _msvc_. The SConstruct should automatically detect if you are on a 64bit Windows and if you have that 64bit build is assumed. If you're not, 32bit build is assumed. NOTE: this is still very much wip, so your mileage may vary. Do please report on b25 taskforce ML in case of trouble. NOTE2: many of the libs are being linked in statically NOTE3: hopefully I didn't break anything for other build platforms (mingw, linux, osx). NOTE4: comes after NOTE3 Modified Paths: -- branches/blender2.5/blender/SConstruct branches/blender2.5/blender/extern/bullet2/src/SConscript branches/blender2.5/blender/extern/solid/SConscript branches/blender2.5/blender/intern/ghost/SConscript branches/blender2.5/blender/source/blender/blenkernel/SConscript branches/blender2.5/blender/source/blender/blenlib/SConscript branches/blender2.5/blender/tools/Blender.py Modified: branches/blender2.5/blender/SConstruct === --- branches/blender2.5/blender/SConstruct 2009-02-20 20:43:22 UTC (rev 19063) +++ branches/blender2.5/blender/SConstruct 2009-02-20 22:08:02 UTC (rev 19064) @@ -29,6 +29,13 @@ # Set up some custom actions and target/argument handling # Then read all SConscripts and build +import platform as pltfrm + +if pltfrm.architecture()[0] == '64bit': + bitness = 64 +else: + bitness = 32 + import sys import os import os.path @@ -132,14 +139,17 @@ env['CXX'] = cxx if env['CC'] in ['cl', 'cl.exe'] and sys.platform=='win32': - platform = 'win32-vc' + if bitness == 64: + platform = 'win64-vc' + else: + platform = 'win32-vc' elif env['CC'] in ['gcc'] and sys.platform=='win32': platform = 'win32-mingw' env.SConscriptChdir(0) crossbuild = B.arguments.get('BF_CROSS', None) -if crossbuild and platform!='win32': +if crossbuild and platform not in ('win32-vc', 'win64-vc'): platform = 'linuxcross' env['OURPLATFORM'] = platform @@ -183,7 +193,7 @@ env['CCFLAGS'].append('-DDISABLE_ELBEEM') if env['WITH_BF_OPENMP'] == 1: - if env['OURPLATFORM']=='win32-vc': + if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): env['CCFLAGS'].append('/openmp') env['CPPFLAGS'].append('/openmp') env['CXXFLAGS'].append('/openmp') @@ -283,7 +293,7 @@ env['BF_NO_ELBEEM'] = True env['WITH_BF_PYTHON'] = False -if env['WITH_BF_SDL'] == False and env['OURPLATFORM'] in ('win32-vc', 'win32-ming'): +if env['WITH_BF_SDL'] == False and env['OURPLATFORM'] in ('win32-vc', 'win32-ming', 'win64-vc'): env['PLATFORM_LINKFLAGS'].remove('/ENTRY:mainCRTStartup') env['PLATFORM_LINKFLAGS'].append('/ENTRY:main') @@ -390,7 +400,7 @@ thesyslibs = B.setup_syslibs(env) if 'blender' in B.targets or not env['WITH_BF_NOBLENDER']: - env.BlenderProg(B.root_build_dir, "blender", dobj + mainlist, [], thestatlibs + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender') + env.BlenderProg(B.root_build_dir, "blender", dobj , [], mainlist + thestatlibs + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender') if env['WITH_BF_PLAYER']: playerlist = B.create_blender_liblist(env, 'player') env.BlenderProg(B.root_build_dir, "blenderplayer", dobj + playerlist, [], thestatlibs + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer') @@ -471,7 +481,6 @@ if '.svn' in tn: tn.remove('.svn') for f in tf: - print ">>>", env['BF_INSTALLDIR'], tp, f iconlist.append(tp+os.sep+f) icontargetlist.append(env['BF_INSTALLDIR']+tp[19:]+os.sep+f) @@ -496,7 +505,6 @@ if '.svn' in tn: tn.remove('.svn') for f in tf: - print ">>>", env['BF_INSTALLDIR'], tp, f pluglist.append(tp+os.sep+f) plugtargetlist.append(env['BF_INSTALLDIR']+tp[7:]+os.sep+f) @@ -540,14 +548,20 @@ else: allinstall = [blenderinstall, dotblenderinstall, scriptinstall, plugininstall, textinstall] -if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw'): - dllsources = ['${LCGDIR}/gettext/lib/gnu_gettext.dll', - '${BF_PNG_LIBPATH}/libpng.dll', - '${BF_ZLIB_LIBPATH}/zlib.dll', - '${BF_TIFF_LIBPATH}/${BF_TIFF_LIB}.dll'] +i
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19065] trunk/blender/source/blender/ blenlib/intern/bpath.c: bugfix [#17941] Attempting to change path of audio to relative fails.
Revision: 19065 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19065 Author: campbellbarton Date: 2009-02-21 04:02:39 +0100 (Sat, 21 Feb 2009) Log Message: --- bugfix [#17941] Attempting to change path of audio to relative fails. Modified Paths: -- trunk/blender/source/blender/blenlib/intern/bpath.c Modified: trunk/blender/source/blender/blenlib/intern/bpath.c === --- trunk/blender/source/blender/blenlib/intern/bpath.c 2009-02-20 22:08:02 UTC (rev 19064) +++ trunk/blender/source/blender/blenlib/intern/bpath.c 2009-02-21 03:02:39 UTC (rev 19065) @@ -339,9 +339,9 @@ bSound *snd = (bSound *)bpi->data; bpi->lib = snd->id.lib ? snd->id.lib->filename : NULL; - bpi->path = snd->sample->name; + bpi->path = snd->name; bpi->name = snd->id.name+2; - bpi->len = sizeof(snd->sample->name); + bpi->len = sizeof(snd->name); /* we are done, advancing to the next item, this type worked fine */ break; ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19066] branches/blender2.5/blender/ SConstruct: 2.5 - Fixed compiling for scons + mingw
Revision: 19066 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19066 Author: aligorith Date: 2009-02-21 04:26:03 +0100 (Sat, 21 Feb 2009) Log Message: --- 2.5 - Fixed compiling for scons + mingw jesterKing: please check on this, since it seems to be basic typos only? See my mail to the list for details of the error. Modified Paths: -- branches/blender2.5/blender/SConstruct Modified: branches/blender2.5/blender/SConstruct === --- branches/blender2.5/blender/SConstruct 2009-02-21 03:02:39 UTC (rev 19065) +++ branches/blender2.5/blender/SConstruct 2009-02-21 03:26:03 UTC (rev 19066) @@ -400,7 +400,8 @@ thesyslibs = B.setup_syslibs(env) if 'blender' in B.targets or not env['WITH_BF_NOBLENDER']: - env.BlenderProg(B.root_build_dir, "blender", dobj , [], mainlist + thestatlibs + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender') + #env.BlenderProg(B.root_build_dir, "blender", dobj , [], mainlist + thestatlibs + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender') + env.BlenderProg(B.root_build_dir, "blender", dobj + mainlist, [], thestatlibs + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blender') if env['WITH_BF_PLAYER']: playerlist = B.create_blender_liblist(env, 'player') env.BlenderProg(B.root_build_dir, "blenderplayer", dobj + playerlist, [], thestatlibs + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer') @@ -552,7 +553,7 @@ if env['OURPLATFORM'] == 'win64-vc': dllsources = [] else: - dllsources = ['${LCGDIR}/gettext/lib/gettext.dll', + dllsources = ['${LCGDIR}/gettext/lib/gnu_gettext.dll', '${BF_PNG_LIBPATH}/libpng.dll', '${BF_ZLIB_LIBPATH}/zlib.dll', '${BF_TIFF_LIBPATH}/${BF_TIFF_LIB}.dll'] ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19067] trunk/blender/source/blender/ blenkernel/intern/node.c: [#18058] Black dots appear when blender renders with multi-thread and material nodes
Revision: 19067 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19067 Author: campbellbarton Date: 2009-02-21 05:42:46 +0100 (Sat, 21 Feb 2009) Log Message: --- [#18058] Black dots appear when blender renders with multi-thread and material nodes Without thread locking the function that allocates new threads, black dots appear in renders. This wont affect composite nodes, Ton/Brecht - this is possibly too many lock/unlocks but I timed the render from the bug report and it didn't make a noticeable difference. Modified Paths: -- trunk/blender/source/blender/blenkernel/intern/node.c Modified: trunk/blender/source/blender/blenkernel/intern/node.c === --- trunk/blender/source/blender/blenkernel/intern/node.c 2009-02-21 03:26:03 UTC (rev 19066) +++ trunk/blender/source/blender/blenkernel/intern/node.c 2009-02-21 04:42:46 UTC (rev 19067) @@ -1999,19 +1999,23 @@ { ListBase *lb= &ntree->threadstack[thread]; bNodeThreadStack *nts; - + + /* for material shading this is called quite a lot (perhaps too much locking unlocking) +* however without locking we get bug #18058 - Campbell */ + BLI_lock_thread(LOCK_CUSTOM1); + for(nts=lb->first; nts; nts=nts->next) { if(!nts->used) { nts->used= 1; + BLI_unlock_thread(LOCK_CUSTOM1); return nts; } } - nts= MEM_callocN(sizeof(bNodeThreadStack), "bNodeThreadStack"); nts->stack= MEM_dupallocN(ntree->stack); nts->used= 1; BLI_addtail(lb, nts); - + BLI_unlock_thread(LOCK_CUSTOM1); return nts; } ___ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs
[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19068] branches/blender2.5/blender/source /blender/editors: * Added back 'Insert Key' operator for DopeSheet editor
Revision: 19068 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19068 Author: aligorith Date: 2009-02-21 06:04:12 +0100 (Sat, 21 Feb 2009) Log Message: --- * Added back 'Insert Key' operator for DopeSheet editor * Fixed button spacing problems in TimeLine Modified Paths: -- branches/blender2.5/blender/source/blender/editors/animation/anim_channels.c branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c branches/blender2.5/blender/source/blender/editors/space_action/action_intern.h branches/blender2.5/blender/source/blender/editors/space_action/action_ops.c branches/blender2.5/blender/source/blender/editors/space_time/time_header.c Modified: branches/blender2.5/blender/source/blender/editors/animation/anim_channels.c === --- branches/blender2.5/blender/source/blender/editors/animation/anim_channels.c 2009-02-21 04:42:46 UTC (rev 19067) +++ branches/blender2.5/blender/source/blender/editors/animation/anim_channels.c 2009-02-21 05:04:12 UTC (rev 19068) @@ -1211,6 +1211,7 @@ /* if group is selected now, and we're in Action Editor mode (so that we have pointer to active action), * we can make this group the 'active' one in that action */ + // TODO: we should be able to do this through dopesheet + f-curves editor too... if ((agrp->flag & AGRP_SELECTED) && (ac->datatype == ANIMCONT_ACTION)) action_set_active_agrp((bAction *)ac->data, agrp); } Modified: branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c === --- branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c 2009-02-21 04:42:46 UTC (rev 19067) +++ branches/blender2.5/blender/source/blender/editors/space_action/action_edit.c 2009-02-21 05:04:12 UTC (rev 19068) @@ -235,9 +235,6 @@ /* ** */ /* GENERAL STUFF */ -// TODO: -// - insert key - /* Copy/Paste Keyframes Operator * */ /* - The copy/paste buffer currently stores a set of temporary F-Curves containing only the keyframes * that were selected in each of the original F-Curves @@ -575,6 +572,188 @@ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; } +/* Insert Keyframes Operator * */ + +/* defines for insert keyframes tool */ +EnumPropertyItem prop_actkeys_insertkey_types[] = { + {1, "ALL", "All Channels", ""}, + {2, "SEL", "Only Selected Channels", ""}, + {3, "GROUP", "In Active Group", ""}, // xxx not in all cases + {0, NULL, NULL, NULL} +}; + +#if 0 +void insertkey_action(void) +{ + void *data; + short datatype; + + short mode; + float cfra; + + /* get data */ + data= get_action_context(&datatype); + if (data == NULL) return; + cfra = frame_to_float(CFRA); + + if (ELEM(datatype, ACTCONT_ACTION, ACTCONT_DOPESHEET)) { + ListBase act_data = {NULL, NULL}; + bActListElem *ale; + int filter; + + /* ask user what to keyframe */ + if (datatype == ACTCONT_ACTION) + mode = pupmenu("Insert Key%t|All Channels%x1|Only Selected Channels%x2|In Active Group%x3"); + else + mode = pupmenu("Insert Key%t|All Channels%x1|Only Selected Channels%x2"); + if (mode <= 0) return; + + /* filter data */ + filter= (ACTFILTER_VISIBLE | ACTFILTER_FOREDIT | ACTFILTER_ONLYICU ); + if (mode == 2) filter |= ACTFILTER_SEL; + else if (mode == 3) filter |= ACTFILTER_ACTGROUPED; + + actdata_filter(&act_data, filter, data, datatype); + + /* loop through ipo curves retrieved */ + for (ale= act_data.first; ale; ale= ale->next) { + /* verify that this is indeed an ipo curve */ + if ((ale->key_data) && ((ale->owner) || (ale->id))) { + bActionChannel *achan= (ale->ownertype==ACTTYPE_ACHAN) ? ((bActionChannel *)ale->owner) : (NULL); + bConstraintChannel *conchan= (ale->type==ACTTYPE_CONCHAN) ? ale->data : NULL; + IpoCurve *icu= (IpoCurve *)ale->key_data; + ID *id= NULL; + + if