File indexing completed on 2024-05-12 16:02:13
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2007 C. Boemann <cbo@boemann.dk> 0003 * SPDX-FileCopyrightText: 2007 Thomas Zander <zander@kde.org> 0004 * SPDX-FileCopyrightText: 2007 Jan Hambrecht <jaham@gmx.net> 0005 * SPDX-FileCopyrightText: 2010 Boudewijn Rempt <boud@valdyas.org> 0006 * SPDX-FileCopyrightText: 2011 Arjen Hiemstra <ahiemstra@heimr.nl> 0007 * 0008 * SPDX-License-Identifier: LGPL-2.0-or-later 0009 */ 0010 #ifndef KoZoomController_p_h 0011 #define KoZoomController_p_h 0012 0013 #include <KoZoomController.h> 0014 0015 #include <klocalizedstring.h> 0016 #include <WidgetsDebug.h> 0017 0018 #include <KoZoomHandler.h> 0019 #include <KoCanvasBase.h> 0020 #include <KoCanvasController.h> 0021 0022 class Q_DECL_HIDDEN KoZoomController::Private 0023 { 0024 public: 0025 Private(KoZoomController *p) 0026 : canvasController(0), zoomHandler(0), action(0), textMinX(1), textMaxX(600), fitMargin(0), parent(p) 0027 { 0028 action = new KoZoomAction(KoZoomMode::ZOOM_WIDTH | KoZoomMode::ZOOM_PAGE | KoZoomMode::ZOOM_HEIGHT, i18n("Zoom"), p); 0029 } 0030 ~Private() 0031 { 0032 } 0033 0034 /// so we know when the canvasController changes size 0035 void setAvailableSize() 0036 { 0037 if(zoomHandler->zoomMode() == KoZoomMode::ZOOM_WIDTH) 0038 setZoom(KoZoomMode::ZOOM_WIDTH, -1); 0039 if(zoomHandler->zoomMode() == KoZoomMode::ZOOM_PAGE) 0040 setZoom(KoZoomMode::ZOOM_PAGE, -1); 0041 } 0042 0043 /// when the canvas controller wants us to change zoom 0044 void requestZoomRelative(const qreal factor, const QPointF& stillPoint) 0045 { 0046 parent->setZoom(KoZoomMode::ZOOM_CONSTANT, factor * zoomHandler->zoom(), stillPoint); 0047 } 0048 0049 void setZoom(KoZoomMode::Mode mode, qreal zoom) 0050 { 0051 parent->setZoom(mode, zoom); 0052 } 0053 0054 void init(KoCanvasController *co, 0055 KoZoomHandler *zh, 0056 KisKActionCollection *actionCollection); 0057 0058 KoCanvasController *canvasController; 0059 KoZoomHandler *zoomHandler; 0060 KoZoomAction *action; 0061 QSizeF pageSize; 0062 qreal textMinX; 0063 qreal textMaxX; 0064 QSizeF documentSize; 0065 int fitMargin; 0066 KoZoomController *parent; 0067 }; 0068 0069 #endif