on xenial help sign in
Add PreviewImage
commitd046bb6cde7f7a2e46eaf218faed0012a05595a6 authorAndrea Cimitan <andrea.cimitan@gmail.com> dateWed 12 Feb 2014, 15:14 (13 years ago) parent3f4295ce067065
6 files changed+105−4
qml/Dash/Previews/PreviewWidgetFactory.qml+1 qml/Dash/Previews/PreviewZoomableImage.qml+41 tests/qmltests/CMakeLists.txt+1 tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+2−2 tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+3−2 tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+57
qml/Dash/Previews/PreviewWidgetFactory.qml+1
@@ -46,6 +46,7 @@ Loader {
4646 case "audio": return "PreviewAudioPlayback.qml";
4747 case "gallery": return "PreviewImageGallery.qml";
4848 case "header": return "PreviewHeader.qml";
49+ case "image": return "PreviewZoomableImage.qml"
4950 case "text": return "PreviewTextSummary.qml";
5051 default: return "";
5152 }
qml/Dash/Previews/PreviewZoomableImage.qmlnew file+41
@@ -0,0 +1,41 @@
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 Ubuntu.Components 0.1
19+import "../../Components"
20+
21+/*! \brief Preview widget for image.
22+
23+ This widget shows image contained in widgetData["source"],
24+ can be zoomable accordingly with widgetData["zoomable"].
25+ */
26+
27+PreviewWidget {
28+ id: root
29+ implicitHeight: units.gu(22)
30+
31+ LazyImage {
32+ objectName: "image"
33+ anchors {
34+ top: parent.top
35+ bottom: parent.bottom
36+ }
37+ scaleTo: "height"
38+ source: widgetData["source"]
39+ initialWidth: units.gu(13)
40+ }
41+}
tests/qmltests/CMakeLists.txt+1
@@ -62,6 +62,7 @@ add_qml_test(Dash/Previews PreviewAudioPlayback IMPORT_PATHS ${qmltest_DEFAULT_I
6262add_qml_test(Dash/Previews PreviewImageGallery IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
6363add_qml_test(Dash/Previews PreviewHeader IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
6464add_qml_test(Dash/Previews PreviewTextSummary IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
65+add_qml_test(Dash/Previews PreviewZoomableImage IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
6566add_qml_test(Greeter Lockscreen IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS}
6667 PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
6768add_qml_test(Greeter Tablet IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS}
tests/qmltests/Dash/Previews/tst_PreviewImageGallery.qml+2−2
@@ -23,7 +23,7 @@ Rectangle {
2323 id: root
2424 width: units.gu(60)
2525 height: units.gu(80)
26− color: "grey"
26+ color: "lightgrey"
2727
2828 property var sourcesModel0: {
2929 "sources": []
@@ -44,7 +44,7 @@ Rectangle {
4444 }
4545
4646 UT.UnityTestCase {
47− name: "ImageGalleryTest"
47+ name: "PreviewImageGalleryTest"
4848 when: windowShown
4949
5050 function test_changeEmptyModel() {
tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+3−2
@@ -75,11 +75,12 @@ Rectangle {
7575
7676 function test_mapping_data() {
7777 return [
78+ { tag: "Actions", type: "actions", source: "PreviewActions.qml" },
7879 { tag: "Audio", type: "audio", source: "PreviewAudioPlayback.qml" },
79− { tag: "Text", type: "text", source: "PreviewTextSummary.qml" },
8080 { tag: "Gallery", type: "gallery", source: "PreviewImageGallery.qml" },
81− { tag: "Actions", type: "actions", source: "PreviewActions.qml" },
8281 { tag: "Header", type: "header", source: "PreviewHeader.qml" },
82+ { tag: "Image", type: "image", source: "PreviewZoomableImage.qml" },
83+ { tag: "Text", type: "text", source: "PreviewTextSummary.qml" },
8384 ];
8485 }
8586
tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qmlnew file+57
@@ -0,0 +1,57 @@
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(40)
25+ height: units.gu(80)
26+ color: "lightgrey"
27+
28+ property var widgetData0: {
29+ "source": ""
30+ }
31+
32+ property var widgetData1: {
33+ "source": "../../graphics/phone_background.jpg",
34+ "zoomable": false
35+ }
36+
37+ PreviewZoomableImage {
38+ id: zoomableImage
39+ width: parent.width
40+ widgetData: widgetData1
41+ }
42+
43+ UT.UnityTestCase {
44+ name: "PreviewZoomableImageTest"
45+ when: windowShown
46+
47+ function test_loadImage() {
48+ var image = findChild(zoomableImage, "image");
49+
50+ zoomableImage.widgetData = widgetData0;
51+ tryCompare(image.state, "default");
52+
53+ zoomableImage.widgetData = widgetData1;
54+ tryCompare(image.state, "ready");
55+ }
56+ }
57+}