on xenial help sign in
Don't treat scope as active when preview open to inhibit model updates and reset processing on previewData changes. Fixes: 1275832
461f112Michał Sawicz
qml/Dash/DashPreview.qml+2
@@ -57,6 +57,8 @@ Item {
57 }
57 }
58 }
58 }
59
59
60+ onPreviewDataChanged: showProcessingAction = false
61+
60 MouseArea {
62 MouseArea {
61 anchors.fill: parent
63 anchors.fill: parent
62 }
64 }
qml/Dash/GenericScopeView.qml+1−1
@@ -56,7 +56,7 @@ FocusScope {
56 Binding {
56 Binding {
57 target: scope
57 target: scope
58 property: "isActive"
58 property: "isActive"
59− value: isCurrent
59+ value: isCurrent && !previewListView.onScreen
60 }
60 }
61
61
62 Timer {
62 Timer {
tests/qmltests/Dash/tst_GenericPreview.qml+8
@@ -113,5 +113,13 @@ Item {
113 compare(value.text, dataObject.infoHints[i].value)
113 compare(value.text, dataObject.infoHints[i].value)
114 }
114 }
115 }
115 }
116+
117+ function test_showProcessing() {
118+ var button = findChild(genericPreview, "button1");
119+ mouseClick(button, 1, 1);
120+ tryCompare(genericPreview, "showProcessingAction", true);
121+ genericPreview.previewDataChanged();
122+ tryCompare(genericPreview, "showProcessingAction", false);
123+ }
116 }
124 }
117}
125}
tests/qmltests/Dash/tst_GenericScopeView.qml+12
@@ -86,6 +86,18 @@ Item {
86 tryCompare(previewListView, "open", false);
86 tryCompare(previewListView, "open", false);
87 }
87 }
88
88
89+ function test_isActive() {
90+ tryCompare(genericScopeView.scope, "isActive", false)
91+ genericScopeView.isCurrent = true
92+ tryCompare(genericScopeView.scope, "isActive", true)
93+ previewListView.open = true
94+ tryCompare(genericScopeView.scope, "isActive", false)
95+ previewListView.open = false
96+ tryCompare(genericScopeView.scope, "isActive", true)
97+ genericScopeView.isCurrent = false
98+ tryCompare(genericScopeView.scope, "isActive", false)
99+ }
100+
89 function test_showDash() {
101 function test_showDash() {
90 previewListView.open = true;
102 previewListView.open = true;
91 tryCompare(openEffect, "live", true);
103 tryCompare(openEffect, "live", true);