aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2019-06-20 12:00:58 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2019-06-25 07:14:29 +0000
commit5be6e8401670c8c6117e95290276b11f4b633a63 (patch)
tree88188b52d31df4468ba2ea8ddc39cac4fa0ffd6d
parentea76ca45e4971e4c9e3f2b144b846fbbddc8c755 (diff)
QmlDesigner: List all fonts in project
We iterate all over all ttf and otf files that are found unter the project directory and show their name in the FontComboBox. Task-number: QDS-100 Change-Id: I45c4d512783d5ecc4a646860c08e6088bd712798 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontComboBox.qml32
1 files changed, 31 insertions, 1 deletions
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontComboBox.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontComboBox.qml
index 16de1a90ef..5d9ae328d2 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontComboBox.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontComboBox.qml
@@ -39,7 +39,35 @@ StudioControls.ComboBox {
onTextColorChanged: setColor()
editable: true
- model: ["Arial", "Times New Roman", "Courier", "Verdana", "Tahoma"]
+
+ property string fontFilter: "*.ttf *.otf"
+
+
+ FileResourcesModel {
+ modelNodeBackendProperty: modelNodeBackend
+ filter: comboBox.fontFilter
+ id: fileModel
+ }
+
+ function fontUrlToName(url) {
+ var fontLoader = Qt.createQmlObject('import QtQuick 2.0; FontLoader { source: \"' + url + '\"; }',
+ comboBox,
+ "dynamicFontLoader");
+ return fontLoader.name
+ }
+
+ function setupModel() {
+ var files = fileModel.fileModel
+ var familyNames = ["Arial", "Times New Roman", "Courier", "Verdana", "Tahoma"]
+
+ files.forEach(function (item, index) {
+ var name = fontUrlToName(fileModel.dirPath + "/" + item)
+ familyNames.push(name)
+ });
+
+ familyNames.sort()
+ comboBox.model = familyNames
+ }
onModelChanged: {
editText = comboBox.backendValue.valueToString
@@ -97,10 +125,12 @@ StudioControls.ComboBox {
target: modelNodeBackend
onSelectionChanged: {
comboBox.editText = backendValue.value
+ setupModel()
}
}
Component.onCompleted: {
+ setupModel()
//Hack to style the text input
for (var i = 0; i < comboBox.children.length; i++) {
if (comboBox.children[i].text !== undefined) {