Warning, /utilities/kongress/src/contents/ui/ScheduleView.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * SPDX-FileCopyrightText: 2020 Dimitris Kardarakos <dimkard@posteo.net>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 import QtQuick 2.7
0008 import QtQuick.Controls 2.4 as Controls2
0009 import QtQuick.Layouts 1.11
0010 import org.kde.kirigami 2.12 as Kirigami
0011 import org.kde.kongress 0.1 as Kongress
0012 
0013 Kirigami.ScrollablePage {
0014     id: root
0015 
0016     property date eventStartDt
0017     property var roCalendar
0018     property var rwCalendar
0019     property string category
0020 
0021     leftPadding: 0
0022     rightPadding: 0
0023 
0024     Kirigami.PlaceholderMessage {
0025         visible: !roCalendar.busyDownlading && (listView.count === 0)
0026         width: parent.width - (Kirigami.Units.largeSpacing * 4)
0027         anchors.centerIn: parent
0028         text: eventStartDt.toLocaleDateString() !== "" ? i18n("No talks found for %1", eventStartDt.toLocaleDateString(Qt.locale(), Locale.ShortFormat)) : i18n("No talks found")
0029     }
0030 
0031     Component {
0032         id: eventInfo
0033 
0034         EventInfo {
0035             rwCalendar: root.rwCalendar
0036             viewMode: "events"
0037         }
0038     }
0039 
0040     Controls2.BusyIndicator {
0041         anchors.centerIn: parent
0042 
0043         running: roCalendar.busyDownlading
0044         implicitWidth: Kirigami.Units.iconSizes.enormous
0045         implicitHeight: width
0046 
0047     }
0048 
0049     ListView {
0050         id: listView
0051 
0052         visible: !roCalendar.busyDownlading && (count > 0)
0053 
0054         model: eventsModel
0055         section {
0056             property: Kongress.SettingsController.displayInLocalTimezone ? "shiftedEventDtLocal" : "shiftedEventDt"
0057             criteria: ViewSection.FullString
0058             delegate: Kirigami.ListSectionHeader {
0059                 width: ListView.view.width
0060 
0061                 label: section
0062             }
0063         }
0064 
0065         delegate: Controls2.ItemDelegate {
0066             id: itemDelegate
0067 
0068             width: ListView.view.width
0069 
0070             action: Kirigami.Action {
0071                 text: i18n("Details")
0072                 icon.name: "documentinfo"
0073 
0074                 onTriggered: {
0075                     pageStack.pop(root);
0076                     pageStack.push(eventInfo, {event: model});
0077                 }
0078             }
0079 
0080             contentItem: RowLayout {
0081                 spacing: Kirigami.Units.largeSpacing * 2
0082                 width: parent.width
0083 
0084                 Controls2.Label {
0085                     property string timeFormat: model.allday ? "" : "hh:mm"
0086 
0087                     width: Kirigami.Units.gridUnit * 20
0088                     text: Kongress.SettingsController.displayInLocalTimezone ? model.shiftedStartEndTimeLocal : model.shiftedStartEndTime
0089                     Layout.minimumHeight: Kirigami.Units.gridUnit * 2
0090                 }
0091 
0092                 Controls2.Label {
0093                     visible: model.summary !== ""
0094                     elide: Text.ElideRight
0095                     text: model.summary
0096                     Layout.fillWidth: true
0097                     Layout.minimumHeight: Kirigami.Units.gridUnit * 2
0098                 }
0099             }
0100         }
0101     }
0102 
0103     Kongress.EventModel {
0104         id: eventsModel
0105 
0106         filterdt: root.eventStartDt
0107         calendar: root.roCalendar
0108         eventCategory: root.category
0109     }
0110 }