@@ -25,17 +25,25 @@ import Ubuntu.Components.Styles 1.3
26PullToRefreshStyle {
26PullToRefreshStyle {
27 id: pullToRefreshScopeStyle
27 id: pullToRefreshScopeStyle
28− readonly property Item rootItem: QuickUtils.rootItem(pullToRefreshScopeStyle)
29− readonly property bool timerEnabled: activationThreshold > rootItem.height / 3
28+ property bool timerEnabled: false
30 property bool timerTriggered: false
29 property bool timerTriggered: false
30+ property int minimumPullThreshold
31 releaseToRefresh: timerTriggered || styledItem.target.originY - styledItem.target.contentY > activationThreshold
32 releaseToRefresh: timerTriggered || styledItem.target.originY - styledItem.target.contentY > activationThreshold
34+ onTimerEnabledChanged: if (!timerEnabled) stopTimer()
35− interval: 1000
38+ interval: 150
36 onTriggered: pullToRefreshScopeStyle.timerTriggered = true
39 onTriggered: pullToRefreshScopeStyle.timerTriggered = true
42+ function stopTimer() {
44+ timerTriggered = false
39 Connections {
47 Connections {
40 property bool willRefresh: false
48 property bool willRefresh: false
@@ -45,19 +53,20 @@ PullToRefreshStyle {
45 willRefresh = true
53 willRefresh = true
48− if (!timerEnabled) return;
50− if (styledItem.target.dragging) {
56+ if (timerEnabled && !styledItem.target.dragging) {
54− pullToRefreshScopeStyle.timerTriggered = false
57+ pullToRefreshScopeStyle.stopTimer()
57 onContentYChanged: {
60 onContentYChanged: {
58 if (styledItem.target.originY - styledItem.target.contentY == 0 && willRefresh) {
61 if (styledItem.target.originY - styledItem.target.contentY == 0 && willRefresh) {
59 styledItem.refresh()
62 styledItem.refresh()
60 willRefresh = false
63 willRefresh = false
64+ } else if (timerEnabled) {
65+ if (minimumPullThreshold + styledItem.target.contentY < 0) {
68+ pullToRefreshScopeStyle.stopTimer()