14#include <ktoggleaction.h>
46 , m_zoomHandler(zoomHandler)
47 , m_canvasController(canvasController)
51 , m_previousZoomPoint(QPointF(0.0, 0.0))
79 QGridLayout * layout =
new QGridLayout(
m_view);
80 layout->setSpacing(0);
81 layout->setContentsMargins(0, 0, 0, 0);
96 QAction *rulerAction = actionCollection->
action(
"ruler_pixel_multiple2");
97 if (
m_view->document()->guidesConfig().rulersMultiple2()) {
102 unitActions.append(rulerAction);
133 const QRectF docRect =
m_view->canvasBase()->coordinatesConverter()->imageRectInDocumentPixels();
134 const QPointF docCenter = docRect.center();
142 boundsSnap->
addLine(Qt::Horizontal, docRect.y());
143 boundsSnap->
addLine(Qt::Horizontal, docRect.bottom());
144 boundsSnap->
addLine(Qt::Vertical, docRect.x());
145 boundsSnap->
addLine(Qt::Vertical, docRect.right());
154 centerSnap->
addLine(Qt::Horizontal, docCenter.y());
155 centerSnap->
addLine(Qt::Vertical, docCenter.x());
168 const qreal effectiveZoom =
169 m_view->canvasBase()->coordinatesConverter()->effectiveZoom();
170 const qreal effectivePhysicalZoom =
171 m_view->canvasBase()->coordinatesConverter()->effectivePhysicalZoom();
188 SIGNAL(canvasMousePositionChanged(QPoint)),
232 if (
m_view->viewManager()) {
233 m_view->viewManager()->guidesManager()->setUnitType(baseUnit.
type());
241 if (
m_view->viewManager()) {
242 m_view->viewManager()->guidesManager()->setRulersMultiple2(enabled);
248 const qreal zoomValue =
m_view->canvasBase()->coordinatesConverter()->zoom();
249 const qreal humanZoom = zoomValue * 100.0;
253 if (
m_view->viewManager()) {
256 i18nc(
"floating message about zoom",
"Zoom: %1 %",
276 const QRectF widgetRect =
m_view->canvasBase()->coordinatesConverter()->imageRectInWidgetPixels();
277 const QRect alignedWidgetRect = widgetRect.toAlignedRect();
284 const QRectF documentRect =
m_view->canvasBase()->coordinatesConverter()->flakeToDocument(widgetRect);
285 const QSize documentSize = documentRect.toAlignedRect().size();
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
static KisConfigNotifier * instance()
int zoomMarginSize(bool defaultValue=false) const
A container for a set of QAction objects.
QAction * action(int index) const
void addConnection(Sender sender, Signal signal, Receiver receiver, Method method, Qt::ConnectionType type=Qt::AutoConnection)
void addLine(Qt::Orientation orientation, qreal pos)
KoRuler * m_horizontalRuler
void slotUpdateGuiAfterZoomChange()
KisSignalAutoConnectionsStore m_mouseTrackingConnections
void updateMouseTrackingConnections()
KoRuler * m_verticalRuler
KoZoomHandler * m_zoomHandler
void mousePositionChanged(const QPoint &viewPos)
KoZoomAction * zoomAction() const
KoZoomMode::Mode m_previousZoomMode
void slotToggleZoomToFit()
KoRuler * verticalRuler() const
KisSignalCompressor m_zoomChangedCompressor
KoRuler * horizontalRuler() const
void slotZoomToFitWidth()
void slotUpdateGuiAfterDocumentRectChanged()
void updateCurrentZoomResource()
void applyRulersUnit(const KoUnit &baseUnit)
void setup(KisKActionCollection *actionCollection)
void setRulersPixelMultiple2(bool enabled)
QPointer< QWidget > m_zoomActionWidget
QPointF m_previousZoomPoint
KisZoomManager(QPointer< KisView > view, KoZoomHandler *, KoCanvasController *)
void syncOnImageResolutionChange()
qreal m_previousZoomLevel
void slotZoomToFitHeight()
void setShowRulers(bool show)
KisSignalCompressor m_documentRectChangedCompressor
~KisZoomManager() override
QWidget * zoomActionWidget() const
void updateImageBoundsSnapping()
QPointer< KisView > m_view
KoZoomAction * m_zoomAction
KoCanvasController * m_canvasController
void setRulersTrackMouse(bool value)
void documentRectInWidgetPixelsChanged(const QRectF &documentRectInWidgetPixels)
void zoomStateChanged(const KoZoomState &zoomState)
virtual QPointF preferredCenter() const =0
Returns the currently set preferred center point in view coordinates (pixels)
virtual void setPreferredCenter(const QPointF &viewPoint)=0
QPointer< KoCanvasControllerProxyObject > proxyObject
virtual void zoomIn(const KoViewTransformStillPoint &stillPoint)=0
zooms in keeping stillPoint not moved.
virtual KoZoomState zoomState() const =0
virtual void setZoom(KoZoomMode::Mode mode, qreal zoom)=0
virtual void zoomOut(const KoViewTransformStillPoint &stillPoint)=0
zooms out keeping stillPoint not moved.
bool showMousePosition() const
void updateMouseCoordinate(int coordinate)
KoUnit unit() const
The ruler's unit.
void setUnit(const KoUnit &unit)
Set the unit of the ruler.
void createGuideToolConnection(KoCanvasBase *canvas)
void setRulerLength(qreal length)
Sets the length of the ruler to length in points (pt)
void setUnitPixelMultiple2(bool enabled)
void setOffset(int offset)
void setPopupActionList(const QList< QAction * > &popupActionList)
void setShowMousePosition(bool show)
void overrideSnapStrategy(Strategy type, KoSnapStrategy *strategy)
KoUnit::Type type() const
QWidget * createWidget(QWidget *parent) override
void zoomChanged(KoZoomMode::Mode mode, qreal zoom)
void slotZoomStateChanged(const KoZoomState &zoomState)
KoZoomMode::Mode zoomMode() const
int zoomMarginSize() const
void setZoomMarginSize(int size)
void zoom(qreal *zoomX, qreal *zoomY) const override
@ ZOOM_WIDTH
zoom pagewidth
@ ZOOM_HEIGHT
zoom pageheight
#define KIS_ASSERT_RECOVER_RETURN(cond)
static constexpr int guiUpdateDelay
@ EffectiveZoom
-Used only by painting tools for non-displaying purposes
@ EffectivePhysicalZoom
-Used by tool for displaying purposes
QString KRITAIMAGE_EXPORT prettyFormatReal(qreal value)