/*
    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 : Math.min(headerBadge.height * 2, width * 0.27)

        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"), function(){
                    mainStack.push("qrc:/Pages/QrCodeScanPage.qml")
                }],
            ]

            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
        //% "privacy policy"
        title: "blueROCK v" + APP_VERSION + "<br>By <a href=\"https://itsblue.de\">Itsblue Development</a>, <a href=\"https://itsblue.de/apps/bluerock/privacypolicy.html\">" + qsTrId("#privacyPolicy") + "</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/blueROCK/app'>here</a>.<br><br>Resultservice and rankings provided by <a href='http://www.digitalROCK.de'>digital ROCK</a>."
        content: qsTrId("#aboutBluerockDisclaimer")
    }
}
