diff options
Diffstat (limited to 'tests/manual/fontfeatures/main.qml')
-rw-r--r-- | tests/manual/fontfeatures/main.qml | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/tests/manual/fontfeatures/main.qml b/tests/manual/fontfeatures/main.qml new file mode 100644 index 0000000000..77a06a143b --- /dev/null +++ b/tests/manual/fontfeatures/main.qml @@ -0,0 +1,247 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +import QtCore +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import QtQuick.Dialogs + +ApplicationWindow { + id: window + width: 800 + height: 600 + title: "Font features" + visible: true + color: "white" + + function handleFont(font) + { + var map = font.features + for (var i = 0; i < listView.count; ++i) { + var item = listView.itemAtIndex(i) + if (item !== null) { + if (item.checkState === Qt.Checked) + map[item.text] = true + else if (item.checkState === Qt.Unchecked) + map[item.text] = false + } + } + + font.features = map + return font + } + + ColumnLayout { + anchors.fill: parent + RowLayout { + Text { + text: "Font:" + } + Text { + text: sampleText.font.family + } + ToolButton { + text: "..." + Layout.fillWidth: false + onClicked: fontDialog.visible = true + } + } + TextField { + id: sampleText + text: "This text is fine" + font.family: "Calibri" + font.pixelSize: 20 + Layout.fillWidth: false + } + TextField { + id: smcpText + text: "Small caps" + font: { + "family": sampleText.font.family, + "pixelSize": sampleText.font.pixelSize, + "features": { "smcp": 1 } + } + Layout.fillWidth: false + } + TextField { + id: noLigaturesOrKerning + text: "This text is fine" + font.family: sampleText.font.family + font.pixelSize: sampleText.font.pixelSize + font.features: { "liga": 0, "dlig": 0, "clig": 0, "hlig": 0, "kern": 0 } + Layout.fillWidth: false + } + + ListView { + id: listView + height: window.height / 2 + width: window.width + Layout.fillWidth: false + Layout.fillHeight: false + model: [ "aalt", + "abvf", + "abvm", + "abvs", + "afrc", + "akhn", + "blwf", + "blwm", + "blws", + "calt", + "case", + "ccmp", + "cfar", + "chws", + "cjct", + "clig", + "cpct", + "cpsp", + "cswh", + "curs", + "cv01", + "c2pc", + "c2sc", + "dist", + "dlig", + "dnom", + "dtls", + "expt", + "falt", + "fin2", + "fin3", + "fina", + "flac", + "frac", + "fwid", + "half", + "haln", + "halt", + "hist", + "hkna", + "hlig", + "hngl", + "hojo", + "hwid", + "init", + "isol", + "ital", + "jalt", + "jp78", + "jp83", + "jp90", + "jp04", + "kern", + "lfbd", + "liga", + "ljmo", + "lnum", + "locl", + "ltra", + "ltrm", + "mark", + "med2", + "medi", + "mgrk", + "mkmk", + "mset", + "nalt", + "nlck", + "nukt", + "numr", + "onum", + "opbd", + "ordn", + "ornm", + "palt", + "pcap", + "pkna", + "pnum", + "pref", + "pres", + "pstf", + "psts", + "pwid", + "qwid", + "rand", + "rclt", + "rkrf", + "rlig", + "rphf", + "rtbd", + "rtla", + "rtlm", + "ruby", + "rvrn", + "salt", + "sinf", + "size", + "smcp", + "smpl", + "ss01", + "ss02", + "ss03", + "ss04", + "ss05", + "ss06", + "ss07", + "ss08", + "ss09", + "ss10", + "ss11", + "ss12", + "ss13", + "ss14", + "ss15", + "ss16", + "ss17", + "ss18", + "ss19", + "ss20", + "ssty", + "stch", + "subs", + "sups", + "swsh", + "titl", + "tjmo", + "tnam", + "tnum", + "trad", + "twid", + "unic", + "valt", + "vatu", + "vchw", + "vert", + "vhal", + "vjmo", + "vkna", + "vkrn", + "vpal", + "vrt2", + "vrtr", + "zero" + ] + + delegate: CheckBox { + id: checkBox + text: modelData + tristate: true + checkState: Qt.PartiallyChecked + onCheckedChanged: { + sampleText.font = handleFont(fontDialog.currentFont) + } + } + } + } + + FontDialog { + id: fontDialog + visible: false + title: "Please select a font" + onAccepted: { + sampleText.font = handleFont(fontDialog.currentFont) + } + } +} |