7#include <KoCanvasBase.h>
8#include <kis_canvas2.h>
10#include <KoCanvasController.h>
11#include <kis_canvas_controller.h>
12#include <kis_zoom_manager.h>
16struct Canvas::Private {
18 KisCanvas2 *canvas {0};
21Canvas::Canvas(KoCanvasBase *canvas,
QObject *parent)
25 d->canvas =
static_cast<KisCanvas2*
>(canvas);
34bool Canvas::operator==(
const Canvas &other)
const
36 return (d->canvas == other.d->canvas);
39bool Canvas::operator!=(
const Canvas &other)
const
41 return !(operator==(other));
47 if (!d->canvas)
return 1.0;
48 return d->canvas->imageView()->zoomManager()->zoom();
53 if (!d->canvas)
return;
54 d->canvas->imageView()->zoomController()->setZoom(KoZoomMode::ZOOM_CONSTANT, value);
59 if (!d->canvas)
return;
61 const KisCoordinatesConverter *coordConv = d->canvas->coordinatesConverter();
63 QPointF documentPos = coordConv->imageToDocument(imagePos);
64 QPointF flakePos = coordConv->documentToFlake(documentPos);
66 d->canvas->imageView()->canvasController()->setPreferredCenter(flakePos);
71 if (!d->canvas)
return QPointF();
73 QPointF flakePos = d->canvas->imageView()->canvasController()->preferredCenter();
75 const KisCoordinatesConverter *coordConv = d->canvas->coordinatesConverter();
76 QPointF docPos = coordConv->flakeToDocument(flakePos);
77 QPointF imagePos = coordConv->documentToImage(docPos);
84 d->canvas->imageView()->canvasController()->pan(offset);
89 if (!d->canvas)
return;
90 d->canvas->imageView()->zoomManager()->zoomTo100();
96 if (!d->canvas)
return;
97 d->canvas->imageView()->canvasController()->resetCanvasRotation();
102 if (!d->canvas)
return 0;
103 return d->canvas->imageView()->canvasController()->rotation();
108 if (!d->canvas)
return;
109 d->canvas->imageView()->canvasController()->rotateCanvas(angle -
rotation());
115 if (!d->canvas)
return false;
116 return d->canvas->imageView()->canvasIsMirrored();
121 if (!d->canvas)
return;
122 d->canvas->imageView()->canvasController()->mirrorCanvas(value);
127 if (!d->canvas)
return 0;
132KisDisplayColorConverter *Canvas::displayColorConverter()
const
134 if (!d->canvas)
return 0;
135 return d->canvas->displayColorConverter();
140 if (!d->canvas)
return false;
141 return d->canvas->imageView()->canvasController()->wrapAroundMode();
146 if (!d->canvas)
return;
147 d->canvas->imageView()->canvasController()->slotToggleWrapAroundMode(enable);
152 if (!d->canvas)
return false;
153 return d->canvas->imageView()->canvasController()->levelOfDetailMode();
158 if (!d->canvas)
return;
159 return d->canvas->imageView()->canvasController()->slotToggleLevelOfDetailMode(enable);
162#include "moc_Canvas.cpp"
Canvas wraps the canvas inside a view on an image/document.
void setMirror(bool value)
setMirror turn the canvas mirroring on or off depending on
void setRotation(qreal angle)
setRotation set the rotation of the canvas to the given
QPointF preferredCenter() const
void setWrapAroundMode(bool enable)
setWrapAroundMode set wraparound mode to
bool levelOfDetailMode() const
void setLevelOfDetailMode(bool enable)
setLevelOfDetailMode sets Instant Preview to
void resetRotation()
resetRotation reset the canvas rotation.
bool wrapAroundMode() const
void setZoomLevel(qreal value)
setZoomLevel set the zoomlevel to the given value.
void setPreferredCenter(const QPointF &imagePos)
setPan Centers the image pixel at imagePos in the current view
void pan(const QPoint &offset)
pan the current view in pixels.
void resetZoom()
resetZoom set the zoomlevel to 100%
View represents one view on a document.