logplus/ModuleConsole/command/src/ZoomInCmd.cpp
2026-01-16 17:18:41 +08:00

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();
}
}
}