@@ -25,17 +25,25 @@ import Ubuntu.Components.Styles 1.3
2525 */
2626PullToRefreshStyle {
2727 id: pullToRefreshScopeStyle
28− readonly property Item rootItem: QuickUtils.rootItem(pullToRefreshScopeStyle)
29− readonly property bool timerEnabled: activationThreshold > rootItem.height / 3
28+ property bool timerEnabled: false
3029 property bool timerTriggered: false
30+ property int minimumPullThreshold
31+
3132 releaseToRefresh: timerTriggered || styledItem.target.originY - styledItem.target.contentY > activationThreshold
3233
34+ onTimerEnabledChanged: if (!timerEnabled) stopTimer()
35+
3336 Timer {
3437 id: timer
35− interval: 1000
38+ interval: 150
3639 onTriggered: pullToRefreshScopeStyle.timerTriggered = true
3740 }
3841
42+ function stopTimer() {
43+ timer.stop()
44+ timerTriggered = false
45+ }
46+
3947 Connections {
4048 property bool willRefresh: false
4149
@@ -45,19 +53,20 @@ PullToRefreshStyle {
4553 willRefresh = true
4654 }
4755
48− if (!timerEnabled) return;
49−
50− if (styledItem.target.dragging) {
51− timer.start()
52− } else {
53− timer.stop()
54− pullToRefreshScopeStyle.timerTriggered = false
56+ if (timerEnabled && !styledItem.target.dragging) {
57+ pullToRefreshScopeStyle.stopTimer()
5558 }
5659 }
5760 onContentYChanged: {
5861 if (styledItem.target.originY - styledItem.target.contentY == 0 && willRefresh) {
5962 styledItem.refresh()
6063 willRefresh = false
64+ } else if (timerEnabled) {
65+ if (minimumPullThreshold + styledItem.target.contentY < 0) {
66+ timer.start()
67+ } else {
68+ pullToRefreshScopeStyle.stopTimer()
69+ }
6170 }
6271 }
6372 }