From 3769dbeeb9f5dbea977bad86cd9b1d0fd6105c9a Mon Sep 17 00:00:00 2001 From: wandererfan Date: Mon, 4 Sep 2023 19:43:47 -0400 Subject: [PATCH] [TD]add support for view menu zoom --- src/Mod/TechDraw/Gui/MDIViewPage.cpp | 28 +++++++++++++++++++++++++++- src/Mod/TechDraw/Gui/MDIViewPage.h | 10 ++++++---- src/Mod/TechDraw/Gui/QGVPage.cpp | 10 ++++++++++ src/Mod/TechDraw/Gui/QGVPage.h | 3 +++ 4 files changed, 46 insertions(+), 5 deletions(-) diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.cpp b/src/Mod/TechDraw/Gui/MDIViewPage.cpp index e8f0a99f02..86884a5534 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.cpp +++ b/src/Mod/TechDraw/Gui/MDIViewPage.cpp @@ -203,6 +203,14 @@ bool MDIViewPage::onMsg(const char* pMsg, const char**) Gui::Command::updateActive(); return true; } + else if (strcmp("ZoomIn", pMsg) == 0) { + zoomIn(); + return true; + } + else if (strcmp("ZoomOut", pMsg) == 0) { + zoomOut(); + return true; + } return false; } @@ -236,10 +244,28 @@ bool MDIViewPage::onHasMsg(const char* pMsg) const else if (strcmp("PrintAll", pMsg) == 0) { return true; } + else if (strcmp("ZoomIn", pMsg) == 0) { + return true; + } + else if (strcmp("ZoomOut", pMsg) == 0) { + return true; + } return false; } -//called by ViewProvider when Page feature Label changes +// handle a zoomIn message from the menu +void MDIViewPage::zoomIn() +{ + m_vpPage->getQGVPage()->zoomIn(); +} + +// handle a zoomOut message from the menu +void MDIViewPage::zoomOut() +{ + m_vpPage->getQGVPage()->zoomOut(); +} + +// called by ViewProvider when Page feature Label changes void MDIViewPage::setTabText(std::string tabText) { if (!isPassive() && !tabText.empty()) { diff --git a/src/Mod/TechDraw/Gui/MDIViewPage.h b/src/Mod/TechDraw/Gui/MDIViewPage.h index d44fdfc9b6..2df7c3539c 100644 --- a/src/Mod/TechDraw/Gui/MDIViewPage.h +++ b/src/Mod/TechDraw/Gui/MDIViewPage.h @@ -64,7 +64,6 @@ public: void addChildrenToPage(); - /// Observer message from the Tree Selection mechanism void onSelectionChanged(const Gui::SelectionChanges& msg) override; void preSelectionChanged(const QPoint &pos); @@ -99,9 +98,12 @@ public: TechDraw::DrawPage* dPage, double& width, double& height); - void saveSVG(std::string file); - void saveDXF(std::string file); - void savePDF(std::string file); + void saveSVG(std::string fileName); + void saveDXF(std::string fileName); + void savePDF(std::string fileName); + + void zoomIn(); + void zoomOut(); void setDocumentObject(const std::string&); void setDocumentName(const std::string&); diff --git a/src/Mod/TechDraw/Gui/QGVPage.cpp b/src/Mod/TechDraw/Gui/QGVPage.cpp index 18bb6e419a..e0629ee237 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.cpp +++ b/src/Mod/TechDraw/Gui/QGVPage.cpp @@ -561,6 +561,16 @@ void QGVPage::setPanCursor() { activateCursor(panCursor); } void QGVPage::setZoomCursor() { activateCursor(zoomCursor); } +void QGVPage::zoomIn() +{ + m_navStyle->zoomIn(); +} + +void QGVPage::zoomOut() +{ + m_navStyle->zoomOut(); +} + void QGVPage::drawForeground(QPainter* painter, const QRectF& rect) { Q_UNUSED(rect); diff --git a/src/Mod/TechDraw/Gui/QGVPage.h b/src/Mod/TechDraw/Gui/QGVPage.h index 7ae6a8e486..9e3868ee5f 100644 --- a/src/Mod/TechDraw/Gui/QGVPage.h +++ b/src/Mod/TechDraw/Gui/QGVPage.h @@ -122,6 +122,9 @@ public: TechDraw::DrawView* getBalloonParent() { return m_balloonParent; } + void zoomIn(); + void zoomOut(); + public Q_SLOTS: void setHighQualityAntialiasing(bool highQualityAntialiasing);