forked from lubuwest/Friendiqa
134 lines
4.1 KiB
QML
134 lines
4.1 KiB
QML
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("")}
|
|
}
|
|
}
|