summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/effects/qgraphicseffect.cpp12
-rw-r--r--src/gui/egl/qegl.cpp23
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp8
-rw-r--r--src/gui/widgets/qdockarealayout.cpp2
-rw-r--r--src/gui/widgets/qmainwindowlayout.cpp1
-rw-r--r--tests/auto/qpainter/tst_qpainter.cpp2
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp15
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp300
8 files changed, 175 insertions, 188 deletions
diff --git a/src/gui/effects/qgraphicseffect.cpp b/src/gui/effects/qgraphicseffect.cpp
index 7d1d03d..ce4ce6a 100644
--- a/src/gui/effects/qgraphicseffect.cpp
+++ b/src/gui/effects/qgraphicseffect.cpp
@@ -726,7 +726,8 @@ void QGraphicsColorizeEffect::draw(QPainter *painter)
elements. The level of detail can be modified using the setBlurRadius()
function. Use setBlurHints() to choose the blur hints.
- By default, the blur radius is 5 pixels.
+ By default, the blur radius is 5 pixels. The blur radius is specified in
+ device coordinates.
\img graphicseffect-blur.png
@@ -781,6 +782,9 @@ QGraphicsBlurEffect::~QGraphicsBlurEffect()
radius results in a more blurred appearance.
By default, the blur radius is 5 pixels.
+
+ The radius is given in device coordinates, meaning it is
+ unaffected by scale.
*/
qreal QGraphicsBlurEffect::blurRadius() const
{
@@ -884,7 +888,8 @@ void QGraphicsBlurEffect::draw(QPainter *painter)
By default, the drop shadow is a semi-transparent dark gray
(QColor(63, 63, 63, 180)) shadow, blurred with a radius of 1 at an offset
- of 8 pixels towards the lower right.
+ of 8 pixels towards the lower right. The drop shadow offset is specified
+ in device coordinates.
\img graphicseffect-drop-shadow.png
@@ -913,6 +918,9 @@ QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect()
By default, the offset is 8 pixels towards the lower right.
+ The offset is given in device coordinates, which means it is
+ unaffected by scale.
+
\sa xOffset(), yOffset(), blurRadius(), color()
*/
QPointF QGraphicsDropShadowEffect::offset() const
diff --git a/src/gui/egl/qegl.cpp b/src/gui/egl/qegl.cpp
index 4d447cb..0ed95ea 100644
--- a/src/gui/egl/qegl.cpp
+++ b/src/gui/egl/qegl.cpp
@@ -101,7 +101,7 @@ bool QEglContext::chooseConfig
// If we want the best pixel format, then return the first
// matching configuration.
if (match == QEgl::BestPixelFormat) {
- eglChooseConfig(dpy, props.properties(), &cfg, 1, &matching);
+ eglChooseConfig(display(), props.properties(), &cfg, 1, &matching);
if (matching < 1)
continue;
return true;
@@ -111,13 +111,13 @@ bool QEglContext::chooseConfig
// first that matches the pixel format we wanted.
EGLint size = matching;
EGLConfig *configs = new EGLConfig [size];
- eglChooseConfig(dpy, props.properties(), configs, size, &matching);
+ eglChooseConfig(display(), props.properties(), configs, size, &matching);
for (EGLint index = 0; index < size; ++index) {
EGLint red, green, blue, alpha;
- eglGetConfigAttrib(dpy, configs[index], EGL_RED_SIZE, &red);
- eglGetConfigAttrib(dpy, configs[index], EGL_GREEN_SIZE, &green);
- eglGetConfigAttrib(dpy, configs[index], EGL_BLUE_SIZE, &blue);
- eglGetConfigAttrib(dpy, configs[index], EGL_ALPHA_SIZE, &alpha);
+ eglGetConfigAttrib(display(), configs[index], EGL_RED_SIZE, &red);
+ eglGetConfigAttrib(display(), configs[index], EGL_GREEN_SIZE, &green);
+ eglGetConfigAttrib(display(), configs[index], EGL_BLUE_SIZE, &blue);
+ eglGetConfigAttrib(display(), configs[index], EGL_ALPHA_SIZE, &alpha);
if (red == props.value(EGL_RED_SIZE) &&
green == props.value(EGL_GREEN_SIZE) &&
blue == props.value(EGL_BLUE_SIZE) &&
@@ -181,7 +181,7 @@ bool QEglContext::createContext(QEglContext *shareContext, const QEglProperties
}
}
if (ctx == EGL_NO_CONTEXT) {
- ctx = eglCreateContext(dpy, cfg, 0, contextProps.properties());
+ ctx = eglCreateContext(display(), cfg, 0, contextProps.properties());
if (ctx == EGL_NO_CONTEXT) {
qWarning() << "QEglContext::createContext(): Unable to create EGL context:" << errorString(eglGetError());
return false;
@@ -197,7 +197,7 @@ void QEglContext::destroySurface(EGLSurface surface)
if (surface != EGL_NO_SURFACE) {
if (surface == currentSurface)
doneCurrent();
- eglDestroySurface(dpy, surface);
+ eglDestroySurface(display(), surface);
}
}
@@ -205,8 +205,7 @@ void QEglContext::destroySurface(EGLSurface surface)
void QEglContext::destroyContext()
{
if (ctx != EGL_NO_CONTEXT && ownsContext)
- eglDestroyContext(dpy, ctx);
- dpy = EGL_NO_DISPLAY;
+ eglDestroyContext(display(), ctx);
ctx = EGL_NO_CONTEXT;
cfg = 0;
}
@@ -343,7 +342,7 @@ QEglProperties QEglContext::configProperties(EGLConfig cfg) const
QEglProperties props;
for (int name = 0x3020; name <= 0x304F; ++name) {
EGLint value;
- if (name != EGL_NONE && eglGetConfigAttrib(dpy, cfg, name, &value))
+ if (name != EGL_NONE && eglGetConfigAttrib(display(), cfg, name, &value))
props.setValue(name, value);
}
eglGetError(); // Clear the error state.
@@ -417,7 +416,7 @@ void QEglContext::dumpAllConfigs()
if (!eglGetConfigs(display(), 0, 0, &count) || count < 1)
return;
EGLConfig *configs = new EGLConfig [count];
- eglGetConfigs(dpy, configs, count, &count);
+ eglGetConfigs(display(), configs, count, &count);
for (EGLint index = 0; index < count; ++index) {
props = configProperties(configs[index]);
qWarning() << props.toString();
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 4a4792a..3c2cc8c 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -100,10 +100,6 @@
#endif
#include <limits.h>
-#if defined(QT_NO_FPU) || (_MSC_VER >= 1300 && _MSC_VER < 1400)
-# define FLOATING_POINT_BUGGY_OR_NO_FPU
-#endif
-
QT_BEGIN_NAMESPACE
extern bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp
@@ -1827,7 +1823,6 @@ void QRasterPaintEngine::fill(const QVectorPath &path, const QBrush &brush)
}
}
-#ifndef FLOATING_POINT_BUGGY_OR_NO_FPU
if (path.shape() == QVectorPath::EllipseHint) {
if (!s->flags.antialiased && s->matrix.type() <= QTransform::TxScale) {
const qreal *p = path.points();
@@ -1847,7 +1842,6 @@ void QRasterPaintEngine::fill(const QVectorPath &path, const QBrush &brush)
}
}
}
-#endif
// ### Optimize for non transformed ellipses and rectangles...
QRectF cpRect = path.controlPointRect();
@@ -3674,7 +3668,6 @@ void QRasterPaintEngine::drawLines(const QLineF *lines, int lineCount)
*/
void QRasterPaintEngine::drawEllipse(const QRectF &rect)
{
-#ifndef FLOATING_POINT_BUGGY_OR_NO_FPU
Q_D(QRasterPaintEngine);
QRasterPaintEngineState *s = state();
@@ -3697,7 +3690,6 @@ void QRasterPaintEngine::drawEllipse(const QRectF &rect)
return;
}
}
-#endif
QPaintEngineEx::drawEllipse(rect);
}
diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp
index d754800..0c39f42 100644
--- a/src/gui/widgets/qdockarealayout.cpp
+++ b/src/gui/widgets/qdockarealayout.cpp
@@ -2635,7 +2635,7 @@ void QDockAreaLayout::getGrid(QVector<QLayoutStruct> *_ver_struct_list,
QSize bottom_max = docks[QInternal::BottomDock].maximumSize();
bottom_hint = bottom_hint.boundedTo(bottom_max).expandedTo(bottom_min);
- fallbackToSizeHints = !have_central;
+ fallbackToSizeHints = false;
if (_ver_struct_list != 0) {
QVector<QLayoutStruct> &ver_struct_list = *_ver_struct_list;
diff --git a/src/gui/widgets/qmainwindowlayout.cpp b/src/gui/widgets/qmainwindowlayout.cpp
index fc75c92..593e391 100644
--- a/src/gui/widgets/qmainwindowlayout.cpp
+++ b/src/gui/widgets/qmainwindowlayout.cpp
@@ -1772,6 +1772,7 @@ void QMainWindowLayout::setCentralWidget(QWidget *widget)
if (savedState.isValid()) {
#ifndef QT_NO_DOCKWIDGET
savedState.dockAreaLayout.centralWidgetItem = layoutState.dockAreaLayout.centralWidgetItem;
+ savedState.dockAreaLayout.fallbackToSizeHints = true;
#else
savedState.centralWidgetItem = layoutState.centralWidgetItem;
#endif
diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp
index 104728d..beb83a1 100644
--- a/tests/auto/qpainter/tst_qpainter.cpp
+++ b/tests/auto/qpainter/tst_qpainter.cpp
@@ -1580,10 +1580,8 @@ void tst_QPainter::drawClippedEllipse_data()
void tst_QPainter::drawClippedEllipse()
{
QFETCH(QRect, rect);
-#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
if (sizeof(qreal) != sizeof(double))
QSKIP("Test only works for qreal==double", SkipAll);
-#endif
QImage image(rect.width() + 1, rect.height() + 1,
QImage::Format_ARGB32_Premultiplied);
QRect expected = QRect(rect.x(), rect.y(), rect.width()+1, rect.height()+1)
diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp
index 5bd07f9..10d73d5 100644
--- a/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp
@@ -75,8 +75,16 @@ tst_QGraphicsScene::~tst_QGraphicsScene()
{
}
+static inline void processEvents()
+{
+ QApplication::flush();
+ QApplication::processEvents();
+ QApplication::processEvents();
+}
+
void tst_QGraphicsScene::init()
{
+ processEvents();
}
void tst_QGraphicsScene::cleanup()
@@ -148,6 +156,8 @@ void tst_QGraphicsScene::addItem()
if (!sceneRect.isNull())
scene.setSceneRect(sceneRect);
+ processEvents();
+
QBENCHMARK {
QGraphicsItem *item = 0;
for (int y = 0; y < numItems_Y; ++y) {
@@ -209,7 +219,6 @@ void tst_QGraphicsScene::itemAt()
if (!sceneRect.isNull())
scene.setSceneRect(sceneRect);
- QGraphicsItem *item = 0;
for (int y = 0; y < numItems_Y; ++y) {
for (int x = 0; x < numItems_X; ++x) {
QGraphicsRectItem *item = new QGraphicsRectItem(itemRect);
@@ -219,9 +228,11 @@ void tst_QGraphicsScene::itemAt()
}
scene.itemAt(0, 0); // triggers indexing
+ processEvents();
+ QGraphicsItem *item = 0;
QBENCHMARK {
- scene.itemAt(0, 0);
+ item = scene.itemAt(0, 0);
}
//let QGraphicsScene::_q_polishItems be called so ~QGraphicsItem doesn't spend all his time cleaning the unpolished list
diff --git a/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp b/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp
index 10e00a6..3c0ae71 100644
--- a/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/benchmarks/gui/graphicsview/qgraphicsview/tst_qgraphicsview.cpp
@@ -45,11 +45,7 @@
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QImage>
-#ifdef Q_WS_X11
-QT_BEGIN_NAMESPACE
-extern void qt_x11_wait_for_window_manager(QWidget *);
-QT_END_NAMESPACE
-#endif
+
#include "chiptester/chiptester.h"
//#define CALLGRIND_DEBUG
#ifdef CALLGRIND_DEBUG
@@ -58,34 +54,65 @@ QT_END_NAMESPACE
//TESTED_FILES=
-class QEventWaiter : public QEventLoop
+static inline void processEvents()
+{
+ QPixmapCache::clear();
+ QApplication::flush();
+ QApplication::processEvents();
+ QApplication::processEvents();
+}
+
+class TestView : public QGraphicsView
{
+ Q_OBJECT
public:
- QEventWaiter(QObject *receiver, QEvent::Type type)
- : waiting(false), t(type)
- {
- receiver->installEventFilter(this);
- }
+ TestView() : QGraphicsView(), waiting(false), timerId(-1)
+ {}
- void wait()
+ void waitForPaintEvent(int timeout = 4000)
{
+ if (waiting)
+ return;
waiting = true;
- exec();
+ timerId = startTimer(timeout);
+ eventLoop.exec();
+ killTimer(timerId);
+ timerId = -1;
+ waiting = false;
}
- bool eventFilter(QObject *receiver, QEvent *event)
+ void tryResize(int width, int height)
{
- Q_UNUSED(receiver);
- if (waiting && event->type() == t) {
- waiting = false;
- exit();
+ QDesktopWidget *desktop = QApplication::desktop();
+ if (desktop->width() < width)
+ width = desktop->width();
+ if (desktop->height() < height)
+ height = desktop->height();
+ if (size() != QSize(width, height)) {
+ resize(width, height);
+ QTest::qWait(250);
+ processEvents();
}
- return false;
+ }
+
+protected:
+ void paintEvent(QPaintEvent *event)
+ {
+ QGraphicsView::paintEvent(event);
+ if (waiting)
+ eventLoop.exit();
+ }
+
+ void timerEvent(QTimerEvent *event)
+ {
+ if (event->timerId() == timerId)
+ eventLoop.exit();
}
private:
+ QEventLoop eventLoop;
bool waiting;
- QEvent::Type t;
+ int timerId;
};
class tst_QGraphicsView : public QObject
@@ -97,6 +124,7 @@ public:
virtual ~tst_QGraphicsView();
public slots:
+ void initTestCase();
void init();
void cleanup();
@@ -126,6 +154,9 @@ private slots:
void moveItemCache();
void paintItemCache_data();
void paintItemCache();
+
+private:
+ TestView mView;
};
tst_QGraphicsView::tst_QGraphicsView()
@@ -136,8 +167,25 @@ tst_QGraphicsView::~tst_QGraphicsView()
{
}
+void tst_QGraphicsView::initTestCase()
+{
+ mView.setFrameStyle(0);
+ mView.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ mView.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ mView.tryResize(100, 100);
+ mView.show();
+ QTest::qWaitForWindowShown(&mView);
+ QTest::qWait(300);
+ processEvents();
+}
+
void tst_QGraphicsView::init()
{
+ mView.setRenderHints(QPainter::RenderHints(0));
+ mView.viewport()->setMouseTracking(false);
+ mView.setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
+ for (int i = 0; i < 3; ++i)
+ processEvents();
}
void tst_QGraphicsView::cleanup()
@@ -156,25 +204,18 @@ void tst_QGraphicsView::paintSingleItem()
QGraphicsScene scene(0, 0, 100, 100);
scene.addRect(0, 0, 10, 10);
- QGraphicsView view(&scene);
- view.show();
- view.resize(100, 100);
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&view);
-#endif
+ mView.setScene(&scene);
+ mView.tryResize(100, 100);
+ processEvents();
QImage image(100, 100, QImage::Format_ARGB32_Premultiplied);
QPainter painter(&image);
QBENCHMARK {
- view.viewport()->render(&painter);
+ mView.viewport()->render(&painter);
}
}
-#ifdef Q_OS_SYMBIAN
-# define DEEP_STACKING_COUNT 85
-#else
-# define DEEP_STACKING_COUNT 1000
-#endif
+#define DEEP_STACKING_COUNT 85
void tst_QGraphicsView::paintDeepStackingItems()
{
@@ -188,17 +229,14 @@ void tst_QGraphicsView::paintDeepStackingItems()
lastRect = rect;
}
- QGraphicsView view(&scene);
- view.show();
- view.resize(100, 100);
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&view);
-#endif
+ mView.setScene(&scene);
+ mView.tryResize(100, 100);
+ processEvents();
QImage image(100, 100, QImage::Format_ARGB32_Premultiplied);
QPainter painter(&image);
QBENCHMARK {
- view.viewport()->render(&painter);
+ mView.viewport()->render(&painter);
}
}
@@ -215,17 +253,14 @@ void tst_QGraphicsView::paintDeepStackingItems_clipped()
lastRect = rect;
}
- QGraphicsView view(&scene);
- view.show();
- view.resize(100, 100);
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&view);
-#endif
+ mView.setScene(&scene);
+ mView.tryResize(100, 100);
+ processEvents();
QImage image(100, 100, QImage::Format_ARGB32_Premultiplied);
QPainter painter(&image);
QBENCHMARK {
- view.viewport()->render(&painter);
+ mView.viewport()->render(&painter);
}
}
@@ -234,18 +269,14 @@ void tst_QGraphicsView::moveSingleItem()
QGraphicsScene scene(0, 0, 100, 100);
QGraphicsRectItem *item = scene.addRect(0, 0, 10, 10);
- QGraphicsView view(&scene);
- view.show();
- view.resize(100, 100);
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&view);
-#endif
+ mView.setScene(&scene);
+ mView.tryResize(100, 100);
+ processEvents();
- QEventWaiter waiter(view.viewport(), QEvent::Paint);
int n = 1;
QBENCHMARK {
item->setPos(25 * n, 25 * n);
- waiter.wait();
+ mView.waitForPaintEvent();
n = n ? 0 : 1;
}
}
@@ -271,6 +302,8 @@ void tst_QGraphicsView::mapPointToScene()
QGraphicsView view;
view.setTransform(transform);
+ processEvents();
+
QBENCHMARK {
view.mapToScene(point);
}
@@ -297,6 +330,8 @@ void tst_QGraphicsView::mapPointFromScene()
QGraphicsView view;
view.setTransform(transform);
+ processEvents();
+
QBENCHMARK {
view.mapFromScene(point);
}
@@ -323,6 +358,8 @@ void tst_QGraphicsView::mapRectToScene()
QGraphicsView view;
view.setTransform(transform);
+ processEvents();
+
QBENCHMARK {
view.mapToScene(rect);
}
@@ -349,6 +386,8 @@ void tst_QGraphicsView::mapRectFromScene()
QGraphicsView view;
view.setTransform(transform);
+ processEvents();
+
QBENCHMARK {
view.mapFromScene(rect);
}
@@ -380,13 +419,14 @@ void tst_QGraphicsView::chipTester()
QFETCH(int, operation);
ChipTester tester;
- tester.show();
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&tester);
-#endif
tester.setAntialias(antialias);
tester.setOpenGL(opengl);
tester.setOperation(ChipTester::Operation(operation));
+ tester.show();
+ QTest::qWaitForWindowShown(&tester);
+ QTest::qWait(250);
+ processEvents();
+
QBENCHMARK {
tester.runBenchmark();
}
@@ -436,20 +476,20 @@ void tst_QGraphicsView::deepNesting()
}
scene.setItemIndexMethod(bsp ? QGraphicsScene::BspTreeIndex : QGraphicsScene::NoIndex);
scene.setSortCacheEnabled(sortCache);
+ scene.setSceneRect(scene.sceneRect());
- QGraphicsView view(&scene);
- view.setRenderHint(QPainter::Antialiasing);
- view.show();
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&view);
-#endif
- QTest::qWait(250);
+ mView.setRenderHint(QPainter::Antialiasing);
+ mView.setScene(&scene);
+ mView.tryResize(600, 600);
+ (void)scene.itemAt(0, 0);
+ processEvents();
QBENCHMARK {
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
- view.viewport()->repaint();
+ mView.viewport()->update();
+ mView.waitForPaintEvent();
#ifdef CALLGRIND_DEBUG
CALLGRIND_STOP_INSTRUMENTATION
#endif
@@ -503,23 +543,6 @@ private:
bool scale;
};
-class CountPaintEventView : public QGraphicsView
-{
-public:
- CountPaintEventView(QGraphicsScene *scene = 0)
- : QGraphicsView(scene), count(0)
- { }
-
- int count;
-
-protected:
- void paintEvent(QPaintEvent *event)
- {
- ++count;
- QGraphicsView::paintEvent(event);
- };
-};
-
void tst_QGraphicsView::imageRiver_data()
{
QTest::addColumn<int>("direction");
@@ -541,13 +564,6 @@ void tst_QGraphicsView::imageRiver()
QGraphicsScene scene(0, 0, 300, 300);
- CountPaintEventView view(&scene);
- view.resize(300, 300);
- view.setFrameStyle(0);
- view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view.show();
-
QPixmap pix(":/images/designer.png");
QVERIFY(!pix.isNull());
@@ -555,37 +571,31 @@ void tst_QGraphicsView::imageRiver()
QFile file(":/random.data");
QVERIFY(file.open(QIODevice::ReadOnly));
QDataStream str(&file);
-#if defined(Q_OS_SYMBIAN)
for (int i = 0; i < 50; ++i) {
-#else
- for (int i = 0; i < 100; ++i) {
-#endif
- AnimatedPixmapItem *item;
+ AnimatedPixmapItem *item = 0;
if (direction == 0) item = new AnimatedPixmapItem((i % 4) + 1, 0, rotation, scale);
if (direction == 1) item = new AnimatedPixmapItem(0, (i % 4) + 1, rotation, scale);
if (direction == 2) item = new AnimatedPixmapItem((i % 4) + 1, (i % 4) + 1, rotation, scale);
item->setPixmap(pix);
int rnd1, rnd2;
str >> rnd1 >> rnd2;
- item->setPos(-pix.width() + rnd1 % (view.width() + pix.width()),
- -pix.height() + rnd2 % (view.height() + pix.height()));
+ item->setPos(-pix.width() + rnd1 % (300 + pix.width()),
+ -pix.height() + rnd2 % (300 + pix.height()));
scene.addItem(item);
}
+ scene.setSceneRect(0, 0, 300, 300);
- view.count = 0;
+ mView.setScene(&scene);
+ mView.tryResize(300, 300);
+ processEvents();
QBENCHMARK {
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
-#if defined(Q_OS_SYMBIAN)
for (int i = 0; i < 50; ++i) {
-#else
- for (int i = 0; i < 100; ++i) {
-#endif
scene.advance();
- while (view.count < (i+1))
- qApp->processEvents();
+ mView.waitForPaintEvent();
}
#ifdef CALLGRIND_DEBUG
CALLGRIND_STOP_INSTRUMENTATION
@@ -663,13 +673,6 @@ void tst_QGraphicsView::textRiver()
QGraphicsScene scene(0, 0, 300, 300);
- CountPaintEventView view(&scene);
- view.resize(300, 300);
- view.setFrameStyle(0);
- view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view.show();
-
QPixmap pix(":/images/designer.png");
QVERIFY(!pix.isNull());
@@ -677,36 +680,32 @@ void tst_QGraphicsView::textRiver()
QFile file(":/random.data");
QVERIFY(file.open(QIODevice::ReadOnly));
QDataStream str(&file);
-#if defined(Q_OS_SYMBIAN)
for (int i = 0; i < 50; ++i) {
-#else
- for (int i = 0; i < 100; ++i) {
-#endif
- AnimatedTextItem *item;
+ AnimatedTextItem *item = 0;
if (direction == 0) item = new AnimatedTextItem((i % 4) + 1, 0, rotation, scale);
if (direction == 1) item = new AnimatedTextItem(0, (i % 4) + 1, rotation, scale);
if (direction == 2) item = new AnimatedTextItem((i % 4) + 1, (i % 4) + 1, rotation, scale);
int rnd1, rnd2;
str >> rnd1 >> rnd2;
- item->setPos(-pix.width() + rnd1 % (view.width() + pix.width()),
- -pix.height() + rnd2 % (view.height() + pix.height()));
+ item->setPos(-pix.width() + rnd1 % (300 + pix.width()),
+ -pix.height() + rnd2 % (300 + pix.height()));
+ item->setAcceptDrops(false);
+ item->setAcceptHoverEvents(false);
scene.addItem(item);
}
+ scene.setSceneRect(0, 0, 300, 300);
- view.count = 0;
+ mView.setScene(&scene);
+ mView.tryResize(300, 300);
+ processEvents();
QBENCHMARK {
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
-#if defined(Q_OS_SYMBIAN)
for (int i = 0; i < 50; ++i) {
-#else
- for (int i = 0; i < 100; ++i) {
-#endif
scene.advance();
- while (view.count < (i+1))
- qApp->processEvents();
+ mView.waitForPaintEvent();
}
#ifdef CALLGRIND_DEBUG
CALLGRIND_STOP_INSTRUMENTATION
@@ -773,13 +772,6 @@ void tst_QGraphicsView::moveItemCache()
QGraphicsScene scene(0, 0, 300, 300);
- CountPaintEventView view(&scene);
- view.resize(600, 600);
- view.setFrameStyle(0);
- view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view.show();
-
QPixmap pix(":/images/wine.jpeg");
QVERIFY(!pix.isNull());
@@ -787,12 +779,8 @@ void tst_QGraphicsView::moveItemCache()
QFile file(":/random.data");
QVERIFY(file.open(QIODevice::ReadOnly));
QDataStream str(&file);
-#if defined(Q_OS_SYMBIAN)
for (int i = 0; i < 5; ++i) {
-#else
- for (int i = 0; i < 50; ++i) {
-#endif
- AnimatedPixmapCacheItem *item;
+ AnimatedPixmapCacheItem *item = 0;
if (direction == 0) item = new AnimatedPixmapCacheItem((i % 4) + 1, 0);
if (direction == 1) item = new AnimatedPixmapCacheItem(0, (i % 4) + 1);
if (direction == 2) item = new AnimatedPixmapCacheItem((i % 4) + 1, (i % 4) + 1);
@@ -802,25 +790,23 @@ void tst_QGraphicsView::moveItemCache()
item->setTransform(QTransform().rotate(45));
int rnd1, rnd2;
str >> rnd1 >> rnd2;
- item->setPos(-pix.width() + rnd1 % (view.width() + pix.width()),
- -pix.height() + rnd2 % (view.height() + pix.height()));
+ item->setPos(-pix.width() + rnd1 % (400 + pix.width()),
+ -pix.height() + rnd2 % (400 + pix.height()));
scene.addItem(item);
}
+ scene.setSceneRect(0, 0, 400, 400);
- view.count = 0;
+ mView.setScene(&scene);
+ mView.tryResize(400, 400);
+ processEvents();
QBENCHMARK {
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
-#if defined(Q_OS_SYMBIAN)
- for (int i = 0; i < 50; ++i) {
-#else
- for (int i = 0; i < 100; ++i) {
-#endif
+ for (int i = 0; i < 5; ++i) {
scene.advance();
- while (view.count < (i+1))
- qApp->processEvents();
+ mView.waitForPaintEvent();
}
#ifdef CALLGRIND_DEBUG
CALLGRIND_STOP_INSTRUMENTATION
@@ -843,6 +829,7 @@ public:
protected:
void advance(int i)
{
+ Q_UNUSED(i);
if (partial)
update(QRectF(boundingRect().center().x(), boundingRect().center().x(), 30, 30));
else
@@ -880,13 +867,6 @@ void tst_QGraphicsView::paintItemCache()
QGraphicsScene scene(0, 0, 300, 300);
- CountPaintEventView view(&scene);
- view.resize(600, 600);
- view.setFrameStyle(0);
- view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- view.show();
-
QPixmap pix(":/images/wine.jpeg");
QVERIFY(!pix.isNull());
@@ -910,21 +890,19 @@ void tst_QGraphicsView::paintItemCache()
item->setTransform(QTransform().rotate(45));
item->setPos(0, 0);
scene.addItem(item);
+ scene.setSceneRect(-100, -100, 600, 600);
- view.count = 0;
+ mView.tryResize(600, 600);
+ mView.setScene(&scene);
+ processEvents();
QBENCHMARK {
#ifdef CALLGRIND_DEBUG
CALLGRIND_START_INSTRUMENTATION
#endif
-#if defined(Q_OS_SYMBIAN)
for (int i = 0; i < 5; ++i) {
-#else
- for (int i = 0; i < 50; ++i) {
-#endif
scene.advance();
- while (view.count < (i+1))
- qApp->processEvents();
+ mView.waitForPaintEvent();
}
#ifdef CALLGRIND_DEBUG
CALLGRIND_STOP_INSTRUMENTATION