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_ */
|