on xenial help sign in
Better implement interface
commit24ebe8399ec756a78dc3429d0b2b475ae4fe8038 authorAndrea Cimitan <andrea.cimitan@gmail.com> dateFri 31 Jan 2014, 12:06 (13 years ago) parent2cf5d17
3 files changed+32−25
qml/Dash/Previews/AudioPlayer.qml+4−4 qml/Dash/Previews/PreviewWidget.qml+7−1 tests/qmltests/Dash/Previews/tst_AudioPlayer.qml+21−20
qml/Dash/Previews/AudioPlayer.qml+4−4
@@ -20,11 +20,11 @@ import Ubuntu.Components 0.1
2020import Ubuntu.Components.ListItems 0.1
2121
2222PreviewWidget {
23+ id: root
24+
2325 implicitHeight: childrenRect.height
2426
25− function stop() {
26− audio.stop()
27− }
27+ onFocusedChanged: if (!focused) audio.stop()
2828
2929 Audio {
3030 id: audio
@@ -48,7 +48,7 @@ PreviewWidget {
4848 id: trackRepeater
4949 objectName: "trackRepeater"
5050
51− model: data
51+ model: root.widgetData["tracks"]
5252
5353 delegate: Item {
5454 id: trackItem
qml/Dash/Previews/PreviewWidget.qml+7−1
@@ -16,6 +16,12 @@
1616
1717import QtQuick 2.0
1818
19+/*! \brief Interface for preview widgets. */
20+
1921Item {
20− property var data
22+ /// type:bool \brief Specifies the preview widget being focused or not
23+ property bool focused: true
24+
25+ /// Variable used to contain widget's data
26+ property var widgetData
2127}
tests/qmltests/Dash/Previews/tst_AudioPlayer.qml+21−20
@@ -27,23 +27,24 @@ Rectangle {
2727 height: units.gu(80)
2828 color: "grey"
2929
30− property var tracksModel0: [
31− ]
30+ property var tracksModel0: {
31+ "tracks": [ ]
32+ }
3233
33− property var tracksModel1: [
34− { title: "Some track name", length: "30", source: "../../tests/qmltests/Dash/Music/data/testsound1.ogg" }
35− ]
34+ property var tracksModel1: {
35+ "tracks": [ { title: "Some track name", length: "30", source: "../../tests/qmltests/Dash/Music/data/testsound1.ogg" } ]
36+ }
3637
37− property var tracksModel2: [
38− { title: "Some track name", length: "30", source: "../../tests/qmltests/Dash/Music/data/testsound1.ogg" },
39− { title: "Some other track name", subtitle: "Subtitle", length: "83", source: "../../tests/qmltests/Dash/Music/data/testsound2.ogg" },
40− { title: "And another one", length: "7425", source: "../../tests/qmltests/Dash/Music/data/testsound3.ogg" }
41− ]
38+ property var tracksModel2: {
39+ "tracks": [ { title: "Some track name", length: "30", source: "../../tests/qmltests/Dash/Music/data/testsound1.ogg" },
40+ { title: "Some other track name", subtitle: "Subtitle", length: "83", source: "../../tests/qmltests/Dash/Music/data/testsound2.ogg" },
41+ { title: "And another one", length: "7425", source: "../../tests/qmltests/Dash/Music/data/testsound3.ogg" } ]
42+ }
4243
4344 AudioPlayer {
4445 id: audioPlayer
4546 anchors.fill: parent
46− data: tracksModel2
47+ widgetData: tracksModel2
4748 }
4849
4950 UT.UnityTestCase {
@@ -63,19 +64,19 @@ Rectangle {
6364 }
6465
6566 function test_tracks(data) {
66− audioPlayer.data = data.tracksModel;
67+ audioPlayer.widgetData = data.tracksModel;
6768 waitForRendering(audioPlayer);
6869
6970 var trackRepeater = findChild(audioPlayer, "trackRepeater");
70− compare(trackRepeater.count, data.tracksModel.length)
71+ compare(trackRepeater.count, data.tracksModel["tracks"].length)
7172
72− for (var i = 0; i < data.tracksModel.length; ++i) {
73+ for (var i = 0; i < data.tracksModel["tracks"].length; ++i) {
7374 var trackItem = findChild(audioPlayer, "trackItem" + i);
7475 var titleLabel = findChild(trackItem, "trackTitleLabel");
75− compare(titleLabel.text, data.tracksModel[i]["title"])
76+ compare(titleLabel.text, data.tracksModel["tracks"][i]["title"])
7677 var subtitleLabel = findChild(trackItem, "trackSubtitleLabel");
77− if (data.tracksModel[i]["subtitle"] !== undefined) {
78− compare(subtitleLabel.text, data.tracksModel[i]["subtitle"])
78+ if (data.tracksModel["tracks"][i]["subtitle"] !== undefined) {
79+ compare(subtitleLabel.text, data.tracksModel["tracks"][i]["subtitle"])
7980 } else {
8081 compare(subtitleLabel.visible, false)
8182 }
@@ -84,14 +85,14 @@ Rectangle {
8485 }
8586
8687 function checkPlayerSource(index) {
87− var modelFilename = audioPlayer.data[index]["source"].replace(/^.*[\\\/]/, '');
88+ var modelFilename = audioPlayer.widgetData["tracks"][index]["source"].replace(/^.*[\\\/]/, '');
8889 var playerFilename = findInvisibleChild(audioPlayer, "audio").source.toString().replace(/^.*[\\\/]/, '');
8990
9091 compare(modelFilename, playerFilename, "Player source is not set correctly.");
9192 }
9293
9394 function test_playback() {
94− audioPlayer.data = tracksModel2;
95+ audioPlayer.widgetData = tracksModel2;
9596 waitForRendering(audioPlayer);
9697
9798 var track0Item = findChild(audioPlayer, "trackItem0");
@@ -155,7 +156,7 @@ Rectangle {
155156 tryCompare(track2ProgressBar, "visible", true);
156157
157158 // Calling stop() should make all players shut up!
158− audioPlayer.stop()
159+ audioPlayer.focused = false
159160 tryCompare(audio, "playbackState", Audio.StoppedState);
160161 }
161162 }