From 6220a14fa325aa5141adc78898f0063a72881972 Mon Sep 17 00:00:00 2001 From: Michael Bohlender Date: Thu, 1 Mar 2018 15:06:41 +0100 Subject: initial calendar - week view --- views/calendar/qml/DaylongEvents.qml | 16 ++++ views/calendar/qml/View.qml | 141 +++++++++++++++++++++++++++++++++++ views/calendar/qml/WeekEvents.qml | 65 ++++++++++++++++ 3 files changed, 222 insertions(+) create mode 100644 views/calendar/qml/DaylongEvents.qml create mode 100644 views/calendar/qml/View.qml create mode 100644 views/calendar/qml/WeekEvents.qml (limited to 'views/calendar/qml') diff --git a/views/calendar/qml/DaylongEvents.qml b/views/calendar/qml/DaylongEvents.qml new file mode 100644 index 00000000..340c9d79 --- /dev/null +++ b/views/calendar/qml/DaylongEvents.qml @@ -0,0 +1,16 @@ +import QtQuick 2.7 + +ListModel { + ListElement { + color: "#af1a6a" + starts: 1 + duration: 4 + text: "Baustelle Adalbertstr." + } + ListElement { + color: "#134bab" + starts: 0 + duration: 6 + text: "Urlaub" + } +} diff --git a/views/calendar/qml/View.qml b/views/calendar/qml/View.qml new file mode 100644 index 00000000..1b72881d --- /dev/null +++ b/views/calendar/qml/View.qml @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2018 Michael Bohlender, + * + * 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 2 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +import QtQuick 2.4 +import QtQuick.Layouts 1.1 +import QtQuick.Controls 2.0 +import Qt.labs.calendar 1.0 + +import org.kube.framework 1.0 as Kube + +FocusScope { + id: root + + property var month: Calendar.March + property var year: 2017 + + + Column { + anchors.centerIn: parent + + DayOfWeekRow { + + anchors.horizontalCenter: parent.horizontalCenter + + spacing: 0 + locale: Qt.locale("de") + + delegate: Rectangle { + width: Kube.Units.gridUnit * 7 + height: Kube.Units.gridUnit + Kube.Units.smallSpacing * 3 + + border.width: 1 + border.color: "lightgrey" + color: Kube.Colors.viewBackgroundColor + + Kube.Label { + anchors { + top: parent.top + left: parent.left + margins: Kube.Units.smallSpacing + } + text: model.shortName + } + } + } + + Rectangle { + height: Kube.Units.gridUnit * 3 + width: parent.width + color: Kube.Colors.viewBackgroundColor + + ListView { + id: daylong + + anchors.fill: parent + + model: DaylongEvents {} + + delegate: Item { + height: Kube.Units.gridUnit + width: daylong.width + + Rectangle { + width: Kube.Units.gridUnit * 7 * model.duration + height: Kube.Units.gridUnit + x: Kube.Units.gridUnit * 7 * model.starts + color: model.color + + Kube.Label { + anchors { + left: parent.left + leftMargin: Kube.Units.smallSpacing + } + color: Kube.Colors.highlightedTextColor + text: model.text + } + } + } + } + } + + RowLayout { + + anchors.horizontalCenter: parent.horizontalCenter + + spacing: 0 + + Repeater { + model: WeekEvents{} + delegate: Rectangle { + id: day + + property var events: model.events + + width: Kube.Units.gridUnit * 7 + height: Kube.Units.gridUnit * 20 + + border.width: 1 + border.color: "lightgrey" + color: Kube.Colors.viewBackgroundColor + + Repeater { + model: parent.events + + delegate: Rectangle { + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width - Kube.Units.smallSpacing * 2 + height: Kube.Units.gridUnit * duration + y: Kube.Units.gridUnit * starts + color: model.color + + Kube.Label { + anchors { + left: parent.left + leftMargin: Kube.Units.smallSpacing + } + text: model.text + color: Kube.Colors.highlightedTextColor + } + } + } + } + } + } + } +} diff --git a/views/calendar/qml/WeekEvents.qml b/views/calendar/qml/WeekEvents.qml new file mode 100644 index 00000000..b08c00a5 --- /dev/null +++ b/views/calendar/qml/WeekEvents.qml @@ -0,0 +1,65 @@ +import QtQuick 2.7 + +ListModel { + ListElement { + events: [ + ListElement { + color: "#af1a6a" + starts: 1 + duration: 4 + text: "Meeting" + }, + ListElement { + color: "#134bab" + starts: 9 + duration: 5 + text: "Sport" + } + ] + } + ListElement { + events: [ + ListElement { + color: "#134bab" + starts: 9 + duration: 5 + text: "Sport" + } + ] + } + ListElement { + events: [] + } + ListElement { + events: [ + ListElement { + color: "#af1a6a" + starts: 1 + duration: 4 + text: "Meeting" + } + ] + } + ListElement { + events: [ + ListElement { + color: "#af1a6a" + starts: 3 + duration: 5 + text: "Meeting" + }, + ListElement { + color: "#af1a6a" + starts: 9 + duration: 4 + text: "Meeting2" + } + ] + } + ListElement { + events: [] + } + ListElement { + events: [] + } +} -- cgit v1.2.3