2019-05-11 15:21:43 +02:00
/ *
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/>.
* /
2021-06-05 21:18:21 +02:00
import QtQuick 2.9
2019-04-20 22:57:40 +02:00
import QtQuick . Controls 2.4
2021-06-05 21:18:21 +02:00
import QtQuick . Layouts 1.0
2021-06-08 19:23:55 +02:00
import QtQuick . Controls . Material 2.12
2019-04-20 22:57:40 +02:00
import "../Components"
Page {
id: root
title: "start"
2019-05-23 23:17:27 +02:00
2021-06-05 21:18:21 +02:00
signal headerComponentChanged ( )
2021-06-06 18:34:27 +02:00
BlueRockBadge {
id: headerBadge
2019-05-23 23:17:27 +02:00
anchors {
horizontalCenter: parent . horizontalCenter
top: parent . top
topMargin: root . height * 0.03
}
2021-06-05 21:18:21 +02:00
height: menuGr . buttonSize * 0.3
2019-05-23 23:17:27 +02:00
}
2019-04-20 22:57:40 +02:00
2021-06-17 13:50:18 +02:00
GridLayout {
2019-04-20 22:57:40 +02:00
id: menuGr
2021-06-17 13:50:18 +02:00
anchors {
top: headerBadge . bottom
bottom: bottomDigitalrockDisclaimerLabel . top
left: parent . left
right: parent . right
margins: headerBadge . anchors . topMargin
}
2019-04-20 22:57:40 +02:00
2021-06-17 13:50:18 +02:00
rows: app . landscape ( ) ? 1 : 5
columns: app . landscape ( ) ? 5 : 1
2019-04-20 22:57:40 +02:00
2021-06-17 13:50:18 +02:00
rowSpacing: app . landscape ( ) ? parent . width * 0.1 : headerBadge . anchors . topMargin
columnSpacing: rowSpacing
2019-04-20 22:57:40 +02:00
2021-06-17 13:50:18 +02:00
property int buttonSize: app . landscape ( ) ? parent . width * 0.2 : parent . height * 0.19
Item {
Layout.fillHeight: true
Layout.preferredWidth: 0
}
2019-04-20 22:57:40 +02:00
FancyButton {
id: davBt
2021-06-17 13:50:18 +02:00
Layout.preferredHeight: menuGr . buttonSize
Layout.preferredWidth: menuGr . buttonSize
Layout.alignment: Layout . Center
2019-04-20 22:57:40 +02:00
2021-06-08 19:23:55 +02:00
image: Material . theme === Material . Dark ? "qrc:/icons/dav-dark.png" : "qrc:/icons/dav.png"
2019-04-20 22:57:40 +02:00
onClicked: {
2019-05-24 14:15:07 +02:00
app . openWidget ( { nation: "GER" } )
2019-04-20 22:57:40 +02:00
}
}
FancyButton {
id: sacBt
2021-06-17 13:50:18 +02:00
Layout.preferredHeight: menuGr . buttonSize
Layout.preferredWidth: menuGr . buttonSize
Layout.alignment: Layout . Center
2019-04-20 22:57:40 +02:00
2021-06-08 19:23:55 +02:00
image: Material . theme === Material . Dark ? "qrc:/icons/sac-dark.png" : "qrc:/icons/sac.png"
2019-04-20 22:57:40 +02:00
onClicked: {
2019-05-24 14:15:07 +02:00
app . openWidget ( { nation: "SUI" } )
2019-04-20 22:57:40 +02:00
}
}
2021-06-17 13:50:18 +02:00
Item {
Layout.fillHeight: true
visible: ! app . landscape ( )
2021-06-05 21:18:21 +02:00
}
2021-06-17 13:50:18 +02:00
GridLayout {
Layout.preferredHeight: app . landscape ( ) ? menuGr.buttonSize : menuGr . buttonSize / 2
Layout.maximumWidth: app . landscape ( ) ? menuGr.buttonSize : menuGr . buttonSize * 2
Layout.alignment: Layout . Center
2021-06-06 21:53:41 +02:00
2021-06-17 13:50:18 +02:00
columns: app . landscape ( ) ? 1 : 2
rows: app . landscape ( ) ? 4 : 2
2021-06-06 21:53:41 +02:00
2021-06-17 13:50:18 +02:00
Repeater {
id: buttonRepeater
property var buttons: [
[ "\uf059 IFSC results" , ifscDisclaimerDialog . open ] ,
[ "\uf029 Scan QR code" , null ] ,
[ Material . theme === Material . Light ? "\uf042 Dark mode" : "\uf042 Light mode" , app . toggleDarkMode ] ,
[ "\uf05a About blueROCK" , aboutBluerockDisclaimerDialog . open ]
]
2021-06-06 21:53:41 +02:00
2021-06-17 13:50:18 +02:00
model: buttons
delegate: Button {
Layout.fillWidth: true
2021-06-06 21:53:41 +02:00
2021-06-17 13:50:18 +02:00
flat: true
2021-06-06 21:53:41 +02:00
2021-06-17 13:50:18 +02:00
font.family: fa5solid . name
font.pixelSize: height * 0.4
font.capitalization: Font . MixedCase
2021-06-06 21:53:41 +02:00
2021-06-17 13:50:18 +02:00
text: modelData [ 0 ]
2021-06-05 21:18:21 +02:00
2021-06-17 13:50:18 +02:00
onClicked: buttonRepeater . buttons [ index ] [ 1 ] ( )
}
}
2021-06-06 21:53:41 +02:00
}
2021-06-05 21:18:21 +02:00
}
2019-05-23 23:17:27 +02:00
Label {
2021-06-05 21:18:21 +02:00
id: bottomDigitalrockDisclaimerLabel
2019-05-23 23:17:27 +02:00
anchors {
horizontalCenter: parent . horizontalCenter
bottom: parent . bottom
2021-06-06 18:34:27 +02:00
bottomMargin: headerBadge . anchors . topMargin
2019-05-23 23:17:27 +02:00
}
width: parent . width * 0.9
height: anchors . bottomMargin
2021-06-05 21:18:21 +02:00
fontSizeMode: Label . Fit
minimumPixelSize: 1
2019-05-23 23:17:27 +02:00
horizontalAlignment: Text . AlignHCenter
2019-05-24 14:57:09 +02:00
text: "Resultservice and rankings provided by <a href='http://www.digitalROCK.de'>digital ROCK</a>."
2019-05-23 23:17:27 +02:00
onLinkActivated: {
Qt . openUrlExternally ( link )
}
}
2021-06-05 21:18:21 +02:00
2021-06-06 21:53:41 +02:00
DisclaimerDialog {
id: ifscDisclaimerDialog
2021-06-08 19:23:55 +02:00
Material.theme: root . Material . theme
2021-06-05 21:18:21 +02:00
title: "Where are the IFSC results?"
2021-06-06 21:53:41 +02:00
content: "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>."
}
2021-06-06 18:34:27 +02:00
2021-06-06 21:53:41 +02:00
DisclaimerDialog {
id: aboutBluerockDisclaimerDialog
2021-06-08 19:23:55 +02:00
Material.theme: root . Material . theme
2021-06-06 21:53:41 +02:00
title: "blueROCK v" + APP_VERSION + "<br>By <a href=\"https://itsblue.de\">Itsblue Development</a>"
content: "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>" +
2021-06-05 21:18:21 +02:00
2021-06-06 21:53:41 +02:00
"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>."
2021-06-05 21:18:21 +02:00
}
2019-04-20 22:57:40 +02:00
}