on xenial help sign in
PreviewImageGallery
commit023ec207d240f24ca6ce4effeb9b71853cdfe256 authorAlbert Astals <albert.astals@canonical.com> dateWed 5 Feb 2014, 09:48 (13 years ago) parentd5d4958
3 files changed+116
qml/Dash/Previews/PreviewImageGallery.qml+59 tests/qmltests/CMakeLists.txt+1 tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+56
qml/Dash/Previews/PreviewImageGallery.qmlnew file+59
@@ -0,0 +1,59 @@
1+/*
2+ * Copyright (C) 2014 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 "../../Components"
19+
20+/*! This preview widget shows an horizontal list of
21+ images. The URIs for the images should be an
22+ array in widgetData["sources"]
23+*/
24+
25+PreviewWidget {
26+ id: root
27+ implicitHeight: units.gu(22)
28+
29+ ListView {
30+ id: previewImageListView
31+ spacing: units.gu(1)
32+ anchors.fill: parent
33+ orientation: ListView.Horizontal
34+ cacheBuffer: width * 3
35+ model: root.widgetData["sources"]
36+
37+ LazyImage {
38+ objectName: "placeholderScreenshot"
39+ anchors {
40+ top: parent.top
41+ bottom: parent.bottom
42+ }
43+ scaleTo: "height"
44+ source: "broken_image"
45+ initialWidth: units.gu(13)
46+ visible: previewImageListView.count == 0
47+ }
48+
49+ delegate: LazyImage {
50+ anchors {
51+ top: parent.top
52+ bottom: parent.bottom
53+ }
54+ source: modelData ? modelData : ""
55+ scaleTo: "height"
56+ initialWidth: units.gu(13)
57+ }
58+ }
59+}
tests/qmltests/CMakeLists.txt+1
@@ -55,6 +55,7 @@ add_qml_test(Dash/Apps AppPreview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} $
5555add_qml_test(Dash/Movie MoviePreview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
5656add_qml_test(Dash/Music MusicPreview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
5757add_qml_test(Dash/Previews PreviewAudioPlayback IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
58+add_qml_test(Dash/Previews PreviewImageGallery IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
5859add_qml_test(Dash/Previews PreviewTextSummary IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
5960add_qml_test(Greeter Lockscreen IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS}
6061 PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qmlnew file+56
@@ -0,0 +1,56 @@
1+/*
2+ * Copyright 2014 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 QtTest 1.0
19+import "../../../../qml/Dash/Previews"
20+import Unity.Test 0.1 as UT
21+
22+Rectangle {
23+ id: root
24+ width: units.gu(60)
25+ height: units.gu(80)
26+ color: "grey"
27+
28+ property var sourcesModel0: {
29+ "sources": []
30+ }
31+
32+ property var sourcesModel1: {
33+ "sources": [
34+ "../../graphics/phone_background.jpg",
35+ "../../graphics/tablet_background.jpg",
36+ "../../graphics/clock@18.png"
37+ ]
38+ }
39+
40+ PreviewImageGallery {
41+ id: imageGallery
42+ width: parent.width
43+ widgetData: sourcesModel1
44+ }
45+
46+ UT.UnityTestCase {
47+ name: "ImageGalleryTest"
48+ when: windowShown
49+
50+ function test_changeEmptyModel() {
51+ imageGallery.widgetData = sourcesModel0;
52+ var placeholderScreenshot = findChild(imageGallery, "placeholderScreenshot");
53+ compare(placeholderScreenshot.visible, true);
54+ }
55+ }
56+}