Warning, /utilities/kweather/src/qml/ForecastContainerPage.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * SPDX-FileCopyrightText: 2020 Han Young <hanyoung@protonmail.com>
0003 * SPDX-FileCopyrightText: 2020-2021 Devin Lin <espidev@gmail.com>
0004 *
0005 * SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007
0008 import QtQuick
0009 import QtQuick.Controls
0010 import QtQuick.Layouts
0011
0012 import org.kde.kirigami as Kirigami
0013
0014 import org.kde.kweather
0015
0016 Kirigami.Page {
0017 id: page
0018 topPadding: 0; bottomPadding: 0; rightPadding: 0; leftPadding: 0
0019
0020 title: {
0021 if (WeatherLocationListModel.locations.count == 0) {
0022 return i18n("Forecast");
0023 } else if (settingsModel.forecastStyle === "Dynamic") {
0024 return ""; // provided by DynamicForecastPage
0025 } else if (WeatherLocationListModel.locations[loader.item.currentIndex]) {
0026 return WeatherLocationListModel.locations[loader.item.currentIndex].name;
0027 } else {
0028 return "";
0029 }
0030 }
0031
0032 globalToolBarStyle: (settingsModel.forecastStyle === "Dynamic" && pageStack.layers.depth <= 1) ? Kirigami.ApplicationHeaderStyle.None : Kirigami.ApplicationHeaderStyle.ToolBar
0033
0034 property real yTranslate: 0
0035
0036 function switchPageIndex(pageIndex) {
0037 loader.item.currentIndex = pageIndex;
0038 }
0039
0040 // actions (only shown in flat view since the toolbar is hidden in dynamic view)
0041 actions: [
0042 Kirigami.Action {
0043 icon.name: "find-location"
0044 text: i18n("Locations")
0045 onTriggered: applicationWindow().openLocationsList()
0046 },
0047 Kirigami.Action {
0048 icon.name: "settings-configure"
0049 text: i18n("Settings")
0050 displayHint: Kirigami.Action.IconOnly
0051 onTriggered: applicationWindow().openSettings()
0052 },
0053 Kirigami.Action {
0054 visible: !Kirigami.Settings.isMobile
0055 icon.name: "view-refresh"
0056 text: i18n("Refresh")
0057 displayHint: Kirigami.Action.IconOnly
0058 onTriggered: WeatherLocationListModel.locations[loader.item.currentIndex].update()
0059 }
0060 ]
0061
0062 Loader {
0063 id: loader
0064 transform: Translate { y: yTranslate }
0065 anchors.fill: parent
0066
0067 Component.onCompleted: loadStyle()
0068 function loadStyle() {
0069 setSource(settingsModel.forecastStyle === "Dynamic" ? "DynamicForecastPage.qml" : "FlatForecastPage.qml");
0070 }
0071
0072 Connections {
0073 target: settingsModel
0074 function onForecastStyleChanged() {
0075 loader.loadStyle();
0076 }
0077 }
0078 }
0079 }
0080
0081