65 lines
1.2 KiB
C++
65 lines
1.2 KiB
C++
/*
|
|
* @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<pai::graphics2d::WorkflowSceneManager *>(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<pai::graphics2d::WorkflowSceneManager *>(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();
|
|
}
|
|
}
|
|
}
|
|
|