summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorR1tschY <r1tschy@posteo.de>2020-10-19 21:11:50 +0200
committerDavid Peter <sharkdp@users.noreply.github.com>2020-10-24 12:27:16 +0200
commit3729aefb6fb659d6eda9051016798542f7e3d5ac (patch)
tree208413f9d260942195c41c0a00f5a1bd09080238
parent8a2122b4a483a903fb286987e0f23d6e709882db (diff)
Add QML syntax test
-rw-r--r--tests/syntax-tests/highlighted/QML/BatSyntaxTest.qml219
-rw-r--r--tests/syntax-tests/source/QML/BatSyntaxTest.qml219
2 files changed, 438 insertions, 0 deletions
diff --git a/tests/syntax-tests/highlighted/QML/BatSyntaxTest.qml b/tests/syntax-tests/highlighted/QML/BatSyntaxTest.qml
new file mode 100644
index 00000000..1d1ada1d
--- /dev/null
+++ b/tests/syntax-tests/highlighted/QML/BatSyntaxTest.qml
@@ -0,0 +1,219 @@
+import QtQuick 2.0
+import "../components"
+
+Page {
+ id: page
+
+ // properties
+
+ property bool startup: true
+ readonly property var var1: null
+ readonly property QtObject var2: null
+
+ allowedOrientations: Orientation.All
+
+ /* components */
+
+ DBusServiceWatcher {
+ id: dbusService
+ service: "org.bat.service"
+
+ onRegisteredChanged: {
+ if (dbusService.registered) {
+ announcedNameField.text = daemon.announcedName()
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ console.debug("completed")
+ }
+
+ Flickable {
+ anchors.fill: parent
+ contentHeight: column.height
+ visible: dbusService.registered
+
+ ViewPlaceholder {
+ enabled: !startup
+ && trustedDevices.count == 0
+ && nearDevices.count == 0
+ text: qsTr("Install Bat.")
+ }
+
+ Column {
+ id: column
+
+ width: page.width
+ spacing: Theme.paddingLarge
+
+ PageHeader {
+ title: qsTr("Syntax Test")
+ }
+
+ TextField {
+ id: announcedNameField
+ width: parent.width
+ label: qsTr("Device Name")
+ text: dbusService.registered ? daemon.announcedName() : ""
+
+ onActiveFocusChanged: {
+ if (activeFocus)
+ return
+
+ if (text.length === 0) {
+ text = daemon.announcedName()
+ } else {
+ daemon.setAnnouncedName(text)
+ placeholderText = text
+ }
+ }
+
+ EnterKey.onClicked: announcedNameField.focus = false
+ EnterKey.iconSource: "image://theme/icon-m-enter-close"
+ }
+
+
+ Component {
+ id: deviceDelegate
+
+ ListItem {
+ id: listItem
+
+ property bool showStatus: deviceStatusLabel.text.length
+
+ width: page.width
+ height: Theme.itemSizeMedium
+
+ Image {
+ id: icon
+ source: iconUrl
+
+ x: Theme.horizontalPageMargin
+ anchors.verticalCenter: parent.verticalCenter
+ sourceSize.width: Theme.iconSizeMedium
+ sourceSize.height: Theme.iconSizeMedium
+ }
+
+ Label {
+ id: deviceNameLabel
+ anchors {
+ left: icon.right
+ leftMargin: Theme.paddingLarge
+ right: parent.right
+ rightMargin: Theme.horizontalPageMargin
+ }
+ y: listItem.contentHeight / 2 - implicitHeight / 2
+ - showStatus * (deviceStatusLabel.implicitHeight / 2)
+
+ text: name
+ color: listItem.highlighted
+ ? Theme.highlightColor
+ : Theme.primaryColor
+ truncationMode: TruncationMode.Fade
+ textFormat: Text.PlainText
+
+ Behavior on y { NumberAnimation {} }
+ }
+
+ Label {
+ id: deviceStatusLabel
+ anchors {
+ left: deviceNameLabel.left
+ top: deviceNameLabel.bottom
+ right: parent.right
+ rightMargin: Theme.horizontalPageMargin
+ }
+
+ text: (trusted && reachable)
+ ? qsTr("Connected")
+ : (hasPairingRequests || waitsForPairing
+ ? qsTr("Pending pairing request ...") : "")
+ color: listItem.highlighted
+ ? Theme.secondaryHighlightColor
+ : Theme.secondaryColor
+ truncationMode: TruncationMode.Fade
+ font.pixelSize: Theme.fontSizeExtraSmall
+ opacity: showStatus ? 1.0 : 0.0
+ width: parent.width
+ textFormat: Text.PlainText
+
+ Behavior on opacity { FadeAnimation {} }
+ }
+
+ onClicked: {
+ pageStack.push(
+ Qt.resolvedUrl("DevicePage.qml"),
+ { deviceId: id })
+ }
+ }
+ }
+
+ DeviceListModel {
+ id: devicelistModel
+ }
+
+ ColumnView {
+ id: devicesView
+ width: page.width
+ itemHeight: Theme.itemSizeMedium
+
+
+ model: trustedDevicesModel
+ delegate: deviceDelegate
+ visible: devicesView.count > 0
+ }
+ }
+
+ PullDownMenu {
+// MenuItem {
+// text: qsTr("About ...")
+// onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml"))
+// }
+
+ MenuItem {
+ text: qsTr("Settings ...")
+ onClicked: pageStack.push(Qt.resolvedUrl("SettingsPage.qml"))
+ }
+ }
+
+ VerticalScrollDecorator {}
+ }
+
+ /*
+ Connections {
+ target: ui
+ onOpeningDevicePage: openDevicePage(deviceId)
+ }*/
+
+ Timer {
+ interval: 1000
+ running: true
+ repeat: false
+ onTriggered: startup = false
+ }
+
+ function openDevicePage(deviceId) {
+ if (typeof pageStack === "undefined")
+ return;
+
+ console.log("opening device " + deviceId)
+
+ window.activate()
+
+ var devicePage = pageStack.find(function(page) {
+ return page.objectName === "DevicePage"
+ })
+ if (devicePage !== null && devicePage.deviceId === deviceId) {
+ pageStack.pop(devicePage)
+ ui.showMainWindow()
+ return
+ }
+
+ pageStack.pop(page, PageStackAction.Immediate)
+ pageStack.push(
+ Qt.resolvedUrl("DevicePage.qml"),
+ { deviceId: deviceId },
+ PageStackAction.Immediate)
+ }
+}
diff --git a/tests/syntax-tests/source/QML/BatSyntaxTest.qml b/tests/syntax-tests/source/QML/BatSyntaxTest.qml
new file mode 100644
index 00000000..175e48eb
--- /dev/null
+++ b/tests/syntax-tests/source/QML/BatSyntaxTest.qml
@@ -0,0 +1,219 @@
+import QtQuick 2.0
+import "../components"
+
+Page {
+ id: page
+
+ // properties
+
+ property bool startup: true
+ readonly property var var1: null
+ readonly property QtObject var2: null
+
+ allowedOrientations: Orientation.All
+
+ /* components */
+
+ DBusServiceWatcher {
+ id: dbusService
+ service: "org.bat.service"
+
+ onRegisteredChanged: {
+ if (dbusService.registered) {
+ announcedNameField.text = daemon.announcedName()
+ }
+ }
+ }
+
+ Component.onCompleted: {
+ console.debug("completed")
+ }
+
+ Flickable {
+ anchors.fill: parent
+ contentHeight: column.height
+ visible: dbusService.registered
+
+ ViewPlaceholder {
+ enabled: !startup
+ && trustedDevices.count == 0
+ && nearDevices.count == 0
+ text: qsTr("Install Bat.")
+ }
+
+ Column {
+ id: column
+
+ width: page.width
+ spacing: Theme.paddingLarge
+
+ PageHeader {
+ title: qsTr("Syntax Test")
+ }
+
+ TextField {
+ id: announcedNameField
+ width: parent.width
+ label: qsTr("Device Name")
+ text: dbusService.registered ? daemon.announcedName() : ""
+
+ onActiveFocusChanged: {
+ if (activeFocus)
+ return
+
+ if (text.length === 0) {
+ text = daemon.announcedName()
+ } else {
+ daemon.setAnnouncedName(text)
+ placeholderText = text
+ }
+ }
+
+ EnterKey.onClicked: announcedNameField.focus = false
+ EnterKey.iconSource: "image://theme/icon-m-enter-close"
+ }
+
+
+ Component {
+ id: deviceDelegate
+
+ ListItem {
+ id: listItem
+
+ property bool showStatus: deviceStatusLabel.text.length
+
+ width: page.width
+ height: Theme.itemSizeMedium
+
+ Image {
+ id: icon
+ source: iconUrl
+
+ x: Theme.horizontalPageMargin
+ anchors.verticalCenter: parent.verticalCenter
+ sourceSize.width: Theme.iconSizeMedium
+ sourceSize.height: Theme.iconSizeMedium
+ }
+
+ Label {
+ id: deviceNameLabel
+ anchors {
+ left: icon.right
+ leftMargin: Theme.paddingLarge
+ right: parent.right
+ rightMargin: Theme.horizontalPageMargin
+ }
+ y: listItem.contentHeight / 2 - implicitHeight / 2
+ - showStatus * (deviceStatusLabel.implicitHeight / 2)
+
+ text: name
+ color: listItem.highlighted
+ ? Theme.highlightColor
+ : Theme.primaryColor
+ truncationMode: TruncationMode.Fade
+ textFormat: Text.PlainText
+
+ Behavior on y { NumberAnimation {} }
+ }
+
+ Label {
+ id: deviceStatusLabel
+ anchors {
+ left: deviceNameLabel.left
+ top: deviceNameLabel.bottom
+ right: parent.right
+ rightMargin: Theme.horizontalPageMargin
+ }
+
+ text: (trusted && reachable)
+ ? qsTr("Connected")
+ : (hasPairingRequests || waitsForPairing
+ ? qsTr("Pending pairing request ...") : "")
+ color: listItem.highlighted
+ ? Theme.secondaryHighlightColor
+ : Theme.secondaryColor
+ truncationMode: TruncationMode.Fade
+ font.pixelSize: Theme.fontSizeExtraSmall
+ opacity: showStatus ? 1.0 : 0.0
+ width: parent.width
+ textFormat: Text.PlainText
+
+ Behavior on opacity { FadeAnimation {} }
+ }
+
+ onClicked: {
+ pageStack.push(
+ Qt.resolvedUrl("DevicePage.qml"),
+ { deviceId: id })
+ }
+ }
+ }
+
+ DeviceListModel {
+ id: devicelistModel
+ }
+
+ ColumnView {
+ id: devicesView
+ width: page.width
+ itemHeight: Theme.itemSizeMedium
+
+
+ model: trustedDevicesModel
+ delegate: deviceDelegate
+ visible: devicesView.count > 0
+ }
+ }
+
+ PullDownMenu {
+// MenuItem {
+// text: qsTr("About ...")
+// onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml"))
+// }
+
+ MenuItem {
+ text: qsTr("Settings ...")
+ onClicked: pageStack.push(Qt.resolvedUrl("SettingsPage.qml"))
+ }
+ }
+
+ VerticalScrollDecorator {}
+ }
+
+ /*
+ Connections {
+ target: ui
+ onOpeningDevicePage: openDevicePage(deviceId)
+ }*/
+
+ Timer {
+ interval: 1000
+ running: true
+ repeat: false
+ onTriggered: startup = false
+ }
+
+ function openDevicePage(deviceId) {
+ if (typeof pageStack === "undefined")
+ return;
+
+ console.log("opening device " + deviceId)
+
+ window.activate()
+
+ var devicePage = pageStack.find(function(page) {
+ return page.objectName === "DevicePage"
+ })
+ if (devicePage !== null && devicePage.deviceId === deviceId) {
+ pageStack.pop(devicePage)
+ ui.showMainWindow()
+ return
+ }
+
+ pageStack.pop(page, PageStackAction.Immediate)
+ pageStack.push(
+ Qt.resolvedUrl("DevicePage.qml"),
+ { deviceId: deviceId },
+ PageStackAction.Immediate)
+ }
+}