QVariant KoPACanvas::inputMethodQuery(Qt::InputMethodQuery query) const { if (query == Qt::ImMicroFocus) { QRectF rect = (toolProxy()->inputMethodQuery(query, *(viewConverter())).toRectF()).toRect(); QPointF scroll(canvasController()->scrollBarValue()); if (canvasController()->canvasMode() == KoCanvasController::Spreadsheet && canvasWidget()->layoutDirection() == Qt::RightToLeft) { scroll.setX(-scroll.x()); } rect.translate(documentOrigin() - scroll); return rect.toRect(); } return toolProxy()->inputMethodQuery(query, *(viewConverter()) ); }
void KisCanvas2::setCanvasWidget(QWidget * widget) { KisAbstractCanvasWidget * tmp = dynamic_cast<KisAbstractCanvasWidget*>(widget); Q_ASSERT_X(tmp, "setCanvasWidget", "Cannot cast the widget to a KisAbstractCanvasWidget"); m_d->canvasWidget = tmp; widget->setAutoFillBackground(false); widget->setAttribute(Qt::WA_OpaquePaintEvent); widget->setMouseTracking(true); widget->setAcceptDrops(true); KoCanvasController *controller = canvasController(); if (controller) { Q_ASSERT(controller->canvas() == this); // Avoids jumping and redrawing when changing zoom means the image fits in the area completely controller->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); controller->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); controller->changeCanvasWidget(widget); } }
void KWCanvasBase::ensureVisible(const QRectF &rect) { QRectF viewRect = m_viewMode->documentToView(rect, m_viewConverter); canvasController()->ensureVisible(viewRect); }