181 lines
6.2 KiB
QML
181 lines
6.2 KiB
QML
/*
|
|
blueROCK - for digital rock
|
|
Copyright (C) 2019 Dorian Zedler
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
import QtQuick 2.9
|
|
import QtQuick.Controls 2.4
|
|
import QtQuick.Layouts 1.0
|
|
import QtQuick.Controls.Material 2.12
|
|
|
|
import "../Components"
|
|
|
|
Page {
|
|
id: root
|
|
|
|
title: "start"
|
|
|
|
signal headerComponentChanged()
|
|
|
|
BlueRockBadge {
|
|
id: headerBadge
|
|
anchors {
|
|
horizontalCenter: parent.horizontalCenter
|
|
top: parent.top
|
|
topMargin: root.height * 0.03
|
|
}
|
|
|
|
height: app.landscape() ? menuGr.buttonSize * 0.2:menuGr.buttonSize * 0.3
|
|
}
|
|
|
|
GridLayout {
|
|
id: menuGr
|
|
|
|
anchors.centerIn: parent
|
|
|
|
rows: app.landscape() ? 1:2
|
|
columns: app.landscape() ? 2:1
|
|
|
|
rowSpacing: app.landscape() ? parent.width * 0.1:headerBadge.anchors.topMargin
|
|
columnSpacing: rowSpacing
|
|
|
|
property int buttonSize: app.landscape() ? parent.width * 0.2:parent.height * 0.19
|
|
|
|
FancyButton {
|
|
id: davBt
|
|
|
|
Layout.preferredHeight: menuGr.buttonSize
|
|
Layout.preferredWidth: menuGr.buttonSize
|
|
Layout.alignment: Layout.Center
|
|
|
|
image: Material.theme === Material.Dark ? "qrc:/icons/dav-dark.png":"qrc:/icons/dav.png"
|
|
|
|
onClicked: {
|
|
app.openWidget({nation:"GER"})
|
|
}
|
|
|
|
}
|
|
|
|
FancyButton {
|
|
id: sacBt
|
|
|
|
Layout.preferredHeight: menuGr.buttonSize
|
|
Layout.preferredWidth: menuGr.buttonSize
|
|
Layout.alignment: Layout.Center
|
|
|
|
image: Material.theme === Material.Dark ? "qrc:/icons/sac-dark.png":"qrc:/icons/sac.png"
|
|
|
|
onClicked: {
|
|
app.openWidget({nation:"SUI"})
|
|
}
|
|
}
|
|
}
|
|
|
|
Grid {
|
|
id: footerMenu
|
|
|
|
anchors {
|
|
bottom: parent.bottom
|
|
margins: headerBadge.anchors.topMargin
|
|
horizontalCenter: parent.horizontalCenter
|
|
}
|
|
|
|
width: app.landscape() ? childrenRect.width : parent.width * 0.8
|
|
height: app.landscape() ? headerBadge.height : headerBadge.height * 2
|
|
|
|
columnSpacing: height * 0.1
|
|
|
|
columns: app.landscape() ? 4:2
|
|
rows: app.landscape() ? 1:2
|
|
|
|
Repeater {
|
|
id: buttonRepeater
|
|
property var buttons: [
|
|
//% "IFSC results"
|
|
["\uf059", qsTrId("#ifscResults"), ifscDisclaimerDialog.open],
|
|
[
|
|
"\uf042",
|
|
Material.theme === Material.Light ?
|
|
//% "Dark mode"
|
|
qsTrId("#darkMode"):
|
|
//% "Light mode"
|
|
qsTrId("#lightMode"),
|
|
app.toggleDarkMode
|
|
],
|
|
//% "About blueROCK"
|
|
["\uf05a", qsTrId("#aboutBluerock"), aboutBluerockDisclaimerDialog.open],
|
|
["\uf029", qsTrId("#scanQrCode"), qrCodeScanPopup.open],
|
|
]
|
|
|
|
model: buttons
|
|
|
|
delegate: Item {
|
|
|
|
width: app.landscape() ? footerMenuButton.implicitWidth : footerMenu.width * 0.5 - (footerMenu.columnSpacing / 2)
|
|
height: app.landscape() ? footerMenu.height : footerMenu.height * 0.5 - (footerMenu.rowSpacing / 2)
|
|
|
|
Button {
|
|
id: footerMenuButton
|
|
|
|
property bool isLeft: index % 2 === 0
|
|
|
|
anchors {
|
|
right: isLeft && !app.landscape() ? parent.right : undefined
|
|
left: isLeft && !app.landscape() ? undefined : parent.left
|
|
centerIn: app.landscape() ? parent : undefined
|
|
}
|
|
|
|
height: parent.height
|
|
|
|
flat: true
|
|
|
|
font.family: fa5solid.name
|
|
font.pixelSize: height * 0.4
|
|
font.capitalization: Font.MixedCase
|
|
//horizontalAlignment: isLeft ? Text.AlignRight : Text.AlignLeft
|
|
|
|
text: isLeft && !app.landscape() ? modelData[1] + " " + modelData[0] : modelData[0] + " " + modelData[1]
|
|
|
|
onClicked: buttonRepeater.buttons[index][2]()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
DisclaimerDialog {
|
|
id: ifscDisclaimerDialog
|
|
Material.theme: root.Material.theme
|
|
//% "Where are the IFSC results?"
|
|
title: qsTrId("#ifscDisclaimerTitle")
|
|
//% "Unfortunately, the IFSC has restricted the access to their data and <b>is not willing to share results with blueROCK anymore</b>. Because of this, blueROCK is no longer able to access and display IFSC results.<br><br>You can find current IFSC results <a href=\"https://ifsc.results.info\">over here</a> and on <a href=\"https://ifsc-climbing.org\">their website</a>."
|
|
content: qsTrId("#ifscDisclaimer")
|
|
}
|
|
|
|
DisclaimerDialog {
|
|
id: aboutBluerockDisclaimerDialog
|
|
Material.theme: root.Material.theme
|
|
title: "blueROCK v" + APP_VERSION + "<br>By <a href=\"https://itsblue.de\">Itsblue Development</a>"
|
|
//% "This app was built using the <a href='https://qt.io'>Qt Framework</a> licensed under the <a href='https://www.gnu.org/licenses/lgpl-3.0.en.html'>GNU lgplV3 license</a>.<br><br>This app is open source and licensed under the <a href='https://www.gnu.org/licenses/agpl-3.0.en.html'>GNU agplV3 license</a>, the source code can be found <a href='https://itsblue.dev/dorian/blueROCK/'>here</a>.<br><br>Resultservice and rankings provided by <a href='http://www.digitalROCK.de'>digital ROCK</a>."
|
|
content: qsTrId("#aboutBluerockDisclaimer")
|
|
}
|
|
|
|
QrCodeScanPopup {
|
|
id: qrCodeScanPopup
|
|
Material.theme: root.Material.theme
|
|
}
|
|
|
|
}
|