[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.0/kdelibs/khtml/rendering
From: Germain Garand <germain () ebooksfrance ! org>
Date: 2008-05-28 8:00:48
Message-ID: 1211961648.388671.15593.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 813596 by ggarand:
Make proper versioning for those Qt 4.4 workarounds.
They are not compatible with Qt 4.3.
Runtime detection logic by Maksim Orlovich.
M +16 -5 render_replaced.cpp
--- branches/KDE/4.0/kdelibs/khtml/rendering/render_replaced.cpp #813595:813596
@@ -584,6 +584,14 @@
}
}
+static bool qtVersionDetected = false;
+static bool qt43;
+
+static void detectQtVersion() {
+ qtVersionDetected = true;
+ qt43 = QString::fromLatin1(qVersion()).startsWith("4.3");
+}
+
static void copyWidget(const QRect& r, QPainter *p, QWidget *widget, int tx, int ty, \
bool buffered = false) {
if (r.isNull() || r.isEmpty() )
@@ -628,15 +636,16 @@
//
// Testcase: paintEvent(...) { QPainter p(this); aChildWidget->render( \
aPixmapTarget, ...); } //
- p->end();
+ if (!qt43 || !buffered)
+ p->end();
setInPaintEventFlag( widget, false );
- widget->render( d, (buffered ? QPoint(0,0) : thePoint) + r.topLeft(), r);
+ widget->render( d, (buffered ? QPoint(0,0) : thePoint) + (qt43 ? QPoint(0,0) : \
r.topLeft()), r);
setInPaintEventFlag( widget );
-// if (!buffered) {
+ if (!qt43 || !buffered) {
p->begin(x);
p->setWorldTransform(t);
p->setWindow(w);
@@ -649,7 +658,7 @@
p->setOpacity(op);
p->setPen(pen);
p->setBrush(brush);
-// } else {
+ }
if (buffered) {
// transfer results
QPoint off(r.x(), r.y());
@@ -667,7 +676,9 @@
// can't use QWidget::render to directly paint widgets on the view anymore.
// Results are unreliable for subrects, leaving blank squares. (cf. kde \
#158607) //
- bool buffered = true; // p->combinedMatrix().m22() != 1.0 || \
(p->device()->devType() == QInternal::Printer); + if (!qtVersionDetected)
+ detectQtVersion();
+ bool buffered = !qt43 || p->combinedMatrix().m22() != 1.0 || \
(p->device()->devType() == QInternal::Printer);
QRect rr = pI.r;
rr.translate(-tx, -ty);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic