logplus/ModuleConsole/command/include/SaveAsTemplateCmd.h
2026-01-16 17:18:41 +08:00

98 lines
2.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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