diff options
Diffstat (limited to 'tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp')
-rw-r--r-- | tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp | 65 |
1 files changed, 47 insertions, 18 deletions
diff --git a/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp b/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp index d66a10ae56..3dfb08406f 100644 --- a/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp +++ b/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp @@ -5,36 +5,28 @@ ** ** This file is part of the test suite of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** 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 Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception +** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -56,6 +48,7 @@ #include <qlabel.h> #include <qdialog.h> #include <qscreen.h> +#include <qproxystyle.h> #include <qdebug.h> // for file error messages QT_FORWARD_DECLARE_CLASS(QSplitter) @@ -88,6 +81,7 @@ private slots: void testRemoval(); void rubberBandNotInSplitter(); void saveAndRestoreStateOfNotYetShownSplitter(); + void saveAndRestoreHandleWidth(); // task-specific tests below me: void task187373_addAbstractScrollAreas(); @@ -301,6 +295,41 @@ void tst_QSplitter::saveAndRestoreStateOfNotYetShownSplitter() delete spl; } +class TestSplitterStyle : public QProxyStyle +{ +public: + TestSplitterStyle() : handleWidth(5) {} + int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const Q_DECL_OVERRIDE + { + if (metric == QStyle::PM_SplitterWidth) + return handleWidth; + else + return QProxyStyle::pixelMetric(metric, option, widget); + } + int handleWidth; +}; + +void tst_QSplitter::saveAndRestoreHandleWidth() +{ + TestSplitterStyle style; + style.handleWidth = 5; + QSplitter spl; + spl.setStyle(&style); + + QCOMPARE(spl.handleWidth(), style.handleWidth); + style.handleWidth = 10; + QCOMPARE(spl.handleWidth(), style.handleWidth); + QByteArray ba = spl.saveState(); + spl.setHandleWidth(20); + QCOMPARE(spl.handleWidth(), 20); + spl.setHandleWidth(-1); + QCOMPARE(spl.handleWidth(), style.handleWidth); + spl.setHandleWidth(15); + QCOMPARE(spl.handleWidth(), 15); + spl.restoreState(ba); + QCOMPARE(spl.handleWidth(), style.handleWidth); +} + void tst_QSplitter::saveState_data() { QTest::addColumn<IntList>("initialSizes"); |