// 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 QtQuick.Effects import Thermostat Pane { id: root property alias title: title.text property alias leftIcon: icon.source property alias rightIcon: icon2.source property alias topLabel: topLabel.text property alias bottomLeftIcon: bottomLeftIcon.source property alias bottomRightIcon: bottomRightIcon.source property alias bottomLeftLabel: bottomLeftLabel.text property alias bottomRightLabel: bottomRightLabel.text topPadding: 20 leftPadding: 16 rightPadding: 16 bottomPadding: 14 width: 350 height: 182 background: Rectangle { radius: 12 color: Constants.accentColor border.color: Constants.isSmallLayout ? "#D9D9D9" : "transparent" } Column { anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top spacing: internal.columnSpacing RowLayout { anchors.left: parent.left anchors.right: parent.right spacing: internal.rowSpacing Item { id: iconItem Layout.preferredWidth: icon.sourceSize.width Layout.preferredHeight: icon.sourceSize.height Image { id: icon source: "images/schedule.svg" } MultiEffect { anchors.fill: icon source: icon colorization: 1 colorizationColor: Constants.iconColor } } Label { id: title text: qsTr("Room Schedule") font.weight: 600 font.pixelSize: 24 font.family: "Titillium Web" color: Constants.primaryTextColor Layout.fillWidth: true } Image { id: icon2 } } Column { leftPadding: internal.infoLeftPadding spacing: internal.infoSpacing width: parent.width Label { id: topLabel text: qsTr("Afternoon: 21°C (12pm-5pm)") font.pixelSize: internal.infoFontSize font.bold: true font.family: "Titillium Web" color: Constants.primaryTextColor } RowLayout { spacing: 32 Row { spacing: 10 Image { id: bottomLeftIcon } Label { id: bottomLeftLabel text: qsTr("Night: 25°C (10pm-6am)") font.pixelSize: internal.infoFontSize font.weight: 600 font.family: "Titillium Web" color: Constants.primaryTextColor } } Row { spacing: 10 Image { id: bottomRightIcon } Label { id: bottomRightLabel font.pixelSize: internal.infoFontSize font.weight: 600 font.family: "Titillium Web" color: Constants.primaryTextColor } } } } } QtObject { id: internal property int rowSpacing: 24 property int columnSpacing: 24 property int infoSpacing: 8 property int infoFontSize: 14 property int infoLeftPadding: 14 } states: [ State { name: "desktopLayout" when: Constants.isBigDesktopLayout || Constants.isSmallDesktopLayout PropertyChanges { target: internal rowSpacing: 24 columnSpacing: 16 infoSpacing: 16 infoFontSize: 14 infoLeftPadding: 0 } PropertyChanges { target: icon sourceSize.width: 34 sourceSize.height: 34 } PropertyChanges { target: icon2 sourceSize.width: 20 sourceSize.height: 20 } PropertyChanges { target: title font.pixelSize: 24 } PropertyChanges { target: root topPadding: 20 leftPadding: 16 rightPadding: 16 bottomPadding: 14 } }, State { name: "mobileLayout" when: Constants.isMobileLayout PropertyChanges { target: internal rowSpacing: 9 columnSpacing: 11 infoSpacing: 5 infoFontSize: 12 infoLeftPadding: 10 } PropertyChanges { target: icon sourceSize.width: 20 sourceSize.height: 20 } PropertyChanges { target: icon2 sourceSize.width: 15 sourceSize.height: 15 } PropertyChanges { target: title font.pixelSize: 14 } PropertyChanges { target: root topPadding: 10 leftPadding: 7 rightPadding: 16 bottomPadding: 8 } }, State { name: "smallLayout" when: Constants.isSmallLayout PropertyChanges { target: internal rowSpacing: 5 infoFontSize: 12 columnSpacing: 3 infoSpacing: 4 infoLeftPadding: 13 } PropertyChanges { target: icon sourceSize.width: 15 sourceSize.height: 15 } PropertyChanges { target: icon2 sourceSize.width: 15 sourceSize.height: 15 } PropertyChanges { target: title font.pixelSize: 14 } PropertyChanges { target: root topPadding: 4 leftPadding: 5 rightPadding: 10 bottomPadding: 14 } } ] }