import QtQuick 2.0 import QtQuick.Controls 2.1 import QtQml 2.2 import Qt.labs.calendar 1.0 import QtQuick.Layouts 1.3 import "qrc:/js/service.js" as Service import "qrc:/js/helper.js" as Helperjs import "qrc:/qml/calendarqml" import "qrc:/qml/genericqml" Rectangle { id:calendarrectangle y:1 width:root.width-mm height:root.height-5*mm color: '#fff' property date currentTime: new Date() property int offsetTime: currentTime.getTimezoneOffset() * 60 * 1000 property var events:[] property var eventdays:[] onEventdaysChanged: print(JSON.stringify(eventdays)) function showEvents(friend){ if(friend=="backButton"){Service.eventsfromdb(db,login.username,function(eventArray,dayArray){ events=eventArray; eventdays=dayArray}) } else if (friend!=""){ calendartab.calendartabstatus=friend.substring(friend.lastIndexOf("/")+1,friend.length) Service.requestFriendsEvents(login,friend,calendartab,function(eventArray,dayArray){ events=eventArray; eventdays=dayArray}) } else {calendartab.calendartabstatus="Events"; Service.eventsfromdb(db,login.username,function(eventArray,dayArray){ events=eventArray; eventdays=dayArray; calBusy.running=false }) } } BusyIndicator{ id: calBusy anchors.horizontalCenter: calendarView.horizontalCenter anchors.top:calendarView.top anchors.topMargin: 2*mm width:10*mm height: 10*mm running: false } BlueButton{ id: updateEvents anchors.top: parent.top anchors.topMargin: 0.5*mm anchors.right:calendartabstatusButton.left anchors.rightMargin:mm text:"\uf021" onClicked: { Service.getEvents(db,login, calendartab,function(){ showEvents("") })}} BlueButton{ id: calendartabstatusButton anchors.top: parent.top anchors.topMargin: 0.5*mm anchors.right: parent.right anchors.rightMargin:2*mm text: calendartab.calendartabstatus=="Events"?qsTr("Events"):calendartabstatus onClicked: {calendartabmenu.popup()} } Menu { id:calendartabmenu MenuItem { text: qsTr("Own Calendar") onTriggered: { calendartab.calendartabstatus="Events"; // calendartabstatusButton.text=qsTr("own Calendar"); showEvents("")} } } ListView{ id: calendarView x: mm;y:8*mm width: parent.width-2*mm; height: parent.height-9*mm clip: true snapMode: ListView.SnapOneItem orientation: ListView.Horizontal highlightRangeMode: ListView.StrictlyEnforceRange model: CalendarModel {id:calendarModel from: new Date() to: new Date(new Date().valueOf()+93312000000) } delegate: ColumnLayout{ width:calendarView.width Text{ font.bold: true Layout.fillWidth: true horizontalAlignment:Text.AlignHCenter text: model.year } Text{ text: Qt.locale().standaloneMonthName(model.month) Layout.fillWidth: true horizontalAlignment:Text.AlignHCenter } DayOfWeekRow{ locale: monthgrid.locale Layout.fillWidth: true } MonthGrid { id: monthgrid Layout.fillWidth: true month: model.month year: model.year locale: Qt.locale() delegate: CalendarDay{} } } ScrollIndicator.horizontal: ScrollIndicator { } } Component.onCompleted: { root.eventSignal.connect(showEvents); if (calendartab.calendartabstatus=="Events"){showEvents("")} } }