diff options
author | Alessandro Portale <alessandro.portale@qt.io> | 2017-11-15 23:34:50 +0100 |
---|---|---|
committer | Alessandro Portale <alessandro.portale@qt.io> | 2017-11-27 14:07:40 +0000 |
commit | 8895ef1ddbb95488dfec6dcffeed8781b839048e (patch) | |
tree | cbebd657061e21393ffc41dbb853de4df74b9518 /tests/manual/widgets | |
parent | 8efb598e60906abe5f9f28af539f976713aa2d37 (diff) |
Utils: Add a manual test for Utils::CrumblePath
Using a small test app for testing the CrumblePath is less clumsy than
doing that in Qt Quick Designer.
Change-Id: I4a1d739aa303adfd799df33eb00fb8cd513304c3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'tests/manual/widgets')
-rw-r--r-- | tests/manual/widgets/crumblepath/crumblepath.pro | 13 | ||||
-rw-r--r-- | tests/manual/widgets/crumblepath/tst_crumblepath.cpp | 128 | ||||
-rw-r--r-- | tests/manual/widgets/crumblepath/tst_crumblepath.qrc | 9 | ||||
-rw-r--r-- | tests/manual/widgets/widgets.pro | 3 |
4 files changed, 153 insertions, 0 deletions
diff --git a/tests/manual/widgets/crumblepath/crumblepath.pro b/tests/manual/widgets/crumblepath/crumblepath.pro new file mode 100644 index 0000000000..40bc396895 --- /dev/null +++ b/tests/manual/widgets/crumblepath/crumblepath.pro @@ -0,0 +1,13 @@ +SOURCES += \ + tst_crumblepath.cpp + +RESOURCES += \ + tst_crumblepath.qrc + +QTC_LIB_DEPENDS += \ + utils + +QTC_PLUGIN_DEPENDS += \ + coreplugin + +include(../../../auto/qttest.pri) diff --git a/tests/manual/widgets/crumblepath/tst_crumblepath.cpp b/tests/manual/widgets/crumblepath/tst_crumblepath.cpp new file mode 100644 index 0000000000..303d40438f --- /dev/null +++ b/tests/manual/widgets/crumblepath/tst_crumblepath.cpp @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** 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. +** +****************************************************************************/ + +#include <QApplication> +#include <QBoxLayout> +#include <QSettings> +#include <QTimer> +#include <QDebug> + +#include <utils/crumblepath.h> +#include <utils/styledbar.h> +#include <utils/stylehelper.h> +#include <utils/theme/theme.h> +#include <utils/theme/theme_p.h> + +#include <coreplugin/manhattanstyle.h> + +using namespace Utils; + +QWidget *crumblePathWithMenu() +{ + auto *cp = new CrumblePath; + cp->pushElement("Ene", QVariant(1)); + cp->addChild("Ene child 1", QVariant(1)); + cp->addChild("Ene child 2", QVariant(2)); + cp->pushElement("Mene", QVariant(2)); + cp->pushElement("Mopel", QVariant(3)); + cp->addChild("Mopel child 1", QVariant(1)); + cp->addChild("Mopel child 2", QVariant(2)); + return cp; +} + +QWidget *disabledCrumblePathWithMenu() +{ + QWidget *cp = crumblePathWithMenu(); + cp->setDisabled(true); + return cp; +} + +QWidget *growingCrumblePath() +{ + auto *cp = new CrumblePath; + auto *timer = new QTimer(cp); + timer->start(); + QObject::connect(timer, &QTimer::timeout, cp, [cp, timer]() { + const int elementId = cp->length() + 1; + cp->pushElement(QStringLiteral("Element %1").arg(elementId), elementId); + if (cp->length() == 5) + timer->stop(); + else + timer->setInterval(2000); + }); + + return cp; +} + +QWidget *shrinkingCrumblePath() +{ + auto *cp = new CrumblePath; + for (const auto &title : {"Ene", "Mene", "Mopel", "Zicke", "Zacke"}) + cp->pushElement(title, title); + + auto *timer = new QTimer(cp); + timer->setInterval(2000); + timer->start(); + QObject::connect(timer, &QTimer::timeout, cp, [cp, timer](){ + cp->popElement(); + if (cp->length() == 1) + timer->stop(); + }); + + return cp; +} + +int main(int argc, char *argv[]) +{ + QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + + QApplication app(argc, argv); + + Theme theme(""); + QSettings settings(":/flat.creatortheme", QSettings::IniFormat); + theme.readSettings(settings); + setCreatorTheme(&theme); + StyleHelper::setBaseColor(QColor(StyleHelper::DEFAULT_BASE_COLOR)); + QApplication::setStyle(new ManhattanStyle(creatorTheme()->preferredStyles().value(0))); + + auto *widget = new QWidget; + auto *layout = new QVBoxLayout(widget); + for (auto creatorFunction : {crumblePathWithMenu, + disabledCrumblePathWithMenu, + growingCrumblePath, + shrinkingCrumblePath}) { + auto *cpToolBar = new Utils::StyledBar(widget); + auto *cpLayout = new QHBoxLayout(cpToolBar); + cpLayout->setContentsMargins(0, 0, 0, 0); + cpLayout->addWidget(creatorFunction()); + layout->addWidget(cpToolBar); + } + layout->addStretch(); + + widget->resize(600, 200); + widget->show(); + + return app.exec(); +} diff --git a/tests/manual/widgets/crumblepath/tst_crumblepath.qrc b/tests/manual/widgets/crumblepath/tst_crumblepath.qrc new file mode 100644 index 0000000000..d596e9c0eb --- /dev/null +++ b/tests/manual/widgets/crumblepath/tst_crumblepath.qrc @@ -0,0 +1,9 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource prefix="/"> + <file alias="dark.creatortheme">../../../../share/qtcreator/themes/dark.creatortheme</file> + <file alias="default.creatortheme">../../../../share/qtcreator/themes/default.creatortheme</file> + <file alias="flat-dark.creatortheme">../../../../share/qtcreator/themes/flat-dark.creatortheme</file> + <file alias="flat-light.creatortheme">../../../../share/qtcreator/themes/flat-light.creatortheme</file> + <file alias="flat.creatortheme">../../../../share/qtcreator/themes/flat.creatortheme</file> +</qresource> +</RCC> diff --git a/tests/manual/widgets/widgets.pro b/tests/manual/widgets/widgets.pro new file mode 100644 index 0000000000..aa0a4e874e --- /dev/null +++ b/tests/manual/widgets/widgets.pro @@ -0,0 +1,3 @@ +TEMPLATE = subdirs +SUBDIRS = \ + crumblepath |