From 723ba0fc4858545b864b8a1d9246f91e690a2d42 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Wed, 6 Dec 2023 20:29:27 +0100 Subject: [PATCH] Utils: Add a manual test for StyleHelper::uiFont Visualizes the predefined ui fonts. Change-Id: Ic0af15ab149b213a59bf8e22cf7e17ab9042c54e Reviewed-by: Artem Sokolovskii Reviewed-by: --- tests/manual/widgets/CMakeLists.txt | 1 + tests/manual/widgets/uifonts/CMakeLists.txt | 14 ++++++ .../uifonts/tst_manual_widgets_uifonts.cpp | 50 +++++++++++++++++++ tests/manual/widgets/uifonts/uifonts.qbs | 12 +++++ tests/manual/widgets/widgets.qbs | 1 + 5 files changed, 78 insertions(+) create mode 100644 tests/manual/widgets/uifonts/CMakeLists.txt create mode 100644 tests/manual/widgets/uifonts/tst_manual_widgets_uifonts.cpp create mode 100644 tests/manual/widgets/uifonts/uifonts.qbs diff --git a/tests/manual/widgets/CMakeLists.txt b/tests/manual/widgets/CMakeLists.txt index 1ef0a008009..8408e78ae9d 100644 --- a/tests/manual/widgets/CMakeLists.txt +++ b/tests/manual/widgets/CMakeLists.txt @@ -3,3 +3,4 @@ add_subdirectory(infolabel) add_subdirectory(layoutbuilder) add_subdirectory(manhattanstyle) add_subdirectory(tracing) +add_subdirectory(uifonts) diff --git a/tests/manual/widgets/uifonts/CMakeLists.txt b/tests/manual/widgets/uifonts/CMakeLists.txt new file mode 100644 index 00000000000..c4712f78dd0 --- /dev/null +++ b/tests/manual/widgets/uifonts/CMakeLists.txt @@ -0,0 +1,14 @@ +add_qtc_test(tst_manual_widgets_uifonts + MANUALTEST + DEPENDS Qt::Gui Utils + SOURCES + tst_manual_widgets_uifonts.cpp +) + +set(FONTS_BASE "${QtCreator_SOURCE_DIR}/src/share/3rdparty/studiofonts/") +qt_add_resources(tst_manual_widgets_uifonts + tst_manual_widgets_uifonts_rcc + BASE ${FONTS_BASE} + PREFIX "studiofonts" + FILES "${FONTS_BASE}/TitilliumWeb-Regular.ttf" +) diff --git a/tests/manual/widgets/uifonts/tst_manual_widgets_uifonts.cpp b/tests/manual/widgets/uifonts/tst_manual_widgets_uifonts.cpp new file mode 100644 index 00000000000..545cd7ed957 --- /dev/null +++ b/tests/manual/widgets/uifonts/tst_manual_widgets_uifonts.cpp @@ -0,0 +1,50 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include +#include + +#include +#include +#include + +using namespace Utils; + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + static const struct { + StyleHelper::UiElement uiElement; + const QString name; + } uiElements[] = { + { StyleHelper::UiElementH1, "H1" }, + { StyleHelper::UiElementH2, "H2" }, + { StyleHelper::UiElementH3, "H3" }, + { StyleHelper::UiElementH4, "H4" }, + { StyleHelper::UiElementCaptionStrong, "Caption strong" }, + { StyleHelper::UiElementCaption, "Caption" }, + }; + static const QString textSample("AaBbCcXxYyZz123"); + + using namespace Layouting; + Grid fontLabels {}; + for (auto uiElement : uiElements) { + const QFont font = StyleHelper::uiFont(uiElement.uiElement); + auto *uiElementLabel = new QLabel(uiElement.name); + uiElementLabel->setFont(font); + auto *sampleLabel = new QLabel(textSample); + sampleLabel->setFont(font); + fontLabels.addItems({uiElementLabel, sampleLabel, font.toString(), br}); + } + + Column { + windowTitle("Utils::StyleHelper::uiFont"), + Group { + title("As QFont in QLabel"), + fontLabels, + }, + }.emerge()->show(); + + return app.exec(); +} diff --git a/tests/manual/widgets/uifonts/uifonts.qbs b/tests/manual/widgets/uifonts/uifonts.qbs new file mode 100644 index 00000000000..ac4f53d558b --- /dev/null +++ b/tests/manual/widgets/uifonts/uifonts.qbs @@ -0,0 +1,12 @@ +CppApplication { + name: "Manual Test Utils UiFonts" + Depends { name: "Utils" } + files: "tst_manual_widgets_uifonts.cpp" + + Group { + name: "studiofonts" + prefix: "../../../../src/share/3rdparty/studiofonts/" + files: "studiofonts.qrc" + } +} + diff --git a/tests/manual/widgets/widgets.qbs b/tests/manual/widgets/widgets.qbs index d6b6cd633b1..10bb2752dcf 100644 --- a/tests/manual/widgets/widgets.qbs +++ b/tests/manual/widgets/widgets.qbs @@ -7,5 +7,6 @@ Project { "layoutbuilder/layoutbuilder.qbs", "manhattanstyle/manhattanstyle.qbs", "tracing/tracing.qbs", + "uifonts/uifonts.qbs", ] }