151 |
153 |
152 QMetaObject::invokeMethod(obj, "setRootToParent"); |
154 QMetaObject::invokeMethod(obj, "setRootToParent"); |
153 QVERIFY(qvariant_cast<QModelIndex>(obj->rootIndex()) == QModelIndex()); |
155 QVERIFY(qvariant_cast<QModelIndex>(obj->rootIndex()) == QModelIndex()); |
154 |
156 |
155 delete obj; |
157 delete obj; |
|
158 } |
|
159 |
|
160 void tst_qdeclarativevisualdatamodel::updateLayout() |
|
161 { |
|
162 QDeclarativeView view; |
|
163 |
|
164 QStandardItemModel model; |
|
165 initStandardTreeModel(&model); |
|
166 |
|
167 view.rootContext()->setContextProperty("myModel", &model); |
|
168 |
|
169 view.setSource(QUrl::fromLocalFile(SRCDIR "/data/datalist.qml")); |
|
170 |
|
171 QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject()); |
|
172 QVERIFY(listview != 0); |
|
173 |
|
174 QDeclarativeItem *contentItem = listview->contentItem(); |
|
175 QVERIFY(contentItem != 0); |
|
176 |
|
177 QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "display", 0); |
|
178 QVERIFY(name); |
|
179 QCOMPARE(name->text(), QString("Row 1 Item")); |
|
180 name = findItem<QDeclarativeText>(contentItem, "display", 1); |
|
181 QVERIFY(name); |
|
182 QCOMPARE(name->text(), QString("Row 2 Item")); |
|
183 name = findItem<QDeclarativeText>(contentItem, "display", 2); |
|
184 QVERIFY(name); |
|
185 QCOMPARE(name->text(), QString("Row 3 Item")); |
|
186 |
|
187 model.invisibleRootItem()->sortChildren(0, Qt::DescendingOrder); |
|
188 |
|
189 name = findItem<QDeclarativeText>(contentItem, "display", 0); |
|
190 QVERIFY(name); |
|
191 QCOMPARE(name->text(), QString("Row 3 Item")); |
|
192 name = findItem<QDeclarativeText>(contentItem, "display", 1); |
|
193 QVERIFY(name); |
|
194 QCOMPARE(name->text(), QString("Row 2 Item")); |
|
195 name = findItem<QDeclarativeText>(contentItem, "display", 2); |
|
196 QVERIFY(name); |
|
197 QCOMPARE(name->text(), QString("Row 1 Item")); |
|
198 } |
|
199 |
|
200 void tst_qdeclarativevisualdatamodel::childChanged() |
|
201 { |
|
202 QDeclarativeView view; |
|
203 |
|
204 QStandardItemModel model; |
|
205 initStandardTreeModel(&model); |
|
206 |
|
207 view.rootContext()->setContextProperty("myModel", &model); |
|
208 |
|
209 view.setSource(QUrl::fromLocalFile(SRCDIR "/data/datalist.qml")); |
|
210 |
|
211 QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject()); |
|
212 QVERIFY(listview != 0); |
|
213 |
|
214 QDeclarativeItem *contentItem = listview->contentItem(); |
|
215 QVERIFY(contentItem != 0); |
|
216 |
|
217 QDeclarativeVisualDataModel *vdm = listview->findChild<QDeclarativeVisualDataModel*>("visualModel"); |
|
218 vdm->setRootIndex(QVariant::fromValue(model.indexFromItem(model.item(1,0)))); |
|
219 |
|
220 QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "display", 0); |
|
221 QVERIFY(name); |
|
222 QCOMPARE(name->text(), QString("Row 2 Child Item")); |
|
223 |
|
224 model.item(1,0)->child(0,0)->setText("Row 2 updated child"); |
|
225 |
|
226 name = findItem<QDeclarativeText>(contentItem, "display", 0); |
|
227 QVERIFY(name); |
|
228 QCOMPARE(name->text(), QString("Row 2 updated child")); |
|
229 |
|
230 model.item(1,0)->appendRow(new QStandardItem(QLatin1String("Row 2 Child Item 2"))); |
|
231 QTest::qWait(300); |
|
232 |
|
233 name = findItem<QDeclarativeText>(contentItem, "display", 1); |
|
234 QVERIFY(name != 0); |
|
235 QCOMPARE(name->text(), QString("Row 2 Child Item 2")); |
|
236 |
|
237 model.item(1,0)->takeRow(1); |
|
238 name = findItem<QDeclarativeText>(contentItem, "display", 1); |
|
239 QVERIFY(name == 0); |
|
240 |
|
241 vdm->setRootIndex(QVariant::fromValue(QModelIndex())); |
|
242 QTest::qWait(300); |
|
243 name = findItem<QDeclarativeText>(contentItem, "display", 0); |
|
244 QVERIFY(name); |
|
245 QCOMPARE(name->text(), QString("Row 1 Item")); |
|
246 name = findItem<QDeclarativeText>(contentItem, "display", 1); |
|
247 QVERIFY(name); |
|
248 QCOMPARE(name->text(), QString("Row 2 Item")); |
|
249 name = findItem<QDeclarativeText>(contentItem, "display", 2); |
|
250 QVERIFY(name); |
|
251 QCOMPARE(name->text(), QString("Row 3 Item")); |
156 } |
252 } |
157 |
253 |
158 void tst_qdeclarativevisualdatamodel::objectListModel() |
254 void tst_qdeclarativevisualdatamodel::objectListModel() |
159 { |
255 { |
160 QDeclarativeView view; |
256 QDeclarativeView view; |