on xenial help sign in
Merge fix-genericpreview
616b1efMichał Sawicz
Components/PageHeader.qml+1−44
@@ -18,7 +18,6 @@ import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19import Ubuntu.Components.Popups 0.1
19import Ubuntu.Components.Popups 0.1
20import Ubuntu.Components.ListItems 0.1 as ListItem
20import Ubuntu.Components.ListItems 0.1 as ListItem
21−import Unity 0.1
22
21
23Item {
22Item {
24 /*!
23 /*!
@@ -31,7 +30,6 @@ Item {
31 property bool searchEntryEnabled: false
30 property bool searchEntryEnabled: false
32 property alias searchQuery: searchField.text
31 property alias searchQuery: searchField.text
33 property ListModel searchHistory: SearchHistoryModel {}
32 property ListModel searchHistory: SearchHistoryModel {}
34− property Scope scope
35
33
36 height: units.gu(8.5)
34 height: units.gu(8.5)
37 implicitHeight: units.gu(8.5)
35 implicitHeight: units.gu(8.5)
@@ -150,7 +148,7 @@ Item {
150 hasClearButton: false
148 hasClearButton: false
151
149
152 primaryItem: AbstractButton {
150 primaryItem: AbstractButton {
153− enabled: searchField.text != "" && !searchIndicator.running
151+ enabled: searchField.text != ""
154 onClicked: {
152 onClicked: {
155 if (searchField.text != "") {
153 if (searchField.text != "") {
156 searchHistory.addQuery(searchField.text)
154 searchHistory.addQuery(searchField.text)
@@ -160,22 +158,8 @@ Item {
160 height: parent.height
158 height: parent.height
161 width: height
159 width: height
162
160
163− ActivityIndicator {
164− id: searchIndicator
165− objectName: "searchIndicator"
166−
167− anchors {
168− verticalCenter: parent.verticalCenter
169− left: parent.left
170− leftMargin: units.gu(0.5)
171− }
172−
173− running: opacity > 0
174− }
175−
176 Image {
161 Image {
177 id: primaryImage
162 id: primaryImage
178− objectName: "primaryImage"
179 anchors {
163 anchors {
180 verticalCenter: parent.verticalCenter
164 verticalCenter: parent.verticalCenter
181 left: parent.left
165 left: parent.left
@@ -183,7 +167,6 @@ Item {
183 }
167 }
184 width: units.gu(3)
168 width: units.gu(3)
185 height: units.gu(3)
169 height: units.gu(3)
186− visible: opacity > 0
187 }
170 }
188
171
189 Item {
172 Item {
@@ -202,32 +185,6 @@ Item {
202 onActiveFocusChanged: {
185 onActiveFocusChanged: {
203 if (!activeFocus) searchContainer.closePopover()
186 if (!activeFocus) searchContainer.closePopover()
204 }
187 }
205−
206− states: [
207− State {
208− name: "searching"
209− when: scope.searchInProgress && searchField.text !== ""
210− PropertyChanges { target: searchIndicator; running: true; opacity: 1 }
211− PropertyChanges { target: primaryImage; opacity: 0 }
212− },
213− State {
214− name: "idle"
215− when: !scope.searchInProgress || searchField.text === ""
216− PropertyChanges { target: searchIndicator; opacity: 0 }
217− PropertyChanges { target: primaryImage; opacity: 1 }
218− }
219− ]
220−
221− transitions: [
222− Transition {
223− to: "searching"
224− reversible: true
225− SequentialAnimation {
226− NumberAnimation { target: primaryImage; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
227− NumberAnimation { target: searchIndicator; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
228− }
229− }
230− ]
231 }
188 }
232
189
233 states: [
190 states: [
Components/Tile.qml+65−8
@@ -18,21 +18,78 @@ import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19
19
20AbstractButton {
20AbstractButton {
21+ id: root
21− property url source
22+ property alias source: image.source
22− property int fillMode: Image.PreserveAspectCrop
23+ property alias fillMode: image.fillMode
23− property int horizontalAlignment: Image.AlignHCenter
24+ property alias horizontalAlignment: image.horizontalAlignment
24− property int verticalAlignment: Image.AlignVCenter
25+ property alias verticalAlignment: image.verticalAlignment
25− property string text
26+ property alias text: label.text
26 property int imageWidth
27 property int imageWidth
27 property int imageHeight
28 property int imageHeight
29+
28 readonly property int center: (index % GridView.view.columns * width) + (width / 2)
30 readonly property int center: (index % GridView.view.columns * width) + (width / 2)
29− property int maximumLineCount: 1
30 opacity: GridView.view.highlightIndex === -1 ? 1 :
31 opacity: GridView.view.highlightIndex === -1 ? 1 :
31 GridView.view.highlightIndex === index ? 0.6 : 0.2
32 GridView.view.highlightIndex === index ? 0.6 : 0.2
32
33
33− style: TileStyle {}
34−
35 Behavior on opacity {
34 Behavior on opacity {
36 UbuntuNumberAnimation {}
35 UbuntuNumberAnimation {}
37 }
36 }
37+
38+ UbuntuShape {
39+ id: icon
40+ anchors {
41+ top: parent.top
42+ horizontalCenter: parent.horizontalCenter
43+ }
44+ radius: "medium"
45+ width: imageWidth
46+ height: imageHeight
47+ image: Image {
48+ id: image
49+ objectName: "image"
50+ sourceSize { width: icon.width; height: icon.height }
51+ asynchronous: true
52+ cache: false
53+ }
54+ }
55+
56+ UbuntuShape {
57+ id: borderPressed
58+ objectName: "borderPressed"
59+
60+ anchors.fill: icon
61+ radius: "medium"
62+ borderSource: "radius_pressed.sci"
63+ opacity: root.pressed ? 1.0 : 0.0
64+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
65+ }
66+
67+ Item {
68+ anchors {
69+ left: parent.left
70+ right: parent.right
71+ top: icon.bottom
72+ }
73+ height: units.gu(2)
74+
75+ Label {
76+ id: label
77+ objectName: "label"
78+ anchors {
79+ baseline: parent.bottom
80+ left: parent.left
81+ right: parent.right
82+ leftMargin: units.gu(1)
83+ rightMargin: units.gu(1)
84+ }
85+
86+ color: Theme.palette.selected.backgroundText
87+ opacity: 0.9
88+ style: Text.Raised
89+ styleColor: "black"
90+ fontSize: "small"
91+ elide: Text.ElideMiddle
92+ horizontalAlignment: Text.AlignHCenter
93+ }
94+ }
38}
95}
Components/TileStyle.qmldeleted−80
@@ -1,80 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−
20−Item {
21− id: tile
22−
23− anchors.fill: parent
24−
25− UbuntuShape {
26− id: icon
27− anchors {
28− top: parent.top
29− horizontalCenter: parent.horizontalCenter
30− }
31− radius: "medium"
32− width: styledItem.imageWidth
33− height: styledItem.imageHeight
34− image: Image {
35− id: image
36− objectName: "image"
37− sourceSize { width: icon.width; height: icon.height }
38− asynchronous: true
39− cache: false
40− source: styledItem.source
41− fillMode: styledItem.fillMode
42− horizontalAlignment: styledItem.horizontalAlignment
43− verticalAlignment: styledItem.verticalAlignment
44− }
45− }
46−
47− UbuntuShape {
48− id: borderPressed
49− objectName: "borderPressed"
50−
51− anchors.fill: icon
52− radius: "medium"
53− borderSource: "radius_pressed.sci"
54− opacity: styledItem.pressed ? 1.0 : 0.0
55− Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
56− }
57−
58− Label {
59− id: label
60− objectName: "label"
61− anchors {
62− baseline: icon.bottom
63− baselineOffset: units.gu(2)
64− left: parent.left
65− right: parent.right
66− leftMargin: units.gu(1)
67− rightMargin: units.gu(1)
68− }
69−
70− color: Theme.palette.selected.backgroundText
71− opacity: 0.9
72− style: Text.Raised
73− styleColor: "black"
74− fontSize: "small"
75− elide: Text.ElideMiddle
76− horizontalAlignment: Text.AlignHCenter
77− text: styledItem.text
78− maximumLineCount: styledItem.maximumLineCount
79− }
80−}
Dash/Apps/DashPluginFilterGrid.qmldeleted−49
@@ -1,49 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−import "../../Components"
20−import "../Generic"
21−
22−GenericFilterGrid {
23− id: filtergrid
24−
25− delegate: Tile {
26− id: tile
27− objectName: "delegate" + index
28− width: filtergrid.cellWidth
29− height: filtergrid.cellHeight
30− text: model.title
31− imageWidth: filtergrid.iconWidth
32− imageHeight: filtergrid.iconHeight
33− source: model.icon
34−
35− style: FlatTileStyle {
36− disabled: model.rendererHints['scope_disabled'] === 1;
37− }
38−
39− onClicked: {
40− var data = { model: model }
41− filtergrid.clicked(index, data, tile.y)
42− }
43−
44− onPressAndHold: {
45− var data = { model: model }
46− filtergrid.pressAndHold(index, data, tile.y)
47− }
48− }
49−}
Dash/Generic/FlatTileStyle.qmldeleted−78
@@ -1,78 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−
20−Item {
21− id: tile
22−
23− property bool disabled: false
24−
25− anchors.fill: parent
26−
27− Image {
28− id: icon
29− objectName: "image"
30− width: styledItem.imageWidth
31− height: styledItem.imageHeight
32−
33− anchors.horizontalCenter: parent.horizontalCenter
34−
35− sourceSize { width: width; height: height }
36− asynchronous: true
37− cache: false
38− source: styledItem.source
39− fillMode: styledItem.fillMode
40− opacity: tile.disabled ? 0.3 : 1.0
41− horizontalAlignment: styledItem.horizontalAlignment
42− verticalAlignment: styledItem.verticalAlignment
43− }
44−
45− UbuntuShape {
46− id: borderPressed
47− objectName: "borderPressed"
48−
49− anchors.fill: icon
50− radius: "medium"
51− borderSource: "radius_pressed.sci"
52− opacity: styledItem.pressed ? 1.0 : 0.0
53− Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
54− }
55−
56− Label {
57− id: label
58− objectName: "label"
59− anchors {
60− baseline: icon.bottom
61− baselineOffset: units.gu(2)
62− left: parent.left
63− right: parent.right
64− leftMargin: units.gu(1)
65− rightMargin: units.gu(1)
66− }
67−
68− color: Theme.palette.selected.backgroundText
69− opacity: 0.9
70− style: Text.Raised
71− styleColor: "black"
72− fontSize: "small"
73− elide: Text.ElideMiddle
74− horizontalAlignment: Text.AlignHCenter
75− text: styledItem.text
76− maximumLineCount: styledItem.maximumLineCount
77− }
78−}
Dash/Generic/GenericFilterGrid.qml+3
@@ -39,8 +39,11 @@ FilterGrid {
39 text: model.title
39 text: model.title
40 imageWidth: filtergrid.iconWidth
40 imageWidth: filtergrid.iconWidth
41 imageHeight: filtergrid.iconHeight
41 imageHeight: filtergrid.iconHeight
42+
42 source: model.icon
43 source: model.icon
43
44
45+ fillMode: Image.PreserveAspectCrop
46+
44 onClicked: {
47 onClicked: {
45 filtergrid.clicked(index, filtergrid.model, tile.y)
48 filtergrid.clicked(index, filtergrid.model, tile.y)
46 }
49 }
Dash/Generic/GenericPreview.qml+1−1
@@ -49,7 +49,7 @@ DashPreview {
49 id: headerComponent
49 id: headerComponent
50 Header {
50 Header {
51 title: previewData.title
51 title: previewData.title
52− subtitle: previewData.subtitle.replace(/[\r\n]+/g, "<br />")
52+ subtitle: previewData.subtitle
53 }
53 }
54 }
54 }
55
55
Dash/Generic/WeatherFilterGrid.qmldeleted−49
@@ -1,49 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−import "../../Components"
20−
21−GenericFilterGrid {
22− id: filtergrid
23−
24− delegateHeight: units.gu(11.5)
25−
26− delegate: Tile {
27− id: tile
28− objectName: "delegate" + index
29− width: filtergrid.cellWidth
30− height: filtergrid.cellHeight
31− text: model.title
32− imageWidth: filtergrid.iconWidth
33− imageHeight: filtergrid.iconHeight
34− source: model.icon
35− maximumLineCount: 2
36−
37− style: FlatTileStyle {}
38−
39− onClicked: {
40− var data = { model: model }
41− filtergrid.clicked(index, data, tile.y)
42− }
43−
44− onPressAndHold: {
45− var data = { model: model }
46− filtergrid.pressAndHold(index, data, tile.y)
47− }
48− }
49−}
Dash/GenericScopeView.qml−8
@@ -216,7 +216,6 @@ ScopeView {
216 width: categoryView.width
216 width: categoryView.width
217 text: scopeView.scope.name
217 text: scopeView.scope.name
218 searchEntryEnabled: true
218 searchEntryEnabled: true
219− scope: scopeView.scope
220 }
219 }
221 }
220 }
222
221
@@ -235,13 +234,6 @@ ScopeView {
235 switch (contentType) {
234 switch (contentType) {
236 case "video": return "Generic/GenericFilterGridPotrait.qml";
235 case "video": return "Generic/GenericFilterGridPotrait.qml";
237 case "music": return "Music/MusicFilterGrid.qml";
236 case "music": return "Music/MusicFilterGrid.qml";
238− case "apps": {
239− if (rendererHint == "toggled")
240− return "Apps/DashPluginFilterGrid.qml";
241− else
242− return "Generic/GenericFilterGrid.qml";
243− }
244− case "weather": return "Generic/WeatherFilterGrid.qml";
245 default: return "Generic/GenericFilterGrid.qml";
237 default: return "Generic/GenericFilterGrid.qml";
246 }
238 }
247 }
239 }
debian/changelog+29
@@ -1,3 +1,32 @@
1+unity8 (7.82+13.10.20131005-0ubuntu1) saucy; urgency=low
2+
3+ [ Michał Sawicz ]
4+ * Revert r376 that caused constant CPU usage due to the
5+ ActivityIndicator.
6+
7+ [ Nick Dedekind ]
8+ * Removed indicators-client autopilot tests. (LP: #1234736)
9+
10+ [ Albert Astals ]
11+ * Revert r388. (LP: #1235268)
12+
13+ [ Christopher Lee ]
14+ * Removes passing -fullscreen to unity8 when on the device (as per bug
15+ #1235065). (LP: #1235065)
16+
17+ [ Ubuntu daily release ]
18+ * Automatic snapshot from revision 396
19+
20+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Sat, 05 Oct 2013 11:45:14 +0000
21+
22+unity8 (7.82+13.10.20131004.2-0ubuntu1) saucy; urgency=low
23+
24+ * Revert 7.82+13.10.20131004.1-0ubuntu1 back to
25+ 7.81.3+13.10.20130927.3-0ubuntu1 due to CPU hogging issue with
26+ 7.82+13.10.20131004.1-0ubuntu1.
27+
28+ -- Loïc Minier <loic.minier@ubuntu.com> Fri, 04 Oct 2013 21:22:29 +0200
29+
1unity8 (7.82+13.10.20131004.1-0ubuntu1) saucy; urgency=low
30unity8 (7.82+13.10.20131004.1-0ubuntu1) saucy; urgency=low
2
31
3 [ Michał Sawicz ]
32 [ Michał Sawicz ]
main.cpp+3−3
@@ -160,10 +160,10 @@ int startShell(int argc, const char** argv, void* server)
160 prependImportPaths(view->engine(), ::overrideImportPaths());
160 prependImportPaths(view->engine(), ::overrideImportPaths());
161 appendImportPaths(view->engine(), ::fallbackImportPaths());
161 appendImportPaths(view->engine(), ::fallbackImportPaths());
162
162
163− QStringList importPath = view->engine()->importPathList().filter("qt5/imports");
164 if (isUbuntuMirServer) {
163 if (isUbuntuMirServer) {
165− importPath.first().append("/Unity-Mir");
164+ QStringList importPaths = view->engine()->importPathList();
166− view->engine()->addImportPath(importPath.first());
165+ importPaths.replaceInStrings(QRegExp("qt5/imports$"), "qt5/imports/Unity-Mir");
166+ view->engine()->setImportPathList(importPaths);
167 }
167 }
168
168
169 view->setSource(source);
169 view->setSource(source);
plugins/Unity/scope.cpp+5−30
@@ -33,14 +33,12 @@
33#include <QQmlEngine>
33#include <QQmlEngine>
34
34
35#include <UnityCore/Variant.h>
35#include <UnityCore/Variant.h>
36−#include <UnityCore/GLibWrapper.h>
37
36
38#include <libintl.h>
37#include <libintl.h>
39#include <glib.h>
38#include <glib.h>
40
39
41Scope::Scope(QObject *parent) : QObject(parent)
40Scope::Scope(QObject *parent) : QObject(parent)
42 , m_formFactor("phone")
41 , m_formFactor("phone")
43− , m_searchInProgress(false)
44{
42{
45 m_categories.reset(new Categories(this));
43 m_categories.reset(new Categories(this));
46}
44}
@@ -70,11 +68,6 @@ QString Scope::searchHint() const
70 return QString::fromStdString(m_unityScope->search_hint());
68 return QString::fromStdString(m_unityScope->search_hint());
71}
69}
72
70
73−bool Scope::searchInProgress() const
74−{
75− return m_searchInProgress;
76−}
77−
78bool Scope::visible() const
71bool Scope::visible() const
79{
72{
80 return m_unityScope->visible();
73 return m_unityScope->visible();
@@ -122,15 +115,10 @@ void Scope::setSearchQuery(const QString& search_query)
122 string ("") and m_searchQuery is the null string,
115 string ("") and m_searchQuery is the null string,
123 search_query != m_searchQuery is still true.
116 search_query != m_searchQuery is still true.
124 */
117 */
125− using namespace std::placeholders;
126−
127 if (m_searchQuery.isNull() || search_query != m_searchQuery) {
118 if (m_searchQuery.isNull() || search_query != m_searchQuery) {
128 m_searchQuery = search_query;
119 m_searchQuery = search_query;
129− m_cancellable.Renew();
130− m_searchInProgress = true;
131− m_unityScope->Search(search_query.toStdString(), std::bind(&Scope::onSearchFinished, this, _1, _2, _3), m_cancellable);
120+ m_unityScope->Search(search_query.toStdString(), sigc::mem_fun(this, &Scope::searchFinished));
132 Q_EMIT searchQueryChanged();
121 Q_EMIT searchQueryChanged();
133− Q_EMIT searchInProgressChanged();
134 }
122 }
135}
123}
136
124
@@ -306,6 +294,8 @@ void Scope::setUnityScope(const unity::dash::Scope::Ptr& scope)
306 m_unityScope->visible.changed.connect(sigc::mem_fun(this, &Scope::visibleChanged));
294 m_unityScope->visible.changed.connect(sigc::mem_fun(this, &Scope::visibleChanged));
307 m_unityScope->shortcut.changed.connect(sigc::mem_fun(this, &Scope::shortcutChanged));
295 m_unityScope->shortcut.changed.connect(sigc::mem_fun(this, &Scope::shortcutChanged));
308 m_unityScope->connected.changed.connect(sigc::mem_fun(this, &Scope::connectedChanged));
296 m_unityScope->connected.changed.connect(sigc::mem_fun(this, &Scope::connectedChanged));
297+ /* Signals forwarding */
298+ connect(this, SIGNAL(searchFinished(const std::string &, unity::glib::HintsMap const &, unity::glib::Error const &)), SLOT(onSearchFinished(const std::string &, unity::glib::HintsMap const &)));
309
299
310 /* FIXME: signal should be forwarded instead of calling the handler directly */
300 /* FIXME: signal should be forwarded instead of calling the handler directly */
311 m_unityScope->activated.connect(sigc::mem_fun(this, &Scope::onActivated));
301 m_unityScope->activated.connect(sigc::mem_fun(this, &Scope::onActivated));
@@ -326,33 +316,18 @@ unity::dash::Scope::Ptr Scope::unityScope() const
326
316
327void Scope::synchronizeStates()
317void Scope::synchronizeStates()
328{
318{
329− using namespace std::placeholders;
330−
331 if (connected()) {
319 if (connected()) {
332 /* Forward local states to m_unityScope */
320 /* Forward local states to m_unityScope */
333 if (!m_searchQuery.isNull()) {
321 if (!m_searchQuery.isNull()) {
334− m_cancellable.Renew();
335− m_searchInProgress = true;
336− m_unityScope->Search(m_searchQuery.toStdString(), std::bind(&Scope::onSearchFinished, this, _1, _2, _3), m_cancellable);
322+ m_unityScope->Search(m_searchQuery.toStdString());
337− Q_EMIT searchInProgressChanged();
338 }
323 }
339 }
324 }
340}
325}
341
326
342−void Scope::onSearchFinished(std::string const& /* query */, unity::glib::HintsMap const& hints, unity::glib::Error const& err)
327+void Scope::onSearchFinished(const std::string& /* query */, unity::glib::HintsMap const &hints)
343{
328{
344 QString hint;
329 QString hint;
345
330
346− GError* error = const_cast<unity::glib::Error&>(err);
347−
348− if (!err || !g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
349− m_searchInProgress = false;
350− Q_EMIT searchInProgressChanged();
351− } else {
352− // no need to check the results hint, we're still searching
353− return;
354− }
355−
356 if (!m_unityScope->results()->count()) {
331 if (!m_unityScope->results()->count()) {
357 unity::glib::HintsMap::const_iterator it = hints.find("no-results-hint");
332 unity::glib::HintsMap::const_iterator it = hints.find("no-results-hint");
358 if (it != hints.end()) {
333 if (it != hints.end()) {
plugins/Unity/scope.h+2−7
@@ -28,7 +28,6 @@
28// libunity-core
28// libunity-core
29#include <UnityCore/Scope.h>
29#include <UnityCore/Scope.h>
30#include <UnityCore/Results.h>
30#include <UnityCore/Results.h>
31−#include <UnityCore/GLibWrapper.h>
32
31
33#include "categories.h"
32#include "categories.h"
34#include "filters.h"
33#include "filters.h"
@@ -44,7 +43,6 @@ class Scope : public QObject
44 Q_PROPERTY(QString iconHint READ iconHint NOTIFY iconHintChanged)
43 Q_PROPERTY(QString iconHint READ iconHint NOTIFY iconHintChanged)
45 Q_PROPERTY(QString description READ description NOTIFY descriptionChanged)
44 Q_PROPERTY(QString description READ description NOTIFY descriptionChanged)
46 Q_PROPERTY(QString searchHint READ searchHint NOTIFY searchHintChanged)
45 Q_PROPERTY(QString searchHint READ searchHint NOTIFY searchHintChanged)
47− Q_PROPERTY(bool searchInProgress READ searchInProgress NOTIFY searchInProgressChanged)
48 Q_PROPERTY(bool visible READ visible NOTIFY visibleChanged)
46 Q_PROPERTY(bool visible READ visible NOTIFY visibleChanged)
49 Q_PROPERTY(QString shortcut READ shortcut NOTIFY shortcutChanged)
47 Q_PROPERTY(QString shortcut READ shortcut NOTIFY shortcutChanged)
50 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
48 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
@@ -67,7 +65,6 @@ public:
67 bool visible() const;
65 bool visible() const;
68 QString shortcut() const;
66 QString shortcut() const;
69 bool connected() const;
67 bool connected() const;
70− bool searchInProgress() const;
71 Categories* categories() const;
68 Categories* categories() const;
72 Filters* filters() const;
69 Filters* filters() const;
73 QString searchQuery() const;
70 QString searchQuery() const;
@@ -98,11 +95,11 @@ Q_SIGNALS:
98 void iconHintChanged(const std::string&);
95 void iconHintChanged(const std::string&);
99 void descriptionChanged(const std::string&);
96 void descriptionChanged(const std::string&);
100 void searchHintChanged(const std::string&);
97 void searchHintChanged(const std::string&);
101− void searchInProgressChanged();
102 void visibleChanged(bool);
98 void visibleChanged(bool);
103 void shortcutChanged(const std::string&);
99 void shortcutChanged(const std::string&);
104 void connectedChanged(bool);
100 void connectedChanged(bool);
105 void categoriesChanged();
101 void categoriesChanged();
102+ void searchFinished(const std::string&, unity::glib::HintsMap const&, unity::glib::Error const&);
106 void searchQueryChanged();
103 void searchQueryChanged();
107 void noResultsHintChanged();
104 void noResultsHintChanged();
108 void formFactorChanged();
105 void formFactorChanged();
@@ -118,7 +115,7 @@ Q_SIGNALS:
118
115
119private Q_SLOTS:
116private Q_SLOTS:
120 void synchronizeStates();
117 void synchronizeStates();
121− void onSearchFinished(std::string const &, unity::glib::HintsMap const &, unity::glib::Error const&);
118+ void onSearchFinished(const std::string &, unity::glib::HintsMap const &);
122
119
123private:
120private:
124 unity::dash::LocalResult createLocalResult(const QVariant &uri, const QVariant &icon_hint,
121 unity::dash::LocalResult createLocalResult(const QVariant &uri, const QVariant &icon_hint,
@@ -136,8 +133,6 @@ private:
136 QString m_searchQuery;
133 QString m_searchQuery;
137 QString m_noResultsHint;
134 QString m_noResultsHint;
138 QString m_formFactor;
135 QString m_formFactor;
139− bool m_searchInProgress;
140− unity::glib::Cancellable m_cancellable;
141 unity::glib::Cancellable m_previewCancellable;
136 unity::glib::Cancellable m_previewCancellable;
142};
137};
143
138
po/de.po+8−8
@@ -8,14 +8,14 @@ msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2013-10-01 09:43+0200\n"
10"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11−"PO-Revision-Date: 2013-10-03 12:13+0000\n"
11+"PO-Revision-Date: 2013-10-06 10:57+0000\n"
12−"Last-Translator: Phillip Sz <Unknown>\n"
12+"Last-Translator: SaGrLand <sg@samuel-greef.de>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-04 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-07 06:14+0000\n"
19"X-Generator: Launchpad (build 16791)\n"
19"X-Generator: Launchpad (build 16791)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
@@ -147,20 +147,20 @@ msgstr "(%1)"
147#, qt-format
147#, qt-format
148msgid "%1 review"
148msgid "%1 review"
149msgid_plural "%1 reviews"
149msgid_plural "%1 reviews"
150−msgstr[0] ""
150+msgstr[0] "%1 Bewertung"
151−msgstr[1] ""
151+msgstr[1] "%1 Bewertungen"
152
152
153#: Dash/Apps/AppPreview.qml:178
153#: Dash/Apps/AppPreview.qml:178
154msgid "Rate this"
154msgid "Rate this"
155−msgstr ""
155+msgstr "Bewerten"
156
156
157#: Dash/Apps/AppReviews.qml:74
157#: Dash/Apps/AppReviews.qml:74
158msgid "Add a review"
158msgid "Add a review"
159−msgstr ""
159+msgstr "Bewertung hinzufügen"
160
160
161#: Dash/Apps/AppReviews.qml:86
161#: Dash/Apps/AppReviews.qml:86
162msgid "Review"
162msgid "Review"
163−msgstr ""
163+msgstr "Bewertung"
164
164
165#: Dash/Apps/AppReviews.qml:121
165#: Dash/Apps/AppReviews.qml:121
166msgid "Send"
166msgid "Send"
po/unity8.pot+19−29
@@ -8,7 +8,7 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: \n"
10"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"POT-Creation-Date: 2013-10-07 10:49+0200\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:150
89+#: Components/EdgeDemoOverlay.qml:149
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,44 +132,30 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:298
135+#: Components/PageHeader.qml:341
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
139#. TRANSLATORS: Number of persons who rated this app
139#. TRANSLATORS: Number of persons who rated this app
140+#. TRANSLATORS: Number of persons who rated this app/video/whatever
140−#: Dash/Apps/AppInfo.qml:73
141+#: Dash/Apps/AppInfo.qml:73 Dash/Previews/Header.qml:93
141#, qt-format
142#, qt-format
142msgid "(%1)"
143msgid "(%1)"
143msgstr ""
144msgstr ""
144
145
145#. TRANSLATORS: Number of persons who wrote reviews for this app
146#. TRANSLATORS: Number of persons who wrote reviews for this app
147+#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
146−#: Dash/Apps/AppInfo.qml:85
148+#: Dash/Apps/AppInfo.qml:85 Dash/Previews/Header.qml:105
147#, qt-format
149#, qt-format
148msgid "%1 review"
150msgid "%1 review"
149msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
150msgstr[0] ""
152msgstr[0] ""
151msgstr[1] ""
153msgstr[1] ""
152
154
153−#: Dash/Apps/AppPreview.qml:178
155+#: Dash/Apps/AppPreview.qml:126
154msgid "Rate this"
156msgid "Rate this"
155msgstr ""
157msgstr ""
156
158
157−#: Dash/Apps/AppReviews.qml:74
158−msgid "Add a review"
159−msgstr ""
160−
161−#: Dash/Apps/AppReviews.qml:86
162−msgid "Review"
163−msgstr ""
164−
165−#: Dash/Apps/AppReviews.qml:121
166−msgid "Send"
167−msgstr ""
168−
169−#: Dash/Apps/AppReviews.qml:139
170−msgid "Comments:"
171−msgstr ""
172−
173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
159#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174msgid "Featured"
160msgid "Featured"
175msgstr ""
161msgstr ""
@@ -198,16 +184,20 @@ msgstr ""
198msgid "Videos"
184msgid "Videos"
199msgstr ""
185msgstr ""
200
186
201−#: Dash/Video/VideoPreview.qml:130
187+#: Dash/Previews/Reviews.qml:74
202−msgid "Directed by:"
188+msgid "Add a review"
203msgstr ""
189msgstr ""
204
190
205−#: Dash/Video/VideoPreview.qml:153
191+#: Dash/Previews/Reviews.qml:86
206−msgid "Starring:"
192+msgid "Review"
207msgstr ""
193msgstr ""
208
194
209−#: Dash/Video/VideoPreview.qml:176
195+#: Dash/Previews/Reviews.qml:121
210−msgid "Author:"
196+msgid "Send"
197+msgstr ""
198+
199+#: Dash/Previews/Reviews.qml:139
200+msgid "Comments:"
211msgstr ""
201msgstr ""
212
202
213#: Greeter/Lockscreen.qml:142
203#: Greeter/Lockscreen.qml:142
@@ -247,7 +237,7 @@ msgstr ""
247msgid "Search"
237msgid "Search"
248msgstr ""
238msgstr ""
249
239
250−#: plugins/Unity/scope.cpp:336
240+#: plugins/Unity/scope.cpp:361
251msgid "Sorry, there is nothing that matches your search."
241msgid "Sorry, there is nothing that matches your search."
252msgstr ""
242msgstr ""
253
243
run_on_device+1−1
@@ -52,7 +52,7 @@ adb_root() {
52install_ssh_key() {
52install_ssh_key() {
53 ssh-keygen -R $TARGET_IP
53 ssh-keygen -R $TARGET_IP
54 HOME_DIR="${CHROOT_PREFIX}/home/phablet"
54 HOME_DIR="${CHROOT_PREFIX}/home/phablet"
55− adb push ~/.ssh/id_rsa.pub $HOME_DIR/.ssh/authorized_keys
55+ adb push ~/.ssh/phone_rsa.pub $HOME_DIR/.ssh/authorized_keys
56 adb shell chown $USER_ID:$USER_ID $HOME_DIR/.ssh
56 adb shell chown $USER_ID:$USER_ID $HOME_DIR/.ssh
57 adb shell chown $USER_ID:$USER_ID $HOME_DIR/.ssh/authorized_keys
57 adb shell chown $USER_ID:$USER_ID $HOME_DIR/.ssh/authorized_keys
58 adb shell chmod 700 $HOME_DIR/.ssh
58 adb shell chmod 700 $HOME_DIR/.ssh
tests/autopilot/unity8/shell/tests/__init__.py+13−4
@@ -183,10 +183,14 @@ class UnityTestCase(AutopilotTestCase):
183 def patch_lightdm_mock(self, mock_type='single'):
183 def patch_lightdm_mock(self, mock_type='single'):
184 self._lightdm_mock_type = mock_type
184 self._lightdm_mock_type = mock_type
185 logger.info("Setting up LightDM mock type '%s'", mock_type)
185 logger.info("Setting up LightDM mock type '%s'", mock_type)
186− new_ld_library_path = "%s:%s" % (
186+ new_ld_library_path = [
187 get_default_extra_mock_libraries(),
187 get_default_extra_mock_libraries(),
188 self._get_lightdm_mock_path(mock_type)
188 self._get_lightdm_mock_path(mock_type)
189− )
189+ ]
190+ if os.getenv('LD_LIBRARY_PATH') is not None:
191+ new_ld_library_path.append(os.getenv('LD_LIBRARY_PATH'))
192+
193+ new_ld_library_path = ':'.join(new_ld_library_path)
190 logger.info("New library path: %s", new_ld_library_path)
194 logger.info("New library path: %s", new_ld_library_path)
191
195
192 self.patch_environment('LD_LIBRARY_PATH', new_ld_library_path)
196 self.patch_environment('LD_LIBRARY_PATH', new_ld_library_path)
@@ -205,8 +209,13 @@ class UnityTestCase(AutopilotTestCase):
205 return lightdm_mock_path
209 return lightdm_mock_path
206
210
207 def _setup_extra_mock_environment_patch(self):
211 def _setup_extra_mock_environment_patch(self):
208− mocks_library_path = get_mocks_library_path()
212+ qml_import_path = [get_mocks_library_path()]
213+ if os.getenv('QML2_IMPORT_PATH') is not None:
214+ qml_import_path.append(os.getenv('QML2_IMPORT_PATH'))
215+
216+ qml_import_path = ':'.join(qml_import_path)
217+ logger.info("New QML2 import path: %s", qml_import_path)
209− self.patch_environment('QML2_IMPORT_PATH', mocks_library_path)
218+ self.patch_environment('QML2_IMPORT_PATH', qml_import_path)
210
219
211 def _set_proxy(self, proxy):
220 def _set_proxy(self, proxy):
212 """Keep a copy of the proxy object, so we can use it to get common
221 """Keep a copy of the proxy object, so we can use it to get common
tests/mocks/Unity/fake_scope.cpp−13
@@ -30,7 +30,6 @@ static DeeModel* create_results_model(unsigned category_count, unsigned result_c
30Scope::Scope(QObject* parent)
30Scope::Scope(QObject* parent)
31 : QObject(parent)
31 : QObject(parent)
32 , m_visible(false)
32 , m_visible(false)
33− , m_searching(false)
34 , m_categories(new Categories(this))
33 , m_categories(new Categories(this))
35 , m_results(new DeeListModel(this))
34 , m_results(new DeeListModel(this))
36{
35{
@@ -45,7 +44,6 @@ Scope::Scope(QString const& id, QString const& name, bool visible, QObject* pare
45 , m_id(id)
44 , m_id(id)
46 , m_name(name)
45 , m_name(name)
47 , m_visible(visible)
46 , m_visible(visible)
48− , m_searching(false)
49 , m_categories(new Categories(this))
47 , m_categories(new Categories(this))
50 , m_results(new DeeListModel(this))
48 , m_results(new DeeListModel(this))
51{
49{
@@ -87,10 +85,6 @@ bool Scope::connected() const {
87 return true;
85 return true;
88}
86}
89
87
90−bool Scope::searchInProgress() const {
91− return m_searching;
92−}
93−
94Categories* Scope::categories() const {
88Categories* Scope::categories() const {
95 return m_categories;
89 return m_categories;
96}
90}
@@ -128,13 +122,6 @@ void Scope::setFormFactor(const QString &str) {
128 }
122 }
129}
123}
130
124
131−void Scope::setSearchInProgress(const bool inProg) {
132− if (inProg != m_searching) {
133− m_searching = inProg;
134− Q_EMIT searchInProgressChanged();
135− }
136−}
137−
138void Scope::setNoResultsHint(const QString& str) {
125void Scope::setNoResultsHint(const QString& str) {
139 if (str != m_noResultsHint) {
126 if (str != m_noResultsHint) {
140 m_noResultsHint = str;
127 m_noResultsHint = str;
tests/mocks/Unity/fake_scope.h+1−5
@@ -37,7 +37,6 @@ class Scope : public QObject
37 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
37 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
38 Q_PROPERTY(Categories* categories READ categories NOTIFY categoriesChanged)
38 Q_PROPERTY(Categories* categories READ categories NOTIFY categoriesChanged)
39
39
40− Q_PROPERTY(bool searchInProgress READ searchInProgress WRITE setSearchInProgress NOTIFY searchInProgressChanged)
41 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
40 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
42 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
41 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
43 Q_PROPERTY(QString formFactor READ formFactor WRITE setFormFactor NOTIFY formFactorChanged)
42 Q_PROPERTY(QString formFactor READ formFactor WRITE setFormFactor NOTIFY formFactorChanged)
@@ -55,7 +54,6 @@ public:
55 bool visible() const;
54 bool visible() const;
56 QString shortcut() const;
55 QString shortcut() const;
57 bool connected() const;
56 bool connected() const;
58− bool searchInProgress() const;
59 Categories* categories() const;
57 Categories* categories() const;
60 QString searchQuery() const;
58 QString searchQuery() const;
61 QString noResultsHint() const;
59 QString noResultsHint() const;
@@ -66,7 +64,6 @@ public:
66 void setSearchQuery(const QString& search_query);
64 void setSearchQuery(const QString& search_query);
67 void setNoResultsHint(const QString& hint);
65 void setNoResultsHint(const QString& hint);
68 void setFormFactor(const QString& form_factor);
66 void setFormFactor(const QString& form_factor);
69− void setSearchInProgress(const bool inProg);
70
67
71 Q_INVOKABLE void activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
68 Q_INVOKABLE void activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
72 const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
69 const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
@@ -81,11 +78,11 @@ Q_SIGNALS:
81 void iconHintChanged(const QString&);
78 void iconHintChanged(const QString&);
82 void descriptionChanged(const QString&);
79 void descriptionChanged(const QString&);
83 void searchHintChanged(const QString&);
80 void searchHintChanged(const QString&);
84− void searchInProgressChanged();
85 void visibleChanged(bool);
81 void visibleChanged(bool);
86 void shortcutChanged(const QString&);
82 void shortcutChanged(const QString&);
87 void connectedChanged(bool);
83 void connectedChanged(bool);
88 void categoriesChanged();
84 void categoriesChanged();
85+ void searchFinished(const QString&);
89 void searchQueryChanged();
86 void searchQueryChanged();
90 void noResultsHintChanged();
87 void noResultsHintChanged();
91 void formFactorChanged();
88 void formFactorChanged();
@@ -106,7 +103,6 @@ protected:
106 QString m_noResultsHint;
103 QString m_noResultsHint;
107 QString m_formFactor;
104 QString m_formFactor;
108 bool m_visible;
105 bool m_visible;
109− bool m_searching;
110
106
111 Categories* m_categories;
107 Categories* m_categories;
112 DeeListModel* m_results;
108 DeeListModel* m_results;
tests/qmltests/Components/tst_PageHeader.qml−28
@@ -19,17 +19,12 @@ import QtTest 1.0
19import ".."
19import ".."
20import "../../../Components"
20import "../../../Components"
21import Ubuntu.Components 0.1
21import Ubuntu.Components 0.1
22−import Unity 0.1
23import Unity.Test 0.1 as UT
22import Unity.Test 0.1 as UT
24
23
25Item {
24Item {
26 width: units.gu(110)
25 width: units.gu(110)
27 height: units.gu(30)
26 height: units.gu(30)
28
27
29− Scope {
30− id: scopeMock
31− }
32−
33 UT.UnityTestCase {
28 UT.UnityTestCase {
34 name: "PageHeaderTest"
29 name: "PageHeaderTest"
35 when: windowShown
30 when: windowShown
@@ -137,27 +132,6 @@ Item {
137 compare(pageHeader.searchHistory.count, 3)
132 compare(pageHeader.searchHistory.count, 3)
138 compare(pageHeader.searchHistory.get(0).query, "humppa4")
133 compare(pageHeader.searchHistory.get(0).query, "humppa4")
139 }
134 }
140−
141− function test_search_indicator() {
142− var searchIndicator = findChild(pageHeader, "searchIndicator")
143− var primaryImage = findChild(pageHeader, "primaryImage")
144−
145− pageHeader.triggerSearch()
146−
147− scopeMock.searchInProgress = false
148− compare(searchIndicator.running, false, "Search indicator is running.")
149− tryCompare(primaryImage, "visible", true)
150−
151− scopeMock.searchInProgress = true
152− compare(searchIndicator.running, true, "Search indicator isn't running.")
153− tryCompare(primaryImage, "visible", false)
154−
155− pageHeader.resetSearch()
156− }
157−
158− function cleanup() {
159− scopeMock.searchInProgress = false
160− }
161 }
135 }
162
136
163 Column {
137 Column {
@@ -171,8 +145,6 @@ Item {
171 right: parent.right
145 right: parent.right
172 }
146 }
173
147
174− scope: scopeMock
175−
176 searchEntryEnabled: true
148 searchEntryEnabled: true
177 text: "%^$%^%^&%^&%^$%GHR%"
149 text: "%^$%^%^&%^&%^$%GHR%"
178 }
150 }
tests/qmltests/Dash/Apps/tst_AppPreview.qml+6−2
@@ -164,13 +164,15 @@ Item {
164 }
164 }
165
165
166 // TODO: Disabled as reviewing and commenting is currently disabled
166 // TODO: Disabled as reviewing and commenting is currently disabled
167−/* function test_send_review() {
167+ function test_send_review() {
168+ skip();
168 var appReviews = findChild(appPreview, "appReviews");
169 var appReviews = findChild(appPreview, "appReviews");
169 appReviews.sendReview("review");
170 appReviews.sendReview("review");
170 sendPreviewSpy.wait();
171 sendPreviewSpy.wait();
171 }
172 }
172
173
173 function test_review_focus() {
174 function test_review_focus() {
175+ skip();
174 var columnReviewRating = findChild(appPreview, "columnReviewRating");
176 var columnReviewRating = findChild(appPreview, "columnReviewRating");
175 columnReviewRating.visible = true;
177 columnReviewRating.visible = true;
176 var appReviews = findChild(appPreview, "appReviews");
178 var appReviews = findChild(appPreview, "appReviews");
@@ -187,6 +189,7 @@ Item {
187 }
189 }
188
190
189 function test_comments() {
191 function test_comments() {
192+ skip();
190 var commentsArea = findChild(appPreview, "commentsArea");
193 var commentsArea = findChild(appPreview, "commentsArea");
191 compare(commentsArea.count, 3);
194 compare(commentsArea.count, 3);
192 for(var i = 0; i < 3; i++) {
195 for(var i = 0; i < 3; i++) {
@@ -202,6 +205,7 @@ Item {
202 }
205 }
203
206
204 function test_negative_rating() {
207 function test_negative_rating() {
208+ skip();
205 data.rating = -1.0;
209 data.rating = -1.0;
206 var rated = findChild(appPreview, "reviewsLabel");
210 var rated = findChild(appPreview, "reviewsLabel");
207 verify(rated.visible == false);
211 verify(rated.visible == false);
@@ -214,6 +218,7 @@ Item {
214 }
218 }
215
219
216 function test_automatic_scroll_on_keyboard_shown() {
220 function test_automatic_scroll_on_keyboard_shown() {
221+ skip();
217 waitForRendering(appPreview);
222 waitForRendering(appPreview);
218 var appReviews = findChild(appPreview, "appReviews");
223 var appReviews = findChild(appPreview, "appReviews");
219 appReviews.visible = true;
224 appReviews.visible = true;
@@ -228,7 +233,6 @@ Item {
228 verify(newFlickPos < keyboardY);
233 verify(newFlickPos < keyboardY);
229 }
234 }
230
235
231−*/
232 function test_progress_show() {
236 function test_progress_show() {
233 appPreview.previewData = dataProgress;
237 appPreview.previewData = dataProgress;
234 var progress = findChild(appPreview, "progressBar");
238 var progress = findChild(appPreview, "progressBar");