|
DAWorkbench 0.0.1
DAWorkbench API
|
节点添加命令 更多...
#include <DACommandsForWorkFlowNodeGraphics.h>
Public 成员函数 | |
| DACommandsForWorkFlowAddNodeItem (DANodeGraphicsScene *scene, DAAbstractNodeGraphicsItem *item, QUndoCommand *parent=nullptr) | |
| void | redo () |
| void | undo () |
节点添加命令
| DA::DACommandsForWorkFlowAddNodeItem::DACommandsForWorkFlowAddNodeItem | ( | DANodeGraphicsScene * | scene, |
| DAAbstractNodeGraphicsItem * | item, | ||
| QUndoCommand * | parent = nullptr |
||
| ) |
针对在命令的构造函数中就直接执行了创建或者删除动作的情况, 创建的命令mNeedDelete初始要为true,否则创建此命令,但没推入stack就会出现内存泄露 但要注意redo时一定要把mNeedDelete设置好 反之亦然,删除的命令,needdelete应该为false
| void DA::DACommandsForWorkFlowAddNodeItem::redo | ( | ) |
这里要把node保存下来,node是智能指针,如果用户正常操作添加,addNode_,node的智能指针是有其它地方的实例不会析构 但是,如果是打开工程,打开后再删除,这样ndoe是没有其它地方的实例,wf->removeNode会直接把node析构了, 如果这里直接removeNode,节点就会被析构, 因此,为了避免node析构,这里要把node再保存下来