Warning, /utilities/vail/src/ui/main.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2022 Felipe Kinoshita <kinofhek@gmail.com> 0002 // SPDX-License-Identifier: GPL-3.0-or-later 0003 0004 import QtQuick 2.15 0005 import QtQuick.Controls 2.15 as QQC2 0006 import QtQuick.Layouts 1.15 0007 import org.kde.kirigami 2.19 as Kirigami 0008 0009 import org.kde.vail 1.0 0010 0011 Kirigami.ApplicationWindow { 0012 id: root 0013 0014 title: i18n("Vail") 0015 0016 width: Kirigami.Units.gridUnit * 34 0017 height: Kirigami.Units.gridUnit * 21 0018 minimumWidth: Kirigami.Units.gridUnit * 20 0019 minimumHeight: Kirigami.Units.gridUnit * 20 0020 0021 Timer { 0022 id: saveWindowGeometryTimer 0023 interval: 1000 0024 onTriggered: App.saveWindowGeometry(root) 0025 } 0026 0027 Connections { 0028 id: saveWindowGeometryConnections 0029 enabled: false // Disable on startup to avoid writing wrong values if the window is hidden 0030 target: root 0031 0032 function onClosing() { App.saveWindowGeometry(root); } 0033 function onWidthChanged() { saveWindowGeometryTimer.restart(); } 0034 function onHeightChanged() { saveWindowGeometryTimer.restart(); } 0035 function onXChanged() { saveWindowGeometryTimer.restart(); } 0036 function onYChanged() { saveWindowGeometryTimer.restart(); } 0037 } 0038 0039 Loader { 0040 active: !Kirigami.Settings.isMobile 0041 sourceComponent: GlobalMenu {} 0042 } 0043 0044 pageStack.initialPage: Kirigami.Page { 0045 id: page 0046 0047 padding: Kirigami.Units.gridUnit 0048 titleDelegate: PageHeader {} 0049 0050 ColumnLayout { 0051 anchors.fill: parent 0052 0053 Kirigami.Heading { 0054 text: i18n("Message:") 0055 type: Kirigami.Heading.Primary 0056 } 0057 0058 QQC2.ScrollView { 0059 Layout.fillWidth: true 0060 Layout.fillHeight: true 0061 0062 QQC2.TextArea { 0063 id: messageTextarea 0064 0065 focus: !Kirigami.InputMethod.willShowOnActive 0066 0067 wrapMode: Text.Wrap 0068 0069 onTextChanged: { 0070 Translator.translate(text) 0071 } 0072 } 0073 } 0074 0075 Item { 0076 Layout.preferredHeight: Kirigami.Units.largeSpacing 0077 } 0078 0079 Kirigami.Heading { 0080 text: i18n("Morse Code:") 0081 type: Kirigami.Heading.Primary 0082 } 0083 0084 QQC2.ScrollView { 0085 Layout.fillWidth: true 0086 Layout.fillHeight: true 0087 0088 QQC2.TextArea { 0089 id: morseTextarea 0090 0091 Layout.fillWidth: true 0092 Layout.fillHeight: true 0093 0094 readOnly: true 0095 wrapMode: Text.Wrap 0096 0097 Connections { 0098 target: Translator 0099 0100 function onTranslation(translation) { 0101 morseTextarea.text = translation 0102 } 0103 } 0104 } 0105 } 0106 } 0107 } 0108 0109 Component.onCompleted: { 0110 if (!Kirigami.Settings.isMobile) { 0111 saveWindowGeometryConnections.enabled = true 0112 } 0113 } 0114 }