summaryrefslogtreecommitdiffstats
path: root/tests/manual/dialogs/utils.h
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-11-26 22:30:27 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2013-11-26 22:35:48 +0100
commit4a8273a6fc2e741e811cf5dabc9a3c240306cf7f (patch)
tree2148abc88f8543eecdc0b97b2dd92594836af9b2 /tests/manual/dialogs/utils.h
parent036c5db468164297d213764c59a4b59daa76d90a (diff)
parent1c2be58fecaff1de5f2849192eb712984ebd59bd (diff)
Merge remote-tracking branch 'origin/stable' into dev
For the conflicts in msvc_nmake.cpp the ifdefs are extended since we need to support windows phone in the target branch while it is not there in the current stable branch (as of Qt 5.2). Conflicts: configure qmake/generators/win32/msvc_nmake.cpp src/3rdparty/angle/src/libEGL/Surface.cpp src/angle/src/common/common.pri src/corelib/global/qglobal.h src/corelib/io/qstandardpaths.cpp src/plugins/platforms/qnx/qqnxintegration.cpp src/plugins/platforms/qnx/qqnxscreeneventhandler.h src/plugins/platforms/xcb/qglxintegration.h src/widgets/kernel/win.pri tests/auto/corelib/thread/qreadwritelock/tst_qreadwritelock.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp tools/configure/configureapp.cpp Change-Id: I00b579eefebaf61d26ab9b00046d2b5bd5958812
Diffstat (limited to 'tests/manual/dialogs/utils.h')
-rw-r--r--tests/manual/dialogs/utils.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/tests/manual/dialogs/utils.h b/tests/manual/dialogs/utils.h
new file mode 100644
index 0000000000..634795627f
--- /dev/null
+++ b/tests/manual/dialogs/utils.h
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** 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
+** 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.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** 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$
+**
+****************************************************************************/
+
+#ifndef UTILS_H
+#define UTILS_H
+
+#include <QComboBox>
+#include <QGroupBox>
+#include <QVariant>
+#include <QPair>
+#include <QList>
+
+QT_FORWARD_DECLARE_CLASS(QCheckBox)
+
+// Associate enum/flag value with a description.
+struct FlagData
+{
+ const char *description;
+ int value;
+};
+
+// Helpers for creating combo boxes representing enumeration values from flag data.
+QComboBox *createCombo(QWidget *parent, const FlagData *d, size_t size);
+
+template <class Enum>
+Enum comboBoxValue(const QComboBox *c)
+{
+ return static_cast<Enum>(c->itemData(c->currentIndex()).toInt());
+}
+
+void setComboBoxValue(QComboBox *c, int v);
+
+// A group box with check boxes for option flags.
+class OptionsControl : public QGroupBox {
+public:
+ explicit OptionsControl(const QString &title, const FlagData *data, size_t count, QWidget *parent);
+
+ void setValue(int flags);
+ template <class Enum>
+ Enum value() const { return static_cast<Enum>(intValue()); }
+
+private:
+ typedef QPair<QCheckBox *, int> CheckBoxFlagPair;
+
+ int intValue() const;
+
+ QList<CheckBoxFlagPair> m_checkBoxes;
+};
+
+#endif // UTILS_H