• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • krita API Reference
  • KDE Home
  • Contact Us
 

KritaWidgets

  • sources
  • kfour-appscomplete
  • krita
  • libs
  • widgets
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 <[email protected]>
3  SPDX-FileCopyrightText: 2006, 2009 Thomas Zander <[email protected]>
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 
24 class KRITAWIDGETS_EXPORT KoZoomHandler : public KoViewConverter
25 {
26 public:
27 
28  KoZoomHandler();
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 
75  void setResolutionToStandard( );
76 
82  virtual void setZoomedResolution(qreal zoomedResolutionX, qreal zoomedResolutionY);
83 
88  void setZoom(qreal zoom) override;
89 
94  inline void setZoomMode(KoZoomMode::Mode zoomMode) { m_zoomMode = zoomMode; }
99  inline int zoomInPercent() const { return qRound(KoViewConverter::zoom() * 100); }
104  KoZoomMode::Mode zoomMode() const { return m_zoomMode; }
105 
106  // Input: pt. Output: pixels. Resolution and zoom are applied.
107 
108  inline qreal zoomItX(qreal z) const
109  {
110  return m_zoomedResolutionX * z;
111  }
112 
113  inline qreal zoomItY(qreal z) const
114  {
115  return m_zoomedResolutionY * z ;
116  }
117 
118  // Input: pixels. Output: pt.
119  inline qreal unzoomItX(qreal x) const
120  {
121  return x / m_zoomedResolutionX;
122  }
123 
124  inline qreal unzoomItY(qreal y) const
125  {
126  return y / m_zoomedResolutionY;
127  }
128 
129  // KoViewConverter-interface methods
130 
135  QPointF documentToView(const QPointF &documentPoint) const override;
136 
141  QPointF viewToDocument(const QPointF &viewPoint) const override;
142 
147  QRectF documentToView(const QRectF &documentRect) const override;
148 
153  QRectF viewToDocument(const QRectF &viewRect) const override;
154 
160  QSizeF documentToView(const QSizeF &documentSize) const override;
161 
167  QSizeF viewToDocument(const QSizeF &viewSize) const override;
168 
174  qreal documentToViewX(qreal documentX) const override;
175 
181  qreal documentToViewY(qreal documentY) const override;
182 
188  qreal viewToDocumentX(qreal viewX) const override;
189 
195  qreal viewToDocumentY(qreal viewY) const override;
196 
202  void zoom(qreal *zoomX, qreal *zoomY) const override;
203 
204  using KoViewConverter::zoom;
205 
206 protected:
207 
208  KoZoomMode::Mode m_zoomMode;
209 
210  qreal m_resolutionX;
211  qreal m_resolutionY;
212  qreal m_zoomedResolutionX;
213  qreal m_zoomedResolutionY;
214 };
215 
216 #endif
KoZoomHandler::zoomItX
qreal zoomItX(qreal z) const
Definition: KoZoomHandler.h:108
KoZoomHandler::zoomedResolutionX
qreal zoomedResolutionX() const
Definition: KoZoomHandler.h:35
KoZoomHandler::zoomFactorY
qreal zoomFactorY() const
Zoom factor for Y.
Definition: KoZoomHandler.h:54
KoZoomHandler
This class handles the zooming and DPI stuff (conversions between postscript pt values and pixels).
Definition: KoZoomHandler.h:24
KoViewConverter
KoZoomHandler::unzoomItX
qreal unzoomItX(qreal x) const
Definition: KoZoomHandler.h:119
QPointF
KoZoomHandler::zoomItY
qreal zoomItY(qreal z) const
Definition: KoZoomHandler.h:113
KoZoomHandler::m_resolutionY
qreal m_resolutionY
Definition: KoZoomHandler.h:211
KoZoomMode.h
KoZoomHandler::resolutionX
qreal resolutionX() const
Definition: KoZoomHandler.h:43
KoZoomHandler::m_zoomedResolutionX
qreal m_zoomedResolutionX
Definition: KoZoomHandler.h:212
KoZoomHandler::zoomFactorX
qreal zoomFactorX() const
Zoom factor for X.
Definition: KoZoomHandler.h:49
KoZoomHandler::resolutionY
qreal resolutionY() const
Definition: KoZoomHandler.h:44
KoZoomMode::Mode
Mode
Definition: KoZoomMode.h:21
KoZoomHandler::setZoomMode
void setZoomMode(KoZoomMode::Mode zoomMode)
Change the zoom mode.
Definition: KoZoomHandler.h:94
KoZoomHandler::m_resolutionX
qreal m_resolutionX
Definition: KoZoomHandler.h:210
KoZoomHandler::m_zoomedResolutionY
qreal m_zoomedResolutionY
Definition: KoZoomHandler.h:213
QSizeF
QRectF
KoZoomHandler::zoomedResolutionY
qreal zoomedResolutionY() const
Definition: KoZoomHandler.h:41
KoZoomHandler::m_zoomMode
KoZoomMode::Mode m_zoomMode
Definition: KoZoomHandler.h:208
KoZoomHandler::zoomInPercent
int zoomInPercent() const
Definition: KoZoomHandler.h:99
KoZoomHandler::unzoomItY
qreal unzoomItY(qreal y) const
Definition: KoZoomHandler.h:124
KoZoomHandler::zoomMode
KoZoomMode::Mode zoomMode() const
Definition: KoZoomHandler.h:104
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Jan 23 2021 11:48:23 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KritaWidgets

Skip menu "KritaWidgets"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

krita API Reference

Skip menu "krita API Reference"
  • libs
  •   KritaBasicFlakes
  •   brush
  •   KritaUndo2
  •   KritaFlake
  •   image
  •   KritaPlugin
  •   Krita
  •   KritaPigment
  •   KritaResources
  •   KritaStore
  •   ui
  •   KritaWidgets
  •   KritaWidgetUtils
  • plugins
  •   Assitants
  •   Extensions
  •   Filters
  •   Generators
  •   Formats
  •           src
  •   PaintOps
  •     libpaintop

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal