// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause


/*
This is a UI file (.ui.qml) that is intended to be edited in Qt Design Studio only.
It is supposed to be strictly declarative and only uses a subset of QML. If you edit
this file manually, you might introduce QML code that is not supported by Qt Design Studio.
Check out https://doc.qt.io/qtcreator/creator-quick-ui-forms.html for details on .ui.qml files.
*/
import QtQuick
import QtQuick.Controls.Basic
import QtQuick.Layouts
import Thermostat
import ThermostatCustomControls

Pane {
    id: root

    width: 1087
    height: 361

    topPadding: internal.topPadding

    background: Rectangle {
        color: Constants.accentColor
        radius: 12
    }

    required property var scheduleViewRoot

    RowLayout {
        width: parent.width
        Label {
            font.pixelSize: internal.fontSize
            font.weight: 600
            font.family: "Titillium Web"
            text: qsTr("Set Time :")
            Layout.fillWidth: true
            color: Constants.primaryTextColor
        }

        CustomRoundButton {
            id: calendarButton

            Layout.preferredWidth: 134
            Layout.preferredHeight: 40

            Layout.rightMargin: internal.buttonMargin

            text: root.scheduleViewRoot.currentDate
            icon.source: "images/schedule.svg"
            icon.width: 20
            icon.height: 20
            font.pixelSize: 14
            display: AbstractButton.TextBesideIcon

            radius: 8
            checkable: false
            Connections {
                function onClicked() {
                    calendar.visible = !calendar.visible
                }
            }
        }
    }

    TimeSelector {
        id: timeSelector
        scheduleViewRoot: root.scheduleViewRoot
        anchors.top: parent.top
        anchors.topMargin: internal.topMargin
        anchors.horizontalCenter: parent.horizontalCenter
    }

    Label {
        anchors.top: timeSelector.bottom
        anchors.left: timeSelector.left
        anchors.topMargin: internal.labelMargin
        color: Constants.accentTextColor
        text: qsTr("Click on a block to set the whole hour")
        font.pixelSize: 14
        font.weight: 400
        font.family: "Titillium Web"
    }

    CalendarControl {
        id: calendar
        visible: false
        Connections {
            target: calendar
            function onSelectedDateChanged() {
                root.scheduleViewRoot.currentDate
                        = calendar.selectedDate.toLocaleDateString(Qt.locale(), Locale.ShortFormat)
            }
        }
    }

    QtObject {
        id: internal
        property int fontSize: 24
        property int topMargin: 67
        property int topPadding: 20
        property int labelMargin: 12
        property int buttonMargin: 20
    }

    states: [
        State {
            name: "desktopLayout"
            when: Constants.isBigDesktopLayout || Constants.isSmallDesktopLayout
            PropertyChanges {
                target: internal
                topMargin: 67
                topPadding: 20
                fontSize: 24
                labelMargin: 12
                buttonMargin: 20
            }
        },
        State {
            name: "mobileLayout"
            when: Constants.isMobileLayout
            PropertyChanges {
                target: internal
                topMargin: 85
                topPadding: 16
                fontSize: 18
                labelMargin: 12
                buttonMargin: 0
            }
        },
        State {
            name: "smallLayout"
            when: Constants.isSmallLayout
            PropertyChanges {
                target: internal
                topMargin: 54
                topPadding: 10
                fontSize: 14
                labelMargin: -12
                buttonMargin: 0
            }
        }
    ]
}
