added basic pull to refresh on event form
This commit is contained in:
parent
74b9233a9e
commit
8400d2db1c
4 changed files with 65 additions and 21 deletions
|
@ -5,6 +5,8 @@ import QtQuick.Controls 2.4
|
||||||
ListView {
|
ListView {
|
||||||
id: eventList
|
id: eventList
|
||||||
|
|
||||||
|
signal refresh()
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: 10
|
anchors.margins: 10
|
||||||
|
|
||||||
|
@ -12,6 +14,12 @@ ListView {
|
||||||
id: foodPlanModel
|
id: foodPlanModel
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onContentYChanged: {
|
||||||
|
if(contentY < -150){
|
||||||
|
eventList.refresh()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
delegate: Button {
|
delegate: Button {
|
||||||
id: delegate
|
id: delegate
|
||||||
|
|
||||||
|
|
|
@ -37,29 +37,62 @@ Page {
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
id: pageLoader
|
id: pageLoader
|
||||||
|
|
||||||
|
property string newSource: ""
|
||||||
|
|
||||||
|
onNewSourceChanged: {
|
||||||
|
oldItemAnimation.start()
|
||||||
|
}
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
source: "./LoadingForm.qml"
|
source: "./LoadingForm.qml"
|
||||||
|
|
||||||
onSourceChanged: animation.start()
|
onSourceChanged: newItemAnimation.start()
|
||||||
|
|
||||||
NumberAnimation {
|
NumberAnimation {
|
||||||
id: animation
|
id: newItemAnimation
|
||||||
target: pageLoader.item
|
target: pageLoader
|
||||||
property: "opacity"
|
property: "opacity"
|
||||||
from: 0
|
from: 0
|
||||||
to: 100
|
to: 100
|
||||||
duration: 500
|
duration: 500
|
||||||
easing.type: Easing.InExpo
|
easing.type: Easing.InExpo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NumberAnimation {
|
||||||
|
id: oldItemAnimation
|
||||||
|
target: pageLoader
|
||||||
|
property: "opacity"
|
||||||
|
from: 100
|
||||||
|
to: 0
|
||||||
|
duration: 500
|
||||||
|
easing.type: Easing.InExpo
|
||||||
|
|
||||||
|
onRunningChanged: {
|
||||||
|
if(!running){
|
||||||
|
pageLoader.source = pageLoader.newSource
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: pageLoader.item
|
||||||
|
onRefresh: {
|
||||||
|
pageLoader.newSource = "./LoadingForm.qml"
|
||||||
|
loadTimer.start()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
|
id: loadTimer
|
||||||
interval: 500
|
interval: 500
|
||||||
running: true
|
running: true
|
||||||
repeat: false
|
repeat: false
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
status = serverConn.getEvents(day)
|
status = serverConn.getEvents(day)
|
||||||
pageLoader.source = "../Components/EventView.qml"
|
pageLoader.newSource = "../Components/EventView.qml"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,8 @@ import QtQuick.Controls 2.4
|
||||||
Page {
|
Page {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
signal refresh()
|
||||||
|
|
||||||
BusyIndicator {
|
BusyIndicator {
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
}
|
}
|
||||||
|
|
|
@ -415,6 +415,7 @@ int ServerConn::getEvents(QString day){
|
||||||
|
|
||||||
if(blocksOK != 3) {
|
if(blocksOK != 3) {
|
||||||
// if there are more or less than 3 filled blocks, the data is invalid
|
// if there are more or less than 3 filled blocks, the data is invalid
|
||||||
|
this->m_events.clear();
|
||||||
return(900);
|
return(900);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue