@@ -120,13 +120,26 @@ Rectangle {
120 "widgets": widgetsModel
120 "widgets": widgetsModel
123+ property var widgetData1: {
124+ "title": "Title here1",
125+ "collapsed-widgets": 2,
126+ "widgets": widgetsModel,
130+ property var widgetData2: {
131+ "title": "Title here2",
132+ "collapsed-widgets": 2,
133+ "widgets": widgetsModel,
123 property var allWidgetsData: {
137 property var allWidgetsData: {
124 "title": "Title here",
138 "title": "Title here",
125 "collapsed-widgets": 0,
139 "collapsed-widgets": 0,
126 "widgets": allWidgetsModel
140 "widgets": allWidgetsModel
130 Component.onCompleted: {
143 Component.onCompleted: {
131 widgetsModel.append({"type": "text", "widgetId": "text1", "properties": { "text": longText }});
144 widgetsModel.append({"type": "text", "widgetId": "text1", "properties": { "text": longText }});
132 widgetsModel.append({"type": "table", "widgetId": "table1", "properties": tableData });
145 widgetsModel.append({"type": "table", "widgetId": "table1", "properties": tableData });
@@ -160,8 +173,22 @@ Rectangle {
162 PreviewWidgetFactory {
175 PreviewWidgetFactory {
163− id: previewWidgetFactory
176+ id: previewExpandable1
164 anchors { left: parent.left; right: parent.right; top: previewExpandable.bottom }
177 anchors { left: parent.left; right: parent.right; top: previewExpandable.bottom }
178+ widgetType: "expandable"
179+ widgetData: root.widgetData1
182+ PreviewWidgetFactory {
183+ id: previewExpandable2
184+ anchors { left: parent.left; right: parent.right; top: previewExpandable1.bottom }
185+ widgetType: "expandable"
186+ widgetData: root.widgetData2
189+ PreviewWidgetFactory {
190+ id: previewWidgetFactory
191+ anchors { left: parent.left; right: parent.right; top: previewExpandable2.bottom }
165 opacity: 0
192 opacity: 0
@@ -185,6 +212,8 @@ Rectangle {
187 function init() {
214 function init() {
215+ previewExpandable.widgetType = "";
216+ previewExpandable.widgetType = "expandable";
188 previewExpandable.widgetData = widgetData;
217 previewExpandable.widgetData = widgetData;
189 checkInitialState();
218 checkInitialState();
@@ -210,6 +239,66 @@ Rectangle {
210 checkInitialState();
239 checkInitialState();
242+ function test_expand_collapse_when_assigned() {
243+ previewExpandable.widgetData = widgetData1;
245+ var repeater = findChild(previewExpandable, "repeater")
246+ compare(repeater.count, 4)
248+ compare (repeater.itemAt(0).visible, true);
249+ compare (repeater.itemAt(1).visible, true);
250+ compare (repeater.itemAt(2).visible, true);
251+ compare (repeater.itemAt(3).visible, true);
252+ compare (repeater.itemAt(0).expanded, true);
253+ compare (repeater.itemAt(1).expanded, true);
254+ compare (repeater.itemAt(2).expanded, true);
255+ compare (repeater.itemAt(3).expanded, true);
258+ function test_collapsed_when_assigned() {
259+ previewExpandable.widgetData = widgetData2;
261+ var repeater = findChild(previewExpandable, "repeater")
262+ compare(repeater.count, 4)
264+ compare (repeater.itemAt(0).visible, true);
265+ compare (repeater.itemAt(1).visible, true);
266+ compare (repeater.itemAt(2).visible, false);
267+ compare (repeater.itemAt(3).visible, false);
268+ compare (repeater.itemAt(0).expanded, false);
269+ compare (repeater.itemAt(1).expanded, false);
270+ compare (repeater.itemAt(2).expanded, false);
271+ compare (repeater.itemAt(3).expanded, false);
274+ function test_expand_when_initialized() {
275+ var repeater = findChild(previewExpandable1, "repeater")
276+ compare(repeater.count, 4)
278+ compare (repeater.itemAt(0).visible, true);
279+ compare (repeater.itemAt(1).visible, true);
280+ compare (repeater.itemAt(2).visible, true);
281+ compare (repeater.itemAt(3).visible, true);
282+ compare (repeater.itemAt(0).expanded, true);
283+ compare (repeater.itemAt(1).expanded, true);
284+ compare (repeater.itemAt(2).expanded, true);
285+ compare (repeater.itemAt(3).expanded, true);
288+ function test_collapse_when_initialized() {
289+ var repeater = findChild(previewExpandable2, "repeater")
290+ compare(repeater.count, 4)
292+ compare (repeater.itemAt(0).visible, true);
293+ compare (repeater.itemAt(1).visible, true);
294+ compare (repeater.itemAt(2).visible, false);
295+ compare (repeater.itemAt(3).visible, false);
296+ compare (repeater.itemAt(0).expanded, false);
297+ compare (repeater.itemAt(1).expanded, false);
298+ compare (repeater.itemAt(2).expanded, false);
299+ compare (repeater.itemAt(3).expanded, false);
213 function test_all_widgets_height() {
302 function test_all_widgets_height() {
214 previewExpandable.widgetData = allWidgetsData;
303 previewExpandable.widgetData = allWidgetsData;