/* * @file ZoomInCmd.cpp */ #include "ZoomInCmd.h" #include "WorkflowSceneManager.h" #include "WorkflowConst.h" namespace pai { ZoomInCmd::ZoomInCmd(QGraphicsView *view, QUndoCommand *parent) :QUndoCommand(parent) { m_pView = view; } ZoomInCmd::~ZoomInCmd() { } void ZoomInCmd::undo() { if (m_pView == NULL) { return; } pai::graphics2d::WorkflowSceneManager *pWorkflowScene = dynamic_cast(m_pView->scene()); if(pWorkflowScene) { //将放大的场景视图按比例缩小 m_pView->scale(1/1.1, 1/1.1); //将缩放次数减1 if(pWorkflowScene->GetZoomCount() > ZOOM_MINCOUNT) { pWorkflowScene->SetZoomCount(pWorkflowScene->GetZoomCount()-1); } m_pView->show(); } } void ZoomInCmd::redo() { if (m_pView == NULL) { return; } pai::graphics2d::WorkflowSceneManager *pWorkflowScene = dynamic_cast(m_pView->scene()); if(pWorkflowScene) { //将缩小的场景视图按比例放大 m_pView->scale(1/0.9, 1/0.9); //将缩放次数加1 if(pWorkflowScene->GetZoomCount() < ZOOM_MAXCOUNT) { pWorkflowScene->SetZoomCount(pWorkflowScene->GetZoomCount()+1); } m_pView->show(); } } }