Krita Source Code Documentation
Loading...
Searching...
No Matches
KoZoomHandler.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 SPDX-FileCopyrightText: 2001-2005 David Faure <faure@kde.org>
3 SPDX-FileCopyrightText: 2006, 2009 Thomas Zander <zander@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6*/
7
8#ifndef KOZOOMHANDLER_H
9#define KOZOOMHANDLER_H
10
11#include "kritawidgets_export.h"
12#include <KoZoomMode.h>
13#include <KoViewConverter.h>
14
24class KRITAWIDGETS_EXPORT KoZoomHandler : public KoViewConverter
25{
26public:
27
29 ~KoZoomHandler() override;
30
35 inline qreal zoomedResolutionX() const { return m_zoomedResolutionX; }
36
41 inline qreal zoomedResolutionY() const { return m_zoomedResolutionY; }
42
43 inline qreal resolutionX() const { return m_resolutionX; }
44 inline qreal resolutionY() const { return m_resolutionY; }
45
49 inline qreal zoomFactorX() const { return m_zoomedResolutionX / m_resolutionX; }
50
54 inline qreal zoomFactorY() const { return m_zoomedResolutionY / m_resolutionY; }
55
56
60 void setDpi(int dpiX, int dpiY);
61
69 void setResolution(qreal resolutionX, qreal resolutionY);
70
76 virtual void setZoomedResolution(qreal zoomedResolutionX, qreal zoomedResolutionY);
77
82 void setZoom(qreal zoom) override;
83
88 inline void setZoomMode(KoZoomMode::Mode zoomMode) { m_zoomMode = zoomMode; }
93 inline int zoomInPercent() const { return qRound(KoViewConverter::zoom() * 100); }
98 KoZoomMode::Mode zoomMode() const { return m_zoomMode; }
99
100 // Input: pt. Output: pixels. Resolution and zoom are applied.
101
102 inline qreal zoomItX(qreal z) const
103 {
104 return m_zoomedResolutionX * z;
105 }
106
107 inline qreal zoomItY(qreal z) const
108 {
109 return m_zoomedResolutionY * z ;
110 }
111
112 // Input: pixels. Output: pt.
113 inline qreal unzoomItX(qreal x) const
114 {
115 return x / m_zoomedResolutionX;
116 }
117
118 inline qreal unzoomItY(qreal y) const
119 {
120 return y / m_zoomedResolutionY;
121 }
122
123 void setZoomMarginSize( int size );
124
125 int zoomMarginSize() const;
126
127 // KoViewConverter-interface methods
128
133 QPointF documentToView(const QPointF &documentPoint) const override;
134
139 QPointF viewToDocument(const QPointF &viewPoint) const override;
140
145 QRectF documentToView(const QRectF &documentRect) const override;
146
151 QRectF viewToDocument(const QRectF &viewRect) const override;
152
158 QSizeF documentToView(const QSizeF &documentSize) const override;
159
165 QSizeF viewToDocument(const QSizeF &viewSize) const override;
166
172 qreal documentToViewX(qreal documentX) const override;
173
179 qreal documentToViewY(qreal documentY) const override;
180
186 qreal viewToDocumentX(qreal viewX) const override;
187
193 qreal viewToDocumentY(qreal viewY) const override;
194
200 void zoom(qreal *zoomX, qreal *zoomY) const override;
201
203
204protected:
205
207
212
214};
215
216#endif
virtual void setZoom(qreal zoom)
QTransform documentToView() const
virtual qreal documentToViewY(qreal documentY) const
QTransform viewToDocument() const
virtual qreal viewToDocumentY(qreal viewY) const
qreal zoom() const
virtual qreal documentToViewX(qreal documentX) const
virtual qreal viewToDocumentX(qreal viewX) const
qreal m_zoomedResolutionX
qreal zoomItX(qreal z) const
qreal unzoomItY(qreal y) const
qreal unzoomItX(qreal x) const
KoZoomMode::Mode zoomMode() const
void setZoomMode(KoZoomMode::Mode zoomMode)
int zoomInPercent() const
qreal resolutionX() const
KoZoomMode::Mode m_zoomMode
qreal zoomedResolutionY() const
qreal resolutionY() const
qreal zoomedResolutionX() const
qreal zoomFactorX() const
qreal m_zoomedResolutionY
qreal zoomFactorY() const
qreal zoomItY(qreal z) const