aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Hundhammer <Stefan.Hundhammer@gmx.de>2010-11-30 16:29:19 +0100
committerPekka Vuorela <pekka.ta.vuorela@nokia.com>2010-12-07 14:36:44 +0200
commit9abf9cc90665c3ec58d8091ecd6daac8e3e08e26 (patch)
treeae56bfb080331083bdfdc702bc3fac6fe0a1d849
parent2dc845e6a0c9b9f0cec32e038b0b24037fd3344a (diff)
Fixes: Repaint only visible part of MTextEdit
RevBy: Holger Schröder, Pekka Vuorela
-rw-r--r--src/views/mtexteditview.cpp9
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()));
}