summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp')
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp140
1 files changed, 0 insertions, 140 deletions
diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp b/tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp
deleted file mode 100644
index 1db130203a..0000000000
--- a/tests/benchmarks/gui/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-#include <QtGui/qgraphicslayout.h>
-#include <QtGui/qgraphicslinearlayout.h>
-#include <QtGui/qgraphicswidget.h>
-#include <QtGui/qgraphicsview.h>
-
-class tst_QGraphicsLayout : public QObject
-{
- Q_OBJECT
-public:
- tst_QGraphicsLayout() {}
- ~tst_QGraphicsLayout() {}
-
-private slots:
- void invalidate();
-};
-
-
-class RectWidget : public QGraphicsWidget
-{
-public:
- RectWidget(QGraphicsItem *parent = 0, Qt::WindowFlags wFlags = 0) : QGraphicsWidget(parent, wFlags), setGeometryCalls(0) {}
-
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
- {
- Q_UNUSED(option);
- Q_UNUSED(widget);
- painter->drawRoundRect(rect());
- painter->drawLine(rect().topLeft(), rect().bottomRight());
- painter->drawLine(rect().bottomLeft(), rect().topRight());
- }
-
- void setGeometry(const QRectF &rect)
- {
- //qDebug() << "setGeometry():" << this->data(0).toString();
- setGeometryCalls->insert(this, rect);
- QGraphicsWidget::setGeometry(rect);
- }
-
- void callUpdateGeometry() {
- QGraphicsWidget::updateGeometry();
- }
-
- QMap<RectWidget*, QRectF> *setGeometryCalls;
-};
-
-/**
- * Test to see how much time is needed to resize all widgets in a
- * layout-widget-layout-widget-.... hierarchy from the point where a
- * leaf widget changes its size hint. (updateGeometry() is called).
- *
- * If you run the test for 4.7 you'll get some really high numbers, but
- * that's because they also include painting (and possible processing of
- * some other events).
- */
-void tst_QGraphicsLayout::invalidate()
-{
- QGraphicsLayout::setInstantInvalidatePropagation(true);
- QGraphicsScene scene;
- QGraphicsView *view = new QGraphicsView(&scene);
- QMap<RectWidget*, QRectF> setGeometryCalls;
-
- RectWidget *window = new RectWidget(0, Qt::Window);
- window->setGeometryCalls = &setGeometryCalls;
- window->setData(0, QString(QChar('a')));
-
- scene.addItem(window);
- RectWidget *leaf = 0;
- const int depth = 100;
- RectWidget *parent = window;
- for (int i = 1; i < depth; ++i) {
- QGraphicsLinearLayout *l = new QGraphicsLinearLayout(parent);
- l->setContentsMargins(0,0,0,0);
- RectWidget *child = new RectWidget;
- child->setData(0, QString(QChar('a' + i)));
- child->setGeometryCalls = &setGeometryCalls;
- l->addItem(child);
- parent = child;
- }
- leaf = parent;
- leaf->setMinimumSize(QSizeF(1,1));
-
- view->show();
-
- QVERIFY(QTest::qWaitForWindowShown(view));
-
- // ...then measure...
-
- int pass = 1;
-
- // should be as small as possible, to reduce overhead of painting
- QSizeF size(1, 1);
- setGeometryCalls.clear();
- QBENCHMARK {
- leaf->setMinimumSize(size);
- leaf->setMaximumSize(size);
- while (setGeometryCalls.count() < depth) {
- QApplication::sendPostedEvents();
- }
- // force a resize on each widget, this will ensure
- // that each iteration will resize all 50 widgets
- int w = int(size.width());
- w^=2;
- size.setWidth(w);
- }
- delete view;
- QGraphicsLayout::setInstantInvalidatePropagation(false);
-}
-
-QTEST_MAIN(tst_QGraphicsLayout)
-
-#include "tst_qgraphicslayout.moc"