Warning, /frameworks/syntax-highlighting/examples/qml/example.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: MIT
0005 */
0006 
0007 import QtQuick
0008 import QtQuick.Controls
0009 import QtQuick.Layouts
0010 import org.kde.kirigami as Kirigami
0011 import org.kde.syntaxhighlighting
0012 
0013 ApplicationWindow {
0014     visible: true
0015     width: 1024
0016     height: 720
0017 
0018     ColumnLayout {
0019         anchors.fill: parent
0020         spacing: Kirigami.Units.smallSpacing
0021         RowLayout {
0022             spacing: Kirigami.Units.smallSpacing
0023             Layout.fillWidth: true
0024             Layout.topMargin: Kirigami.Units.smallSpacing
0025             Layout.leftMargin: Kirigami.Units.smallSpacing
0026             Layout.rightMargin: Kirigami.Units.smallSpacing
0027             Label { text: "Syntax" }
0028             ComboBox {
0029                 Layout.fillWidth: true
0030                 model: Repository.definitions
0031                 displayText: currentValue.translatedName + " (" + currentValue.translatedSection + ")"
0032                 textRole: "translatedName"
0033                 onCurrentIndexChanged: highlighter.definition = currentValue
0034             }
0035         }
0036         RowLayout {
0037             spacing: Kirigami.Units.smallSpacing
0038             Layout.fillWidth: true
0039             Layout.leftMargin: Kirigami.Units.smallSpacing
0040             Layout.rightMargin: Kirigami.Units.smallSpacing
0041             Label { text: "Theme" }
0042             ComboBox {
0043                 Layout.fillWidth: true
0044                 model: Repository.themes
0045                 displayText: currentValue.translatedName
0046                 textRole: "translatedName"
0047                 onCurrentIndexChanged: highlighter.theme = currentValue
0048             }
0049             Button {
0050                 text: "Light"
0051                 onClicked: highlighter.theme = Repository.defaultTheme(Repository.LightTheme).name
0052             }
0053             Button {
0054                 text: "Dark"
0055                 onClicked: highlighter.theme = Repository.DarkTheme
0056             }
0057         }
0058         ScrollView {
0059             Layout.fillHeight: true
0060             Layout.fillWidth: true
0061 
0062             TextArea {
0063                 id: myText
0064 
0065                 font.family: "monospace"
0066                 wrapMode: TextEdit.Wrap
0067                 text: `\
0068 Text {
0069     text: "Hello World!"
0070     width: 42
0071 }\
0072 `
0073                 Kirigami.SpellCheck.enabled: false
0074 
0075                 SyntaxHighlighter {
0076                     id: highlighter
0077                     textEdit: myText
0078                     repository: Repository
0079                 }
0080             }
0081         }
0082         Label {
0083             Layout.fillWidth: true
0084             Layout.margins: Kirigami.Units.smallSpacing
0085             Layout.topMargin: 0
0086             elide: Text.ElideRight
0087             text: `Syntax: ${highlighter.definition.translatedSection}/${highlighter.definition.translatedName}. Theme: ${highlighter.theme.translatedName}`
0088         }
0089     }
0090 
0091     Component.onCompleted: {
0092         highlighter.definition = Repository.definitionForFileName("example.qml")
0093     }
0094 }