98 lines
2.7 KiB
C++
98 lines
2.7 KiB
C++
/*
|
||
* @file SaveAsTemplateCmd.h
|
||
* @brief 另存为工作流模板
|
||
* @date: 2012-12-10
|
||
* @author: liujunxia
|
||
*/
|
||
|
||
#ifndef PAI_FRAME_WORKFLOWVIEW_SAVEASTEMPLATECMD_H_
|
||
#define PAI_FRAME_WORKFLOWVIEW_SAVEASTEMPLATECMD_H_
|
||
|
||
#include <QUuid>
|
||
#include <QUndoCommand>
|
||
|
||
enum TemplateSaveType
|
||
{
|
||
SaveTemplate_DoCancel = 0x00000000, /**<取消,不保存 */
|
||
SaveTemplate_DoOpenDialog = 0x00000001, /**<不覆盖,继续打开保存对话框 一般是点击了不覆盖后设置的*/
|
||
SaveTemplate_Save = 0x00000010, /**< 不保存*/
|
||
};
|
||
|
||
namespace pai
|
||
{
|
||
class CPaiWorkflowTemplateTree;
|
||
namespace objectmodel
|
||
{
|
||
class PaiObject;
|
||
class PaiWorkflowDataModel;
|
||
}
|
||
|
||
class SaveAsTemplateCmd :public QUndoCommand
|
||
{
|
||
public:
|
||
SaveAsTemplateCmd(pai::CPaiWorkflowTemplateTree* pTemplateTree,
|
||
pai::objectmodel::PaiWorkflowDataModel *pActiveWorkflow, QUndoCommand *parent = 0);
|
||
|
||
virtual ~SaveAsTemplateCmd();
|
||
/**
|
||
* @brief undo
|
||
*/
|
||
void undo();
|
||
/**
|
||
* @brief redo
|
||
*/
|
||
void redo();
|
||
/**
|
||
* @brief 获得保存是否成功的结果。
|
||
*/
|
||
private:
|
||
/**
|
||
* @brief 处理将当前工作流另存为的操作
|
||
* @param[out] 返回是否进行另存并保存成功。
|
||
*/
|
||
bool _HandleSaveAsTemplate();
|
||
/**
|
||
* @brief 拷贝当前工作流
|
||
*/
|
||
pai::objectmodel::PaiWorkflowDataModel* _CopyWorkflow();
|
||
/**
|
||
* @brief 获得重名的工作流模型对象
|
||
* @param[out] 工作流模型对象指针,PaiObject类型的
|
||
*/
|
||
pai::objectmodel::PaiObject* _GetOldSameNameWorkflow();
|
||
/**
|
||
* @brief 打开工作流模板保存对话框
|
||
*/
|
||
int OpenSaveDialog(QString &strTemplateName);
|
||
/**
|
||
* @brief 打开工作流模板另存为对话框
|
||
*/
|
||
int OpenSaveAsDialog(QString &strTemplateName);
|
||
/**
|
||
* @brief 打开工作流保存对话框
|
||
* @param bSave 区分Save 和 Save as操作 save 为 true, save as 为 false。
|
||
* @param workflowName 工作流名称,也是返回数据
|
||
* @param[out] 保存类型,见SaveType
|
||
*/
|
||
int OpenSaveDialog(bool bSave, QString &strTemplateName);
|
||
/**
|
||
* @brief 验证保存模板的名字
|
||
* @param bSave 区分Save 和 Save as操作 save 为 true, save as 为 false。
|
||
* @param strTemplateName 工作流的名字
|
||
* @param[out] 见SaveType
|
||
*/
|
||
int ValidateSaveTemplateName(QString strTemplateName);
|
||
|
||
private:
|
||
pai::objectmodel::PaiWorkflowDataModel * m_pOldWorkflow; //备份原来的当前工作流
|
||
pai::objectmodel::PaiObject* m_pSameNameTemplate; //同名工作流
|
||
QString m_strNewTtemplateName; //另存为的工作流的名字
|
||
int m_SaveType; //保存类型
|
||
bool m_bSaveSuccess;
|
||
pai::CPaiWorkflowTemplateTree* m_pTemplateTree;
|
||
pai::objectmodel::PaiWorkflowDataModel *m_pActiveWorkflow;
|
||
};
|
||
}
|
||
|
||
#endif /* SAVEASTEMPLATECMD_H_ */
|