196 lines
6.9 KiB
QML
196 lines
6.9 KiB
QML
import QtQuick 2.5
|
|
import QtQuick.Controls 2.1
|
|
import QtQuick.Controls.Material 2.1
|
|
import QtQuick.Layouts 1.1
|
|
import Nymea 1.0
|
|
import "../components"
|
|
|
|
Page {
|
|
id: root
|
|
header: GuhHeader {
|
|
text: qsTr("About %1").arg(app.appName)
|
|
backButtonVisible: true
|
|
onBackPressed: pageStack.pop()
|
|
}
|
|
|
|
Flickable {
|
|
anchors.fill: parent
|
|
contentHeight: aboutColumn.implicitHeight
|
|
|
|
ColumnLayout {
|
|
id: aboutColumn
|
|
width: parent.width
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
Layout.margins: app.margins
|
|
spacing: app.margins
|
|
|
|
Image {
|
|
id: logo
|
|
Layout.preferredHeight: app.iconSize * 2
|
|
Layout.preferredWidth: height
|
|
fillMode: Image.PreserveAspectFit
|
|
source: "qrc:/styles/%1/logo.svg".arg(styleController.currentStyle)
|
|
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
property int clickCounter: 0
|
|
onClicked: {
|
|
clickCounter++;
|
|
if (clickCounter >= 10) {
|
|
settings.showHiddenOptions = !settings.showHiddenOptions
|
|
var dialog = Qt.createComponent(Qt.resolvedUrl("../components/MeaDialog.qml"));
|
|
var text = settings.showHiddenOptions
|
|
? qsTr("Developer options are now enabled. If you have found this by accident, it is most likely not of any use for you. It will just enable some nerdy developer gibberish in the app. Tap the icon another 10 times to disable it again.")
|
|
: qsTr("Developer options are now disabled.")
|
|
var popup = dialog.createObject(app, {headerIcon: "../images/dialog-warning-symbolic.svg", title: qsTr("Howdy cowboy!"), text: text})
|
|
popup.open();
|
|
clickCounter = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
GridLayout {
|
|
Layout.fillWidth: true
|
|
columns: 2
|
|
|
|
Label {
|
|
text: qsTr("App version:")
|
|
}
|
|
Label {
|
|
text: appVersion
|
|
}
|
|
Label {
|
|
text: qsTr("Qt version:")
|
|
}
|
|
Label {
|
|
text: qtVersion
|
|
}
|
|
}
|
|
}
|
|
|
|
ThinDivider {}
|
|
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.topMargin: app.margins
|
|
Layout.leftMargin: app.margins
|
|
Layout.rightMargin: app.margins
|
|
wrapMode: Text.WordWrap
|
|
font.bold: true
|
|
text: "Copyright (C) 2018 guh GmbH"
|
|
}
|
|
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: app.margins
|
|
Layout.rightMargin: app.margins
|
|
wrapMode: Text.WordWrap
|
|
text: qsTr("nymea is a registered trademark of guh GmbH.")
|
|
}
|
|
|
|
Label {
|
|
Layout.fillWidth: true
|
|
Layout.leftMargin: app.margins
|
|
Layout.rightMargin: app.margins
|
|
wrapMode: Text.WordWrap
|
|
text: qsTr("Licensed under the terms of the GNU general public license, version 2. Please visit the GitHub page for source code and build instructions.")
|
|
}
|
|
|
|
ColumnLayout {
|
|
Layout.fillWidth: true
|
|
|
|
MeaListItemDelegate {
|
|
Layout.fillWidth: true
|
|
text: qsTr("Visit the nymea website")
|
|
onClicked: {
|
|
Qt.openUrlExternally("https://nymea.io")
|
|
}
|
|
}
|
|
|
|
MeaListItemDelegate {
|
|
Layout.fillWidth: true
|
|
text: qsTr("Visit GitHub page")
|
|
onClicked: {
|
|
Qt.openUrlExternally("https://github.com/guh/nymea-app")
|
|
}
|
|
}
|
|
|
|
MeaListItemDelegate {
|
|
Layout.fillWidth: true
|
|
text: qsTr("View license text")
|
|
onClicked: {
|
|
pageStack.push(licenseTextComponent)
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
ThinDivider { }
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
Layout.margins: app.margins
|
|
spacing: app.margins
|
|
|
|
Image {
|
|
Layout.preferredHeight: app.iconSize * 2
|
|
Layout.preferredWidth: height
|
|
fillMode: Image.PreserveAspectFit
|
|
source: "qrc:/ui/images/Built_with_Qt_RGB_logo_vertical.svg"
|
|
sourceSize.width: app.iconSize * 2
|
|
sourceSize.height: app.iconSize * 2
|
|
}
|
|
|
|
Label {
|
|
Layout.fillWidth: true
|
|
text: qsTr("Qt is a registered trademark of The Qt Company Ltd. and its subsidiaries.")
|
|
wrapMode: Text.WordWrap
|
|
}
|
|
}
|
|
MeaListItemDelegate {
|
|
Layout.fillWidth: true
|
|
text: qsTr("Visit the Qt website")
|
|
onClicked: {
|
|
Qt.openUrlExternally("https://www.qt.io")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
Component {
|
|
id: licenseTextComponent
|
|
Page {
|
|
header: GuhHeader {
|
|
text: qsTr("License text")
|
|
onBackPressed: pageStack.pop()
|
|
}
|
|
Flickable {
|
|
anchors.fill: parent
|
|
contentHeight: licenseText.implicitHeight
|
|
clip: true
|
|
ScrollBar.vertical: ScrollBar {}
|
|
TextArea {
|
|
id: licenseText
|
|
wrapMode: Text.WordWrap
|
|
font.pixelSize: app.smallFont
|
|
anchors { left: parent.left; right: parent.right; margins: app.margins }
|
|
Component.onCompleted: {
|
|
var xhr = new XMLHttpRequest;
|
|
xhr.open("GET", "../../LICENSE");
|
|
xhr.onreadystatechange = function() {
|
|
if (xhr.readyState === XMLHttpRequest.DONE) {
|
|
text = xhr.responseText.replace(/(^\ *)/gm, "").replace(/(\n\n)/gm,"\t").replace(/(\n)/gm, " ").replace(/(\t)/gm, "\n\n");
|
|
}
|
|
};
|
|
xhr.send();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|