diff options
author | Stefan Hundhammer <Stefan.Hundhammer@gmx.de> | 2010-11-30 16:29:19 +0100 |
---|---|---|
committer | Pekka Vuorela <pekka.ta.vuorela@nokia.com> | 2010-12-07 14:36:44 +0200 |
commit | 9abf9cc90665c3ec58d8091ecd6daac8e3e08e26 (patch) | |
tree | ae56bfb080331083bdfdc702bc3fac6fe0a1d849 | |
parent | 2dc845e6a0c9b9f0cec32e038b0b24037fd3344a (diff) |
Fixes: Repaint only visible part of MTextEdit
RevBy: Holger Schröder, Pekka Vuorela
-rw-r--r-- | src/views/mtexteditview.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/views/mtexteditview.cpp b/src/views/mtexteditview.cpp index 2b5e1a63..ceda5003 100644 --- a/src/views/mtexteditview.cpp +++ b/src/views/mtexteditview.cpp @@ -31,6 +31,8 @@ #include <QTextLayout> #include <QAbstractTextDocumentLayout> #include <QTimer> +#include <QStyleOptionGraphicsItem> +#include <QDebug> #include "mfeedback.h" #include "mtextedit.h" @@ -773,10 +775,9 @@ MTextEditView::~MTextEditView() void MTextEditView::drawContents(QPainter *painter, const QStyleOptionGraphicsItem *option) const { - Q_UNUSED(option); Q_D(const MTextEditView); - mTimestamp("MTextEditView", QString("start text=%1").arg(d->document()->toPlainText())); + // mTimestamp("MTextEditView", QString("start text=%1").arg(d->document()->toPlainText())); painter->save(); // set clipping rectangle to draw text inside the border @@ -784,6 +785,7 @@ void MTextEditView::drawContents(QPainter *painter, const QStyleOptionGraphicsIt style()->paddingTop(), -style()->paddingRight(), -style()->paddingBottom())); + clipping = clipping.intersected(option->exposedRect); painter->setClipRect(clipping, Qt::IntersectClip); // If text does not fit inside widget, it may have to be scrolled @@ -801,11 +803,12 @@ void MTextEditView::drawContents(QPainter *painter, const QStyleOptionGraphicsIt } else { // normal painting QAbstractTextDocumentLayout::PaintContext paintContext = d->paintContext(); + paintContext.clip = option->exposedRect; d->activeDocument()->documentLayout()->draw(painter, paintContext); } painter->restore(); - mTimestamp("MTextEditView", QString("end text=%1").arg(d->document()->toPlainText())); + // mTimestamp("MTextEditView", QString("end text=%1").arg(d->document()->toPlainText())); } |