on xenial help sign in
new approach
498c00cAndrea Cimitan
qml/Dash/GenericScopeView.qml+2
@@ -733,6 +733,8 @@ FocusScope {
733 style: PullToRefreshScopeStyle {
733 style: PullToRefreshScopeStyle {
734 anchors.fill: parent
734 anchors.fill: parent
735 activationThreshold: units.gu(14)
735 activationThreshold: units.gu(14)
736+ timerEnabled: activationThreshold > scopeView.height / 3
737+ minimumPullThreshold: units.gu(5)
736 }
738 }
737 }
739 }
738 }
740 }
qml/Dash/PullToRefreshScopeStyle.qml+19−10
@@ -25,17 +25,25 @@ import Ubuntu.Components.Styles 1.3
25 */
25 */
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+
31 releaseToRefresh: timerTriggered || styledItem.target.originY - styledItem.target.contentY > activationThreshold
32 releaseToRefresh: timerTriggered || styledItem.target.originY - styledItem.target.contentY > activationThreshold
32
33
34+ onTimerEnabledChanged: if (!timerEnabled) stopTimer()
35+
33 Timer {
36 Timer {
34 id: timer
37 id: timer
35− interval: 1000
38+ interval: 150
36 onTriggered: pullToRefreshScopeStyle.timerTriggered = true
39 onTriggered: pullToRefreshScopeStyle.timerTriggered = true
37 }
40 }
38
41
42+ function stopTimer() {
43+ timer.stop()
44+ timerTriggered = false
45+ }
46+
39 Connections {
47 Connections {
40 property bool willRefresh: false
48 property bool willRefresh: false
41
49
@@ -45,19 +53,20 @@ PullToRefreshStyle {
45 willRefresh = true
53 willRefresh = true
46 }
54 }
47
55
48− if (!timerEnabled) return;
49−
50− if (styledItem.target.dragging) {
56+ if (timerEnabled && !styledItem.target.dragging) {
51− timer.start()
52− } else {
53− timer.stop()
54− pullToRefreshScopeStyle.timerTriggered = false
57+ pullToRefreshScopeStyle.stopTimer()
55 }
58 }
56 }
59 }
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) {
66+ timer.start()
67+ } else {
68+ pullToRefreshScopeStyle.stopTimer()
69+ }
61 }
70 }
62 }
71 }
63 }
72 }