QRegion KstViewArrow::clipRegion() { if (_clipMask.isNull()) { _myClipMask = QRegion(); QBitmap bm1(_geom.bottomRight().x(), _geom.bottomRight().y(), true); if (!bm1.isNull()) { KstPainter p; p.setMakingMask(true); p.begin(&bm1); p.setViewXForm(true); KstViewLine::paintSelf(p, QRegion()); p.end(); _clipMask = QRegion(bm1); } QBitmap bm2(_geom.bottomRight().x(), _geom.bottomRight().y(), true); if (!bm2.isNull()) { KstPainter p; p.setMakingMask(true); p.begin(&bm2); p.setViewXForm(true); paintSelf(p, QRegion()); p.end(); _myClipMask = QRegion(bm2); } } return _myClipMask | _clipMask; }
QRegion KstViewPicture::clipRegion() { if (_clipMask.isNull()) { _myClipMask = QRegion(); QBitmap bm1(_geom.bottomRight().x() + 1, _geom.bottomRight().y() + 1, true); if (!bm1.isNull()) { KstPainter p; p.setMakingMask(true); p.begin(&bm1); p.setViewXForm(true); KstBorderedViewObject::paintSelf(p, QRegion()); p.flush(); p.end(); _clipMask = QRegion(bm1); } QBitmap bm2(_geom.bottomRight().x() + 1, _geom.bottomRight().y() + 1, true); if (!bm2.isNull()) { KstPainter p; p.setMakingMask(true); p.begin(&bm2); p.setViewXForm(true); paintSelf(p, QRegion()); p.flush(); p.end(); _myClipMask = QRegion(bm2); } } return _myClipMask | _clipMask; }
QRegion KstViewLegend::clipRegion() { if (!_transparent) { return KstBorderedViewObject::clipRegion(); } if (_clipMask.isNull() && _myClipMask.isNull()) { const QRect cr(contentsRect()); QBitmap bm = _backBuffer.buffer().createHeuristicMask(false); // slow but preserves antialiasing... _myClipMask = QRegion(bm); _myClipMask.translate(cr.topLeft().x(), cr.topLeft().y()); QBitmap bm1(_geom.bottomRight().x() + 1, _geom.bottomRight().y() + 1, true); if (!bm1.isNull()) { KstPainter p; p.setMakingMask(true); p.begin(&bm1); p.setViewXForm(true); KstBorderedViewObject::paintSelf(p, QRegion()); p.end(); _clipMask = QRegion(bm1); } } return _clipMask | _myClipMask; }
void KstTopLevelView::clearFocus() { if (_focusOn) { _pressDirection = -1; _moveOffset = QPoint(-1, -1); _moveOffsetSticky = QPoint(0, 0); _w->unsetCursor(); _focusOn = false; //recursively<bool>(&KstViewObject::setFocus, false); if (_hoverFocus) { KstPainter p; p.begin(_w); p.setViewXForm(true); _hoverFocus->setFocus(false); p.setRasterOp(Qt::NotROP); p.setPen(QPen(Qt::black, 0, Qt::SolidLine)); p.setBrush(Qt::NoBrush); _hoverFocus->drawFocusRect(p); p.end(); _hoverFocus = 0L; } } }