[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/office/flake/lib
From: Thomas Zander <zander () kde ! org>
Date: 2006-05-16 10:47:14
Message-ID: 1147776434.391747.454.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 541457 by zander:
Only repaint part of rubberselect that actually needs repainting
M +15 -4 KoShapeRubberSelectStrategy.cpp
--- trunk/playground/office/flake/lib/KoShapeRubberSelectStrategy.cpp #541456:541457
@@ -47,20 +47,31 @@
{
painter.setRenderHint( QPainter::Antialiasing, false );
- QColor selectColor( Qt::blue ); // todo make configurable
+ QColor selectColor( Qt::blue ); // TODO make configurable
selectColor.setAlphaF( 0.5 );
QBrush sb( selectColor, Qt::SolidPattern );
painter.setPen( QPen( sb, 0 ) );
painter.setBrush( sb );
- painter.drawRect( converter.normalToView(m_selectRect) );
+ QRectF paintRect = converter.normalToView(m_selectRect);
+ if(painter.hasClipping())
+ paintRect = paintRect.intersect(painter.clipRegion().boundingRect());
+ painter.drawRect( paintRect);
}
void KoShapeRubberSelectStrategy::handleMouseMove( KoGfxEvent *event )
{
- m_canvas->updateCanvas(m_selectRect.normalized());
+ QPointF old = m_selectRect.bottomRight();
m_selectRect.setBottomRight( event->point );
- m_canvas->updateCanvas(m_selectRect.normalized());
+ QRectF moved(old.x(), old.y(), qAbs(old.x() - event->point.x()),
+ qAbs(old.y() - event->point.y()));
+ // (request) repaint vertical changed part
+ m_canvas->updateCanvas(moved.unite( QRectF(QPointF(old.x(), m_selectRect.top()),
+ QSizeF(m_selectRect.width(), 1)) ));
+
+ // (request) repaint horizontal changed part
+ m_canvas->updateCanvas(moved.unite( QRectF(QPointF(m_selectRect.left(), old.y()),
+ QSizeF(1, m_selectRect.height())) ));
}
void KoShapeRubberSelectStrategy::finishInteraction()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic