102 lines
2.6 KiB
C++
102 lines
2.6 KiB
C++
/**
|
|
* @file SaveAsWorkflowCmd.h
|
|
* @brief 另存为工作流
|
|
* @date 2012-10-17
|
|
*/
|
|
#ifndef PAI_FRAME_WORKFLOWWIDGET_SAVEASWORKFLOWCMD_H
|
|
#define PAI_FRAME_WORKFLOWWIDGET_SAVEASWORKFLOWCMD_H
|
|
|
|
#include <QUndoCommand>
|
|
|
|
namespace pai
|
|
{
|
|
namespace objectmodel
|
|
{
|
|
class PaiObject;
|
|
class PaiSurvey;
|
|
class PaiWorkflowDataModel;
|
|
}
|
|
}
|
|
|
|
namespace pai
|
|
{
|
|
/**
|
|
* @class SaveAsWorkflowCmd
|
|
* @brief 保存工作流
|
|
*/
|
|
class SaveAsWorkflowCmd :public QUndoCommand
|
|
{
|
|
public:
|
|
/**
|
|
* @brief 构造函数
|
|
* @param[in] viewID 工作流常见ID
|
|
* @param[in] pActiveWorkflow 活动工作流
|
|
* @param[in] pParent 父亲
|
|
*/
|
|
SaveAsWorkflowCmd(QUuid viewID,
|
|
pai::objectmodel::PaiWorkflowDataModel *pActiveWorkflow,
|
|
QUndoCommand *pParent = NULL);
|
|
|
|
/**
|
|
* @brief 析构函数
|
|
*/
|
|
virtual ~SaveAsWorkflowCmd();
|
|
|
|
/**
|
|
* @brief undo
|
|
*/
|
|
void undo();
|
|
|
|
/**
|
|
* @brief redo
|
|
*/
|
|
void redo();
|
|
|
|
/**
|
|
* @brief 获得保存是否成功的结果。
|
|
* @return 保存结果
|
|
*/
|
|
bool GetSaveAsResult() const;
|
|
|
|
private:
|
|
/**
|
|
* @brief 处理将当前工作流另存为的操作
|
|
*/
|
|
bool HandleSaveAsWorkflow();
|
|
|
|
/**
|
|
* @brief 获得重名的工作流模型对象
|
|
* @return 工作流模型对象指针
|
|
*/
|
|
pai::objectmodel::PaiObject* GetOldSameNameWorkflow() const;
|
|
|
|
/**
|
|
* @brief 保存失败后恢复原来状态
|
|
*/
|
|
void RestoreWorkflow();
|
|
|
|
/**
|
|
* @brief 拷贝当前工作流,并将拷贝后的工作流设置为新的当前工作流
|
|
*/
|
|
void CopyWorkflow();
|
|
|
|
/**
|
|
* @brief 处理工作流tab页内工作流模型和tab页名以及树节点选择
|
|
*/
|
|
bool HandleExtensionTabAndNodeSelection();
|
|
|
|
private:
|
|
QUuid m_ViewID; ///< 视图ID
|
|
pai::objectmodel::PaiSurvey *m_pSurvey; ///< 工区
|
|
pai::objectmodel::PaiWorkflowDataModel *m_pOldWorkflow; ///< 备份原来的当前工作流
|
|
pai::objectmodel::PaiObject *m_pOldSameNameWorkflow; ///< 同名工作流
|
|
QString m_NewWorkflowName; ///< 另存为的工作流的名字
|
|
int m_SaveType; ///< 保存类型
|
|
bool m_SaveSuccess; ///< 保存结果
|
|
pai::objectmodel::PaiWorkflowDataModel *m_pActiveWorkflow; ///< 活动工作流
|
|
};
|
|
|
|
}
|
|
|
|
#endif ///< PAI_FRAME_WORKFLOWWIDGET_SAVEASWORKFLOWCMD_H
|