32#include <QOpenGLWidget>
39void KoCanvasControllerWidget::Private::activate()
41 if (!observerProvider) {
53void KoCanvasControllerWidget::Private::unsetCanvas()
55 if (!observerProvider) {
70 : QAbstractScrollArea(parent)
72 , d(new
Private(this, observerProvider))
75 setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
79 setViewport(
d->viewportWidget);
80 d->viewportWidget->setFocusPolicy(Qt::NoFocus);
81 setFocusPolicy(Qt::NoFocus);
85 setAutoFillBackground(
false);
93 setMinimumSize(QSize(50, 50));
94 setMouseTracking(
true);
114 const QPoint pt(horizontalScrollBar()->
value(), verticalScrollBar()->
value());
133 d->viewportWidget->resetLayout();
154 QTimer::singleShot(0,
this, SLOT(
activate()));
160 if (
d->
canvas.isNull())
return 0;
166 if (
d->viewportWidget->
canvas()) {
167 widget->setCursor(
d->viewportWidget->
canvas()->cursor());
168 d->viewportWidget->
canvas()->removeEventFilter(
this);
171 d->viewportWidget->setCanvas(widget);
219 if (oldState != newState) {
243 pan(QPoint(0, verticalScrollBar()->singleStep()));
248 pan(QPoint(0, -verticalScrollBar()->singleStep()));
253 pan(QPoint(horizontalScrollBar()->singleStep(), 0));
258 pan(QPoint(-horizontalScrollBar()->singleStep(), 0));
263 QPainter gc(viewport());
264 d->viewportWidget->handlePaintEvent(gc, event);
269 d->viewportWidget->handleDragEnterEvent(event);
274 d->viewportWidget->handleDropEvent(event);
279 d->viewportWidget->handleDragMoveEvent(event);
284 d->viewportWidget->handleDragLeaveEvent(event);
303 setZoom(mode, zoom, resolutionX, resolutionY, std::nullopt);
326 if (event->type() == QEvent::Gesture) {
329 return QAbstractScrollArea::viewportEvent(event);
334 QScrollBar * hBar = horizontalScrollBar();
335 QScrollBar * vBar = verticalScrollBar();
337 return QPoint(hBar->value(), vBar->value());
342 QScrollBar * hBar = horizontalScrollBar();
343 QScrollBar * vBar = verticalScrollBar();
345 hBar->setValue(
value.x());
346 vBar->setValue(
value.y());
355#include "moc_KoCanvasControllerWidget.cpp"
float value(const T *src, size_t ch)
qreal distance(const QPointF &p1, const QPointF &p2)
KisAbstractCanvasWidget * canvasWidget
const KoViewConverter * viewConverter() const override
QRectF imageRectInWidgetPixels
KoZoomState zoomState() const
A container for a set of QAction objects.
void setCanvasController(KoCanvasController *controller)
called by KoCanvasController to set the controller that handles this canvas.
QPointer< KoCanvasControllerProxyObject > proxyObject
virtual void resetScrollBars()=0
void unsetObservedCanvas()
KoCanvasBase * observedCanvas() const
void setObservedCanvas(KoCanvasBase *canvas)
qreal resolutionX() const
qreal resolutionY() const
static bool qFuzzyCompare(half p1, half p2)
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)