Reduce connectivity for VMainGraphicsView class.

Use a signal instead of direct read of a main window to trigger zoom fit best.
This commit is contained in:
Roman Telezhynskyi 2020-12-27 16:35:17 +02:00
parent 6f3e65e30e
commit 936011a8d6
3 changed files with 4 additions and 5 deletions

View File

@ -504,6 +504,7 @@ void MainWindow::InitScenes()
connect(ui->view, &VMainGraphicsView::MouseRelease, this, [this](){EndVisualization(true);});
connect(ui->view, &VMainGraphicsView::ScaleChanged, this, &MainWindow::ScaleChanged);
connect(ui->view, &VMainGraphicsView::ZoomFitBestCurrent, this, [this](){ZoomFitBestCurrent();});
QSizePolicy policy(QSizePolicy::Expanding, QSizePolicy::Expanding);
policy.setHorizontalStretch(12);
ui->view->setSizePolicy(policy);

View File

@ -55,7 +55,7 @@
#include "vmaingraphicsscene.h"
#include "vsimplecurve.h"
#include "vcontrolpointspline.h"
#include "../vmisc/vabstractvalapplication.h"
#include "../vmisc/vabstractapplication.h"
#include "../vmisc/vcommonsettings.h"
#include "vabstractmainwindow.h"
#include "global.h"
@ -645,10 +645,7 @@ void VMainGraphicsView::mouseDoubleClickEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton && qApp->Settings()->IsDoubleClickZoomFitBestCurrentPP())
{
if (VAbstractMainWindow *window = qobject_cast<VAbstractMainWindow *>(qApp->getMainWindow()))
{
window->ZoomFitBestCurrent();
}
emit ZoomFitBestCurrent();
}
QGraphicsView::mouseDoubleClickEvent(event);

View File

@ -149,6 +149,7 @@ signals:
void MouseRelease();
void itemClicked(QGraphicsItem *item);
void ScaleChanged(qreal scale);
void ZoomFitBestCurrent();
public slots:
void Zoom(qreal scale);
void ZoomIn();