2 * Copyright (C) 2013 Canonical, Ltd.
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.
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.
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/>.
17#include "listviewwithpageheader.h"
19#include <QAbstractItemModel>
23#include <private/qquicklistmodel_p.h>
24#include <private/qquickanimation_p.h>
25#include <private/qquickitem_p.h>
27class ListViewWithPageHeaderTest : public QObject
39 view = new QQuickView();
40 view->engine()->addImportPath(BUILT_PLUGINS_DIR);
41 view->setSource(QUrl::fromLocalFile(LISTVIEWWITHPAGEHEADER_FOLDER "/test.qml"));
42 lvwph = dynamic_cast<ListViewWithPageHeader*>(view->rootObject()->findChild<QQuickFlickable*>());
43 model = view->rootObject()->findChild<QQuickListModel*>();
44 otherDelegate = view->rootObject()->findChild<QQmlComponent*>();
47 QVERIFY(otherDelegate);
49 QTest::qWaitForWindowExposed(view);
57 void verifyItem(int visibleIndex, qreal pos, qreal height, bool culled)
59 ListViewWithPageHeader::ListItem *item = lvwph->m_visibleItems[visibleIndex];
60 QTRY_COMPARE(item->y(), pos);
61 QTRY_COMPARE(item->height(), height);
62 QCOMPARE(QQuickItemPrivate::get(item->m_item)->culled, culled);
65 void changeContentY(qreal change)
67 const qreal dest = lvwph->contentY() + change;
68 if (dest > lvwph->contentY()) {
69 const qreal jump = 25;
70 while (lvwph->contentY() + jump < dest) {
71 lvwph->QQuickFlickable::setContentY(lvwph->contentY() + jump);
75 const qreal jump = -25;
76 while (lvwph->contentY() + jump > dest) {
77 lvwph->QQuickFlickable::setContentY(lvwph->contentY() + jump);
81 lvwph->QQuickFlickable::setContentY(dest);
87 const qreal jump = -25;
88 while (!lvwph->isAtYBeginning()) {
89 if (lvwph->contentY() + jump > -lvwph->minYExtent()) {
90 lvwph->QQuickFlickable::setContentY(lvwph->contentY() + jump);
92 lvwph->QQuickFlickable::setContentY(lvwph->contentY() - 1);
100 const qreal jump = 25;
101 while (!lvwph->isAtYEnd()) {
102 if (lvwph->contentY() + lvwph->height() + jump < lvwph->contentHeight()) {
103 lvwph->QQuickFlickable::setContentY(lvwph->contentY() + jump);
105 lvwph->QQuickFlickable::setContentY(lvwph->contentY() + 1);
111 void testCreationDeletion()
113 // Nothing, init/cleanup already tests this
116 void testInitialLayout()
118 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
119 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
120 verifyItem(0, 50., 150., false);
121 verifyItem(1, 200., 200., false);
122 verifyItem(2, 400., 350., false);
123 verifyItem(3, 750., 350., true);
124 QCOMPARE(lvwph->m_minYExtent, 0.);
125 QCOMPARE(lvwph->m_clipItem->y(), 0.);
126 QCOMPARE(lvwph->m_clipItem->clip(), false);
127 QCOMPARE(lvwph->m_headerItem->y(), 0.);
128 QCOMPARE(lvwph->m_headerItem->height(), 50.);
129 QCOMPARE(lvwph->contentY(), 0.);
130 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
133 void testDrag1PixelUp()
135 lvwph->QQuickFlickable::setContentY(lvwph->contentY() + 1);
136 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
137 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
138 verifyItem(0, 49., 150., false);
139 verifyItem(1, 199., 200., false);
140 verifyItem(2, 399., 350., false);
141 verifyItem(3, 749., 350., true);
142 QCOMPARE(lvwph->m_minYExtent, 0.);
143 QCOMPARE(lvwph->m_clipItem->y(), 1.);
144 QCOMPARE(lvwph->m_clipItem->clip(), false);
145 QCOMPARE(lvwph->m_headerItem->y(), 0.);
146 QCOMPARE(lvwph->m_headerItem->height(), 50.);
147 QCOMPARE(lvwph->contentY(), 1.);
148 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
151 void testHeaderDetachDragDown()
153 QTest::mousePress(view, Qt::LeftButton, Qt::NoModifier, QPoint(0, 0));
155 QTest::mouseMove(view, QPoint(0, 5));
157 QTest::mouseMove(view, QPoint(0, 10));
159 QTest::mouseMove(view, QPoint(0, 15));
161 QTest::mouseMove(view, QPoint(0, 20));
163 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
164 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
165 verifyItem(0, 55., 150., false);
166 verifyItem(1, 205., 200., false);
167 verifyItem(2, 405., 350., false);
168 verifyItem(3, 755., 350., true);
169 QCOMPARE(lvwph->m_minYExtent, 0.);
170 QCOMPARE(lvwph->m_clipItem->y(), -5.);
171 QCOMPARE(lvwph->m_clipItem->clip(), false);
172 QCOMPARE(lvwph->m_headerItem->y(), -5.);
173 QCOMPARE(lvwph->m_headerItem->height(), 50.);
174 QCOMPARE(lvwph->contentY(), -5.);
175 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
177 QTest::mouseRelease(view, Qt::LeftButton, Qt::NoModifier, QPoint(0, 15));
179 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
180 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
181 verifyItem(0, 50., 150., false);
182 verifyItem(1, 200., 200., false);
183 verifyItem(2, 400., 350., false);
184 verifyItem(3, 750., 350., true);
185 QCOMPARE(lvwph->m_minYExtent, 0.);
186 QCOMPARE(lvwph->m_clipItem->y(), 0.);
187 QCOMPARE(lvwph->m_clipItem->clip(), false);
188 QCOMPARE(lvwph->m_headerItem->y(), 0.);
189 QCOMPARE(lvwph->m_headerItem->height(), 50.);
190 QCOMPARE(lvwph->contentY(), 0.);
191 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
194 void testDrag375PixelUp()
197 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
198 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
199 verifyItem(0, -325., 150., true);
200 verifyItem(1, -175, 200., false);
201 verifyItem(2, 25, 350., false);
202 verifyItem(3, 375, 350., false);
203 verifyItem(4, 725, 350., true);
204 QCOMPARE(lvwph->m_minYExtent, 0.);
205 QCOMPARE(lvwph->m_clipItem->y(), 375.);
206 QCOMPARE(lvwph->m_clipItem->clip(), false);
207 QCOMPARE(lvwph->m_headerItem->y(), 0.);
208 QCOMPARE(lvwph->m_headerItem->height(), 50.);
209 QCOMPARE(lvwph->contentY(), 375.);
210 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
213 void testDrag520PixelUp()
216 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
217 QCOMPARE(lvwph->m_firstVisibleIndex, 1);
218 verifyItem(0, -320., 200., true);
219 verifyItem(1, -120, 350., false);
220 verifyItem(2, 230, 350., false);
221 verifyItem(3, 580, 350., true);
222 QCOMPARE(lvwph->m_minYExtent, 0.);
223 QCOMPARE(lvwph->m_clipItem->y(), 520.);
224 QCOMPARE(lvwph->m_clipItem->clip(), false);
225 QCOMPARE(lvwph->m_headerItem->y(), 0.);
226 QCOMPARE(lvwph->m_headerItem->height(), 50.);
227 QCOMPARE(lvwph->contentY(), 520.);
228 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
231 void testDragHeaderUpThenShow()
234 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
235 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
236 verifyItem(0, -70., 150., false);
237 verifyItem(1, 80., 200., false);
238 verifyItem(2, 280., 350., false);
239 verifyItem(3, 630., 350., true);
240 QCOMPARE(lvwph->m_minYExtent, 0.);
241 QCOMPARE(lvwph->m_clipItem->y(), 120.);
242 QCOMPARE(lvwph->m_clipItem->clip(), false);
243 QCOMPARE(lvwph->m_headerItem->y(), 0.);
244 QCOMPARE(lvwph->m_headerItem->height(), 50.);
245 QCOMPARE(lvwph->contentY(), 120.);
246 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
249 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
250 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
251 verifyItem(0, -70., 150., false);
252 verifyItem(1, 80., 200., false);
253 verifyItem(2, 280., 350., false);
254 verifyItem(3, 630., 350., true);
255 QCOMPARE(lvwph->m_minYExtent, 0.);
256 QCOMPARE(lvwph->m_clipItem->y(), 120.);
257 QCOMPARE(lvwph->m_clipItem->clip(), true);
258 QTRY_COMPARE(lvwph->m_headerItem->y(), 70.);
259 QCOMPARE(lvwph->m_headerItem->height(), 50.);
260 QCOMPARE(lvwph->contentY(), 90.);
261 QCOMPARE(lvwph->m_headerItemShownHeight, 30.);
264 void testDragHeaderUpThenShowWithoutHidingTotally()
267 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
268 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
269 verifyItem(0, 40., 150., false);
270 verifyItem(1, 190., 200., false);
271 verifyItem(2, 390., 350., false);
272 verifyItem(3, 740., 350., true);
273 QCOMPARE(lvwph->m_minYExtent, 0.);
274 QCOMPARE(lvwph->m_clipItem->y(), 10.);
275 QCOMPARE(lvwph->m_clipItem->clip(), false);
276 QCOMPARE(lvwph->m_headerItem->y(), 0.);
277 QCOMPARE(lvwph->m_headerItem->height(), 50.);
278 QCOMPARE(lvwph->contentY(), 10.);
279 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
283 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
284 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
285 verifyItem(0, 41., 150., false);
286 verifyItem(1, 191., 200., false);
287 verifyItem(2, 391., 350., false);
288 verifyItem(3, 741., 350., true);
289 QCOMPARE(lvwph->m_minYExtent, 0.);
290 QCOMPARE(lvwph->m_clipItem->y(), 9.);
291 QCOMPARE(lvwph->m_clipItem->clip(), false);
292 QTRY_COMPARE(lvwph->m_headerItem->y(), 0.);
293 QCOMPARE(lvwph->m_headerItem->height(), 50.);
294 QCOMPARE(lvwph->contentY(), 9.);
295 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
298 void testPositionAtBeginningIndex0Visible()
301 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
302 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
303 verifyItem(0, -325., 150., true);
304 verifyItem(1, -175, 200., false);
305 verifyItem(2, 25, 350., false);
306 verifyItem(3, 375, 350., false);
307 verifyItem(4, 725, 350., true);
308 QCOMPARE(lvwph->m_minYExtent, 0.);
309 QCOMPARE(lvwph->m_clipItem->y(), 375.);
310 QCOMPARE(lvwph->m_clipItem->clip(), false);
311 QCOMPARE(lvwph->m_headerItem->y(), 0.);
312 QCOMPARE(lvwph->m_headerItem->height(), 50.);
313 QCOMPARE(lvwph->contentY(), 375.);
314 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
316 lvwph->positionAtBeginning();
318 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
319 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
320 verifyItem(0, 50., 150., false);
321 verifyItem(1, 200., 200., false);
322 verifyItem(2, 400., 350., false);
323 verifyItem(3, 750., 350., true);
324 QCOMPARE(lvwph->m_minYExtent, 0.);
325 QCOMPARE(lvwph->m_clipItem->y(), 0.);
326 QCOMPARE(lvwph->m_clipItem->clip(), false);
327 QCOMPARE(lvwph->m_headerItem->y(), 0.);
328 QCOMPARE(lvwph->m_headerItem->height(), 50.);
329 QCOMPARE(lvwph->contentY(), 0.);
330 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
333 void testPositionAtBeginningIndex0NotVisible()
336 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
337 QCOMPARE(lvwph->m_firstVisibleIndex, 1);
338 verifyItem(0, -320., 200., true);
339 verifyItem(1, -120, 350., false);
340 verifyItem(2, 230, 350., false);
341 verifyItem(3, 580, 350., true);
342 QCOMPARE(lvwph->m_minYExtent, 0.);
343 QCOMPARE(lvwph->m_clipItem->y(), 520.);
344 QCOMPARE(lvwph->m_clipItem->clip(), false);
345 QCOMPARE(lvwph->m_headerItem->y(), 0.);
346 QCOMPARE(lvwph->m_headerItem->height(), 50.);
347 QCOMPARE(lvwph->contentY(), 520.);
348 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
350 lvwph->positionAtBeginning();
352 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
353 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
354 verifyItem(0, 50., 150., false);
355 verifyItem(1, 200., 200., false);
356 verifyItem(2, 400., 350., false);
357 verifyItem(3, 750., 350., true);
358 QCOMPARE(lvwph->m_minYExtent, 0.);
359 QCOMPARE(lvwph->m_clipItem->y(), 0.);
360 QCOMPARE(lvwph->m_clipItem->clip(), false);
361 QCOMPARE(lvwph->m_headerItem->y(), 0.);
362 QCOMPARE(lvwph->m_headerItem->height(), 50.);
363 QCOMPARE(lvwph->contentY(), 0.);
364 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
367 void testIndex0GrowOnScreen()
369 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
370 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
371 verifyItem(0, 50., 150., false);
372 verifyItem(1, 200., 200., false);
373 verifyItem(2, 400., 350., false);
374 verifyItem(3, 750., 350., true);
375 QCOMPARE(lvwph->m_minYExtent, 0.);
376 QCOMPARE(lvwph->m_clipItem->y(), 0.);
377 QCOMPARE(lvwph->m_clipItem->clip(), false);
378 QCOMPARE(lvwph->m_headerItem->y(), 0.);
379 QCOMPARE(lvwph->m_headerItem->height(), 50.);
380 QCOMPARE(lvwph->contentY(), 0.);
381 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
383 model->setProperty(0, "size", 400);
385 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
386 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
387 verifyItem(0, 50., 400., false);
388 verifyItem(1, 450., 200., false);
389 verifyItem(2, 650., 350., true);
390 QCOMPARE(lvwph->m_minYExtent, 0.);
391 QCOMPARE(lvwph->m_clipItem->y(), 0.);
392 QCOMPARE(lvwph->m_clipItem->clip(), false);
393 QCOMPARE(lvwph->m_headerItem->y(), 0.);
394 QCOMPARE(lvwph->m_headerItem->height(), 50.);
395 QCOMPARE(lvwph->contentY(), 0.);
396 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
399 void testIndex0GrowOffScreen()
402 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
403 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
404 verifyItem(0, -325., 150., true);
405 verifyItem(1, -175, 200., false);
406 verifyItem(2, 25, 350., false);
407 verifyItem(3, 375, 350., false);
408 verifyItem(4, 725, 350., true);
409 QCOMPARE(lvwph->m_minYExtent, 0.);
410 QCOMPARE(lvwph->m_clipItem->y(), 375.);
411 QCOMPARE(lvwph->m_clipItem->clip(), false);
412 QCOMPARE(lvwph->m_headerItem->y(), 0.);
413 QCOMPARE(lvwph->m_headerItem->height(), 50.);
414 QCOMPARE(lvwph->contentY(), 375.);
415 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
417 model->setProperty(0, "size", 400);
419 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
420 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
421 verifyItem(0, -575., 400., true);
422 verifyItem(1, -175, 200., false);
423 verifyItem(2, 25, 350., false);
424 verifyItem(3, 375, 350., false);
425 verifyItem(4, 725, 350., true);
426 QCOMPARE(lvwph->m_minYExtent, 250.);
427 QCOMPARE(lvwph->m_clipItem->y(), 375.);
428 QCOMPARE(lvwph->m_clipItem->clip(), false);
429 QCOMPARE(lvwph->m_headerItem->y(), 0.);
430 QCOMPARE(lvwph->m_headerItem->height(), 50.);
431 QCOMPARE(lvwph->contentY(), 375.);
432 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
436 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
437 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
438 verifyItem(0, 50., 400., false);
439 verifyItem(1, 450, 200., false);
440 verifyItem(2, 650, 350., true);
441 QCOMPARE(lvwph->m_minYExtent, 250.);
442 QCOMPARE(lvwph->m_clipItem->y(), -250.);
443 QCOMPARE(lvwph->m_clipItem->clip(), false);
444 QCOMPARE(lvwph->m_headerItem->y(), -250.);
445 QCOMPARE(lvwph->m_headerItem->height(), 50.);
446 QCOMPARE(lvwph->contentY(), -250.);
447 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
451 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
452 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
453 verifyItem(0, 20., 400., false);
454 verifyItem(1, 420, 200., false);
455 verifyItem(2, 620, 350., true);
456 QCOMPARE(lvwph->m_minYExtent, 250.);
457 QCOMPARE(lvwph->m_clipItem->y(), -220.);
458 QCOMPARE(lvwph->m_clipItem->clip(), false);
459 QCOMPARE(lvwph->m_headerItem->y(), -250.);
460 QCOMPARE(lvwph->m_headerItem->height(), 50.);
461 QCOMPARE(lvwph->contentY(), -220.);
462 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
465 void testIndex0GrowNotCreated()
468 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
469 QCOMPARE(lvwph->m_firstVisibleIndex, 1);
470 verifyItem(0, -320., 200., true);
471 verifyItem(1, -120, 350., false);
472 verifyItem(2, 230, 350., false);
473 verifyItem(3, 580, 350., true);
474 QCOMPARE(lvwph->m_minYExtent, 0.);
475 QCOMPARE(lvwph->m_clipItem->y(), 520.);
476 QCOMPARE(lvwph->m_clipItem->clip(), false);
477 QCOMPARE(lvwph->m_headerItem->y(), 0.);
478 QCOMPARE(lvwph->m_headerItem->height(), 50.);
479 QCOMPARE(lvwph->contentY(), 520.);
480 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
482 model->setProperty(0, "size", 400);
484 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
485 QCOMPARE(lvwph->m_firstVisibleIndex, 1);
486 verifyItem(0, -320., 200., true);
487 verifyItem(1, -120, 350., false);
488 verifyItem(2, 230, 350., false);
489 verifyItem(3, 580, 350., true);
490 QCOMPARE(lvwph->m_minYExtent, 0.);
491 QCOMPARE(lvwph->m_clipItem->y(), 520.);
492 QCOMPARE(lvwph->m_clipItem->clip(), false);
493 QCOMPARE(lvwph->m_headerItem->y(), 0.);
494 QCOMPARE(lvwph->m_headerItem->height(), 50.);
495 QCOMPARE(lvwph->contentY(), 520.);
496 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
500 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
501 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
502 verifyItem(0, 50., 400., false);
503 verifyItem(1, 450, 200., false);
504 verifyItem(2, 650, 350., true);
505 QCOMPARE(lvwph->m_minYExtent, 250.);
506 QCOMPARE(lvwph->m_clipItem->y(), -250.);
507 QCOMPARE(lvwph->m_clipItem->clip(), false);
508 QCOMPARE(lvwph->m_headerItem->y(), -250.);
509 QCOMPARE(lvwph->m_headerItem->height(), 50.);
510 QCOMPARE(lvwph->contentY(), -250.);
511 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
514 void testShowHideShowHeaderAtBottom()
517 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
518 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
519 verifyItem(0, -508., 350., true);
520 verifyItem(1, -158, 350., false);
521 verifyItem(2, 192, 350., false);
522 QCOMPARE(lvwph->m_minYExtent, 0.);
523 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
524 QCOMPARE(lvwph->m_clipItem->clip(), false);
525 QCOMPARE(lvwph->m_headerItem->y(), 0.);
526 QCOMPARE(lvwph->m_headerItem->height(), 50.);
527 QCOMPARE(lvwph->contentY(), 1258.);
528 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
531 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
532 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
533 verifyItem(0, -508., 350., true);
534 verifyItem(1, -158, 350., false);
535 verifyItem(2, 192, 350., false);
536 QCOMPARE(lvwph->m_minYExtent, 0.);
537 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
538 QCOMPARE(lvwph->m_clipItem->clip(), true);
539 QCOMPARE(lvwph->m_headerItem->y(), 1208.);
540 QCOMPARE(lvwph->m_headerItem->height(), 50.);
541 QCOMPARE(lvwph->contentY(), 1228.);
542 QCOMPARE(lvwph->m_headerItemShownHeight, 30.);
545 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
546 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
547 verifyItem(0, -508., 350., true);
548 verifyItem(1, -158, 350., false);
549 verifyItem(2, 192, 350., false);
550 QCOMPARE(lvwph->m_minYExtent, 0.);
551 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
552 QCOMPARE(lvwph->m_clipItem->clip(), false);
553 QCOMPARE(lvwph->m_headerItem->y(), 0.);
554 QCOMPARE(lvwph->m_headerItem->height(), 50.);
555 QCOMPARE(lvwph->contentY(), 1258.);
556 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
559 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
560 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
561 verifyItem(0, -508., 350., true);
562 verifyItem(1, -158, 350., false);
563 verifyItem(2, 192, 350., false);
564 QCOMPARE(lvwph->m_minYExtent, 0.);
565 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
566 QCOMPARE(lvwph->m_clipItem->clip(), true);
567 QCOMPARE(lvwph->m_headerItem->y(), 1208.);
568 QCOMPARE(lvwph->m_headerItem->height(), 50.);
569 QCOMPARE(lvwph->contentY(), 1228.);
570 QCOMPARE(lvwph->m_headerItemShownHeight, 30.);
573 void testChangeDelegateAtBottom()
576 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
577 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
578 verifyItem(0, -508., 350., true);
579 verifyItem(1, -158, 350., false);
580 verifyItem(2, 192, 350., false);
581 QCOMPARE(lvwph->m_minYExtent, 0.);
582 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
583 QCOMPARE(lvwph->m_clipItem->clip(), false);
584 QCOMPARE(lvwph->m_headerItem->y(), 0.);
585 QCOMPARE(lvwph->m_headerItem->height(), 50.);
586 QCOMPARE(lvwph->contentY(), 1258.);
587 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
589 lvwph->setDelegate(otherDelegate);
591 QTRY_COMPARE(lvwph->m_visibleItems.count(), 6);
592 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
593 verifyItem(0, 50., 35., false);
594 verifyItem(1, 85, 35., false);
595 verifyItem(2, 120, 35., false);
596 verifyItem(3, 155, 35., false);
597 verifyItem(4, 190, 35., false);
598 verifyItem(5, 225, 35., false);
599 QCOMPARE(lvwph->m_minYExtent, 0.);
600 QCOMPARE(lvwph->m_clipItem->y(), 0.);
601 QCOMPARE(lvwph->m_clipItem->clip(), false);
602 QCOMPARE(lvwph->m_headerItem->y(), 0.);
603 QCOMPARE(lvwph->m_headerItem->height(), 50.);
604 QCOMPARE(lvwph->contentY(), 0.);
605 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
608 void testGrowHeaderAtTop()
610 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
611 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
612 verifyItem(0, 50., 150., false);
613 verifyItem(1, 200., 200., false);
614 verifyItem(2, 400., 350., false);
615 verifyItem(3, 750., 350., true);
616 QCOMPARE(lvwph->m_minYExtent, 0.);
617 QCOMPARE(lvwph->m_clipItem->y(), 0.);
618 QCOMPARE(lvwph->m_clipItem->clip(), false);
619 QCOMPARE(lvwph->m_headerItem->y(), 0.);
620 QCOMPARE(lvwph->m_headerItem->height(), 50.);
621 QCOMPARE(lvwph->contentY(), 0.);
622 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
624 lvwph->m_headerItem->setHeight(100);
626 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
627 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
628 verifyItem(0, 100., 150., false);
629 verifyItem(1, 250., 200., false);
630 verifyItem(2, 450., 350., false);
631 verifyItem(3, 800., 350., true);
632 QCOMPARE(lvwph->m_minYExtent, 0.);
633 QCOMPARE(lvwph->m_clipItem->y(), 0.);
634 QCOMPARE(lvwph->m_clipItem->clip(), false);
635 QCOMPARE(lvwph->m_headerItem->y(), 0.);
636 QCOMPARE(lvwph->m_headerItem->height(), 100.);
637 QCOMPARE(lvwph->contentY(), 0.);
638 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
641 void testGrowHeaderAtBottom()
644 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
645 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
646 verifyItem(0, -508., 350., true);
647 verifyItem(1, -158, 350., false);
648 verifyItem(2, 192, 350., false);
649 QCOMPARE(lvwph->m_minYExtent, 0.);
650 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
651 QCOMPARE(lvwph->m_clipItem->clip(), false);
652 QCOMPARE(lvwph->m_headerItem->y(), 0.);
653 QCOMPARE(lvwph->m_headerItem->height(), 50.);
654 QCOMPARE(lvwph->contentY(), 1258.);
655 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
657 lvwph->m_headerItem->setHeight(100);
659 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
660 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
661 verifyItem(0, -508., 350., true);
662 verifyItem(1, -158, 350., false);
663 verifyItem(2, 192, 350., false);
664 QCOMPARE(lvwph->m_minYExtent, -650.);
665 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
666 QCOMPARE(lvwph->m_clipItem->clip(), false);
667 QCOMPARE(lvwph->m_headerItem->y(), 0.);
668 QCOMPARE(lvwph->m_headerItem->height(), 100.);
669 QCOMPARE(lvwph->contentY(), 1258.);
670 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
674 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
675 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
676 verifyItem(0, -508., 350., true);
677 verifyItem(1, -158, 350., false);
678 verifyItem(2, 192, 350., false);
679 QCOMPARE(lvwph->m_minYExtent, -650.);
680 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
681 QCOMPARE(lvwph->m_clipItem->clip(), true);
682 QCOMPARE(lvwph->m_headerItem->y(), 1158.);
683 QCOMPARE(lvwph->m_headerItem->height(), 100.);
684 QCOMPARE(lvwph->contentY(), 1228.);
685 QCOMPARE(lvwph->m_headerItemShownHeight, 30.);
690 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
691 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
692 verifyItem(0, 100., 150., false);
693 verifyItem(1, 250., 200., false);
694 verifyItem(2, 450., 350., false);
695 verifyItem(3, 800., 350., true);
696 QCOMPARE(lvwph->m_minYExtent, 50.);
697 QCOMPARE(lvwph->m_clipItem->y(), -50.);
698 QCOMPARE(lvwph->m_clipItem->clip(), false);
699 QCOMPARE(lvwph->m_headerItem->y(), -50.);
700 QCOMPARE(lvwph->m_headerItem->height(), 100.);
701 QCOMPARE(lvwph->contentY(), -50.);
702 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
705 void testGrowHeaderPartlyShown()
708 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
709 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
710 verifyItem(0, -508., 350., true);
711 verifyItem(1, -158, 350., false);
712 verifyItem(2, 192, 350., false);
713 QCOMPARE(lvwph->m_minYExtent, 0.);
714 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
715 QCOMPARE(lvwph->m_clipItem->clip(), false);
716 QCOMPARE(lvwph->m_headerItem->y(), 0.);
717 QCOMPARE(lvwph->m_headerItem->height(), 50.);
718 QCOMPARE(lvwph->contentY(), 1258.);
719 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
723 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
724 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
725 verifyItem(0, -508., 350., true);
726 verifyItem(1, -158, 350., false);
727 verifyItem(2, 192, 350., false);
728 QCOMPARE(lvwph->m_minYExtent, 0.);
729 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
730 QCOMPARE(lvwph->m_clipItem->clip(), true);
731 QCOMPARE(lvwph->m_headerItem->y(), 1208.);
732 QCOMPARE(lvwph->m_headerItem->height(), 50.);
733 QCOMPARE(lvwph->contentY(), 1228.);
734 QCOMPARE(lvwph->m_headerItemShownHeight, 30.);
736 lvwph->m_headerItem->setHeight(100);
738 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
739 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
740 verifyItem(0, -508., 350., true);
741 verifyItem(1, -158, 350., false);
742 verifyItem(2, 192, 350., false);
743 QCOMPARE(lvwph->m_minYExtent, -700.);
744 QCOMPARE(lvwph->m_clipItem->y(), 1308.);
745 QCOMPARE(lvwph->m_clipItem->clip(), true);
746 QCOMPARE(lvwph->m_headerItem->y(), 1208.);
747 QCOMPARE(lvwph->m_headerItem->height(), 100.);
748 QCOMPARE(lvwph->contentY(), 1228.);
749 QCOMPARE(lvwph->m_headerItemShownHeight, 80.);
753 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
754 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
755 verifyItem(0, 100., 150., false);
756 verifyItem(1, 250., 200., false);
757 verifyItem(2, 450., 350., false);
758 verifyItem(3, 800., 350., true);
759 QCOMPARE(lvwph->m_minYExtent, 0.);
760 QCOMPARE(lvwph->m_clipItem->y(), 0.);
761 QCOMPARE(lvwph->m_clipItem->clip(), false);
762 QCOMPARE(lvwph->m_headerItem->y(), 0.);
763 QCOMPARE(lvwph->m_headerItem->height(), 100.);
764 QCOMPARE(lvwph->contentY(), 0.);
765 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
768 void testShrinkHeaderMoreThanPartlyShown()
771 lvwph->m_headerItem->setHeight(100);
774 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
775 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
776 verifyItem(0, -508., 350., true);
777 verifyItem(1, -158, 350., false);
778 verifyItem(2, 192, 350., false);
779 QCOMPARE(lvwph->m_minYExtent, -650.);
780 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
781 QCOMPARE(lvwph->m_clipItem->clip(), true);
782 QCOMPARE(lvwph->m_headerItem->y(), 1158.);
783 QCOMPARE(lvwph->m_headerItem->height(), 100.);
784 QCOMPARE(lvwph->contentY(), 1228.);
785 QCOMPARE(lvwph->m_headerItemShownHeight, 30.);
787 lvwph->m_headerItem->setHeight(50);
789 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
790 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
791 verifyItem(0, -508., 350., true);
792 verifyItem(1, -158, 350., false);
793 verifyItem(2, 192, 350., false);
794 QCOMPARE(lvwph->m_minYExtent, -670.);
795 QCOMPARE(lvwph->m_clipItem->y(), 1228.);
796 QCOMPARE(lvwph->m_clipItem->clip(), false);
797 QCOMPARE(lvwph->m_headerItem->y(), 1158.);
798 QCOMPARE(lvwph->m_headerItem->height(), 50.);
799 QCOMPARE(lvwph->contentY(), 1228.);
800 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
801 QTRY_VERIFY(lvwph->isAtYEnd());
805 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
806 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
807 verifyItem(0, 50., 150., false);
808 verifyItem(1, 200., 200., false);
809 verifyItem(2, 400., 350., false);
810 verifyItem(3, 750., 350., true);
811 QCOMPARE(lvwph->m_minYExtent, 30.);
812 QCOMPARE(lvwph->m_clipItem->y(), -30.);
813 QCOMPARE(lvwph->m_clipItem->clip(), false);
814 QCOMPARE(lvwph->m_headerItem->y(), -30.);
815 QCOMPARE(lvwph->m_headerItem->height(), 50.);
816 QCOMPARE(lvwph->contentY(), -30.);
817 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
820 void testSetEmptyHeaderAtTop()
822 lvwph->setHeader(nullptr);
824 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
825 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
826 verifyItem(0, 0., 150., false);
827 verifyItem(1, 150., 200., false);
828 verifyItem(2, 350., 350., false);
829 verifyItem(3, 700., 350., true);
830 QCOMPARE(lvwph->m_minYExtent, 0.);
831 QCOMPARE(lvwph->m_clipItem->y(), 0.);
832 QCOMPARE(lvwph->m_clipItem->clip(), false);
833 QCOMPARE(lvwph->m_headerItem, (QQuickItem*)nullptr);
834 QCOMPARE(lvwph->contentY(), 0.);
835 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
838 void testSetEmptyHeaderAtBottom()
841 lvwph->setHeader(nullptr);
843 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
844 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
845 verifyItem(0, -508., 350., true);
846 verifyItem(1, -158, 350., false);
847 verifyItem(2, 192, 350., false);
848 QCOMPARE(lvwph->m_minYExtent, -750.);
849 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
850 QCOMPARE(lvwph->m_clipItem->clip(), false);
851 QCOMPARE(lvwph->m_headerItem, (QQuickItem*)nullptr);
852 QCOMPARE(lvwph->contentY(), 1258.);
853 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
857 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
858 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
859 verifyItem(0, 0., 150., false);
860 verifyItem(1, 150., 200., false);
861 verifyItem(2, 350., 350., false);
862 verifyItem(3, 700., 350., true);
863 QCOMPARE(lvwph->m_minYExtent, -50.);
864 QCOMPARE(lvwph->m_clipItem->y(), 50.);
865 QCOMPARE(lvwph->m_clipItem->clip(), false);
866 QCOMPARE(lvwph->m_headerItem, (QQuickItem*)nullptr);
867 QCOMPARE(lvwph->contentY(), 50.);
868 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
871 void testSetEmptyHeaderWhenPartlyShownClipped()
875 lvwph->setHeader(nullptr);
877 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
878 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
879 verifyItem(0, -508., 350., true);
880 verifyItem(1, -158, 350., false);
881 verifyItem(2, 192, 350., false);
882 QCOMPARE(lvwph->m_minYExtent, -720.);
883 QCOMPARE(lvwph->m_clipItem->y(), 1228.);
884 QCOMPARE(lvwph->m_clipItem->clip(), false);
885 QCOMPARE(lvwph->m_headerItem, (QQuickItem*)nullptr);
886 QCOMPARE(lvwph->contentY(), 1228.);
887 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
888 QTRY_VERIFY(lvwph->isAtYEnd());
892 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
893 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
894 verifyItem(0, 0., 150., false);
895 verifyItem(1, 150., 200., false);
896 verifyItem(2, 350., 350., false);
897 verifyItem(3, 700., 350., true);
898 QCOMPARE(lvwph->m_minYExtent, -20.);
899 QCOMPARE(lvwph->m_clipItem->y(), 20.);
900 QCOMPARE(lvwph->m_clipItem->clip(), false);
901 QCOMPARE(lvwph->m_headerItem, (QQuickItem*)nullptr);
902 QCOMPARE(lvwph->contentY(), 20.);
903 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
906 void testSetEmptyHeaderWhenPartlyShownNotClipped()
909 lvwph->setHeader(nullptr);
911 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
912 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
913 verifyItem(0, -30., 150., false);
914 verifyItem(1, 120., 200., false);
915 verifyItem(2, 320., 350., false);
916 verifyItem(3, 670., 350., true);
917 QCOMPARE(lvwph->m_minYExtent, 0.);
918 QCOMPARE(lvwph->m_clipItem->y(), 30.);
919 QCOMPARE(lvwph->m_clipItem->clip(), false);
920 QCOMPARE(lvwph->m_headerItem, (QQuickItem*)nullptr);
921 QCOMPARE(lvwph->contentY(), 30.);
922 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
925 void testSetNullDelegate()
927 lvwph->setDelegate(nullptr);
929 QTRY_COMPARE(lvwph->m_visibleItems.count(), 0);
930 QCOMPARE(lvwph->m_firstVisibleIndex, -1);
931 QCOMPARE(lvwph->m_minYExtent, 0.);
932 QCOMPARE(lvwph->m_clipItem->y(), 0.);
933 QCOMPARE(lvwph->m_clipItem->clip(), false);
934 QCOMPARE(lvwph->m_headerItem->y(), 0.);
935 QCOMPARE(lvwph->m_headerItem->height(), 50.);
936 QCOMPARE(lvwph->contentY(), 0.);
937 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
938 QTRY_COMPARE(lvwph->contentHeight(), 50.);
939 QVERIFY(lvwph->isAtYBeginning());
940 QVERIFY(lvwph->isAtYEnd());
943 void testInsertItems()
945 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 1), Q_ARG(QVariant, 100));
946 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 1), Q_ARG(QVariant, 125));
948 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
949 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
950 verifyItem(0, 50., 150., false);
951 verifyItem(1, 200., 125., false);
952 verifyItem(2, 325., 100., false);
953 verifyItem(3, 425., 200., false);
954 verifyItem(4, 625., 350., true);
955 QCOMPARE(lvwph->m_minYExtent, 0.);
956 QCOMPARE(lvwph->m_clipItem->y(), 0.);
957 QCOMPARE(lvwph->m_clipItem->clip(), false);
958 QCOMPARE(lvwph->m_headerItem->y(), 0.);
959 QCOMPARE(lvwph->m_headerItem->height(), 50.);
960 QCOMPARE(lvwph->contentY(), 0.);
961 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
964 void testInsertItemsOnNotShownPosition()
968 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
969 QCOMPARE(lvwph->m_firstVisibleIndex, 2);
970 verifyItem(0, -300., 350., false);
971 verifyItem(1, 50, 350., false);
972 verifyItem(2, 400, 350., false);
973 verifyItem(3, 750, 350., true);
974 QCOMPARE(lvwph->m_minYExtent, 0.);
975 QCOMPARE(lvwph->m_clipItem->y(), 700.);
976 QCOMPARE(lvwph->m_clipItem->clip(), false);
977 QCOMPARE(lvwph->m_headerItem->y(), 0.);
978 QCOMPARE(lvwph->m_headerItem->height(), 50.);
979 QCOMPARE(lvwph->contentY(), 700.);
980 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
982 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 1), Q_ARG(QVariant, 100));
983 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 1), Q_ARG(QVariant, 125));
985 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
986 QCOMPARE(lvwph->m_firstVisibleIndex, 4);
987 verifyItem(0, -300., 350., false);
988 verifyItem(1, 50, 350., false);
989 verifyItem(2, 400, 350., false);
990 verifyItem(3, 750, 350., true);
991 QCOMPARE(lvwph->m_minYExtent, 0.);
992 QCOMPARE(lvwph->m_clipItem->y(), 700.);
993 QCOMPARE(lvwph->m_clipItem->clip(), false);
994 QCOMPARE(lvwph->m_headerItem->y(), 0.);
995 QCOMPARE(lvwph->m_headerItem->height(), 50.);
996 QCOMPARE(lvwph->contentY(), 700.);
997 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1001 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1002 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1003 verifyItem(0, 50., 150., false);
1004 verifyItem(1, 200., 125., false);
1005 verifyItem(2, 325., 100., false);
1006 verifyItem(3, 425., 200., false);
1007 verifyItem(4, 625., 350., true);
1008 QCOMPARE(lvwph->m_minYExtent, 225.);
1009 QCOMPARE(lvwph->m_clipItem->y(), -225.);
1010 QCOMPARE(lvwph->m_clipItem->clip(), false);
1011 QCOMPARE(lvwph->m_headerItem->y(), -225.);
1012 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1013 QCOMPARE(lvwph->contentY(), -225.);
1014 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1017 void testInsertItemsAtEndOfViewport()
1019 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 3), Q_ARG(QVariant, 100));
1020 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 3), Q_ARG(QVariant, 125));
1022 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1023 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1024 verifyItem(0, 50., 150., false);
1025 verifyItem(1, 200., 200., false);
1026 verifyItem(2, 400., 350., false);
1027 verifyItem(3, 750., 125., true);
1028 QCOMPARE(lvwph->m_minYExtent, 0.);
1029 QCOMPARE(lvwph->m_clipItem->y(), 0.);
1030 QCOMPARE(lvwph->m_clipItem->clip(), false);
1031 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1032 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1033 QCOMPARE(lvwph->contentY(), 0.);
1034 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1037 void testInsertItemsBeforeValidIndex()
1039 changeContentY(520);
1041 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1042 QCOMPARE(lvwph->m_firstVisibleIndex, 1);
1043 verifyItem(0, -320., 200., true);
1044 verifyItem(1, -120, 350., false);
1045 verifyItem(2, 230, 350., false);
1046 verifyItem(3, 580, 350., true);
1047 QCOMPARE(lvwph->m_minYExtent, 0.);
1048 QCOMPARE(lvwph->m_clipItem->y(), 520.);
1049 QCOMPARE(lvwph->m_clipItem->clip(), false);
1050 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1051 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1052 QCOMPARE(lvwph->contentY(), 520.);
1053 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1055 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 1), Q_ARG(QVariant, 100));
1056 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 1), Q_ARG(QVariant, 125));
1058 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1059 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
1060 verifyItem(0, -320., 200., true);
1061 verifyItem(1, -120, 350., false);
1062 verifyItem(2, 230, 350., false);
1063 verifyItem(3, 580, 350., true);
1064 QCOMPARE(lvwph->m_minYExtent, 0.);
1065 QCOMPARE(lvwph->m_clipItem->y(), 520.);
1066 QCOMPARE(lvwph->m_clipItem->clip(), false);
1067 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1068 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1069 QCOMPARE(lvwph->contentY(), 520.);
1070 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1073 void testInsertItemsBeforeViewport()
1075 changeContentY(375);
1077 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1078 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1079 verifyItem(0, -325., 150., true);
1080 verifyItem(1, -175, 200., false);
1081 verifyItem(2, 25, 350., false);
1082 verifyItem(3, 375, 350., false);
1083 verifyItem(4, 725, 350., true);
1084 QCOMPARE(lvwph->m_minYExtent, 0.);
1085 QCOMPARE(lvwph->m_clipItem->y(), 375.);
1086 QCOMPARE(lvwph->m_clipItem->clip(), false);
1087 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1088 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1089 QCOMPARE(lvwph->contentY(), 375.);
1090 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1092 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 1), Q_ARG(QVariant, 100));
1093 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 1), Q_ARG(QVariant, 125));
1095 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1096 QCOMPARE(lvwph->m_firstVisibleIndex, 2);
1097 verifyItem(0, -275., 100., true);
1098 verifyItem(1, -175, 200., false);
1099 verifyItem(2, 25, 350., false);
1100 verifyItem(3, 375, 350., false);
1101 verifyItem(4, 725, 350., true);
1102 QCOMPARE(lvwph->m_minYExtent, -50.);
1103 QCOMPARE(lvwph->m_clipItem->y(), 375.);
1104 QCOMPARE(lvwph->m_clipItem->clip(), false);
1105 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1106 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1107 QCOMPARE(lvwph->contentY(), 375.);
1108 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1112 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1113 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1114 verifyItem(0, 50., 150., false);
1115 verifyItem(1, 200., 125., false);
1116 verifyItem(2, 325., 100., false);
1117 verifyItem(3, 425., 200., false);
1118 verifyItem(4, 625., 350., true);
1119 QCOMPARE(lvwph->m_minYExtent, 225.);
1120 QCOMPARE(lvwph->m_clipItem->y(), -225.);
1121 QCOMPARE(lvwph->m_clipItem->clip(), false);
1122 QCOMPARE(lvwph->m_headerItem->y(), -225.);
1123 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1124 QCOMPARE(lvwph->contentY(), -225.);
1125 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1128 void testInsertItemsAtBottom()
1132 QVERIFY(lvwph->isAtYEnd());
1134 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 6), Q_ARG(QVariant, 100));
1135 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 6), Q_ARG(QVariant, 125));
1137 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1138 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
1139 verifyItem(0, -508., 350., true);
1140 verifyItem(1, -158, 350., false);
1141 verifyItem(2, 192, 350., false);
1142 verifyItem(3, 542, 125., true);
1143 verifyItem(4, 667, 100., true);
1144 QCOMPARE(lvwph->m_minYExtent, 0.);
1145 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
1146 QCOMPARE(lvwph->m_clipItem->clip(), false);
1147 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1148 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1149 QCOMPARE(lvwph->contentY(), 1258.);
1150 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1151 QVERIFY(!lvwph->isAtYEnd());
1155 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1156 QCOMPARE(lvwph->m_firstVisibleIndex, 4);
1157 verifyItem(0, -383., 350., true);
1158 verifyItem(1, -33, 350., false);
1159 verifyItem(2, 317, 125., false);
1160 verifyItem(3, 442, 100., false);
1161 QCOMPARE(lvwph->m_minYExtent, 0.);
1162 QCOMPARE(lvwph->m_clipItem->y(), 1483.);
1163 QCOMPARE(lvwph->m_clipItem->clip(), false);
1164 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1165 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1166 QCOMPARE(lvwph->contentY(), 1483.);
1167 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1168 QVERIFY(lvwph->isAtYEnd());
1171 void testInsertItemAtTop()
1173 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1175 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1176 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1177 verifyItem(0, 50., 75., false);
1178 verifyItem(1, 125., 150., false);
1179 verifyItem(2, 275., 200., false);
1180 verifyItem(3, 475., 350., false);
1181 QCOMPARE(lvwph->m_minYExtent, 0.);
1182 QCOMPARE(lvwph->m_clipItem->y(), 0.);
1183 QCOMPARE(lvwph->m_clipItem->clip(), false);
1184 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1185 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1186 QCOMPARE(lvwph->contentY(), 0.);
1187 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1188 QVERIFY(lvwph->isAtYBeginning());
1191 void testInsertItem10SmallItemsAtTopWhenAtBottom()
1195 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1196 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1197 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1198 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1199 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1200 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1201 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1202 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1203 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1204 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 75));
1206 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1207 QCOMPARE(lvwph->m_firstVisibleIndex, 13);
1208 verifyItem(0, -508., 350., true);
1209 verifyItem(1, -158, 350., false);
1210 verifyItem(2, 192, 350., false);
1211 QCOMPARE(lvwph->m_minYExtent, 0.);
1212 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
1213 QCOMPARE(lvwph->m_clipItem->clip(), false);
1214 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1215 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1216 QCOMPARE(lvwph->contentY(), 1258.);
1217 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1219 changeContentY(-1700);
1221 QTRY_COMPARE(lvwph->m_visibleItems.count(), 12);
1222 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1223 verifyItem(0, -308., 75., true);
1224 verifyItem(1, -233., 75., true);
1225 verifyItem(2, -158., 75., true);
1226 verifyItem(3, -83., 75., true);
1227 verifyItem(4, -8., 75., false);
1228 verifyItem(5, 67., 75., false);
1229 verifyItem(6, 142., 75., false);
1230 verifyItem(7, 217., 75., false);
1231 verifyItem(8, 292., 75., false);
1232 verifyItem(9, 367., 75., false);
1233 verifyItem(10, 442., 150., false);
1234 verifyItem(11, 592., 200., true);
1235 QCOMPARE(lvwph->m_minYExtent, 750.);
1236 QCOMPARE(lvwph->m_clipItem->y(), -392.);
1237 QCOMPARE(lvwph->m_clipItem->clip(), true);
1238 QCOMPARE(lvwph->m_headerItem->y(), -442.);
1239 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1240 QCOMPARE(lvwph->contentY(), -442.);
1241 QCOMPARE(lvwph->m_headerItemShownHeight, 50.);
1244 void testRemoveItemsAtTop()
1246 QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 2));
1248 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1249 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1250 verifyItem(0, 50., 350., false);
1251 verifyItem(1, 400., 350., false);
1252 verifyItem(2, 750., 350., true);
1253 QCOMPARE(lvwph->m_minYExtent, 0.);
1254 QCOMPARE(lvwph->m_clipItem->y(), 0.);
1255 QCOMPARE(lvwph->m_clipItem->clip(), false);
1256 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1257 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1258 QCOMPARE(lvwph->contentY(), 0.);
1259 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1260 QVERIFY(lvwph->isAtYBeginning());
1263 void testRemoveNonCreatedItemsAtTopWhenAtBottom()
1267 QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 2));
1269 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1270 QCOMPARE(lvwph->m_firstVisibleIndex, 1);
1271 verifyItem(0, -508., 350., true);
1272 verifyItem(1, -158, 350., false);
1273 verifyItem(2, 192, 350., false);
1274 QCOMPARE(lvwph->m_minYExtent, 0.);
1275 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
1276 QCOMPARE(lvwph->m_clipItem->clip(), false);
1277 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1278 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1279 QCOMPARE(lvwph->contentY(), 1258.);
1280 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1283 void testRemoveLastItemsAtBottom()
1287 QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 4), Q_ARG(QVariant, 2));
1289 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1290 QCOMPARE(lvwph->m_firstVisibleIndex, 1);
1291 verifyItem(0, -358., 200., true);
1292 verifyItem(1, -158, 350., false);
1293 verifyItem(2, 192, 350., false);
1294 QCOMPARE(lvwph->m_minYExtent, -150.);
1295 QCOMPARE(lvwph->m_clipItem->y(), 558.);
1296 QCOMPARE(lvwph->m_clipItem->clip(), false);
1297 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1298 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1299 QCOMPARE(lvwph->contentY(), 558.);
1300 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1303 void testRemoveItemOutOfViewport()
1305 changeContentY(520);
1307 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1308 QCOMPARE(lvwph->m_firstVisibleIndex, 1);
1309 verifyItem(0, -320., 200., true);
1310 verifyItem(1, -120, 350., false);
1311 verifyItem(2, 230, 350., false);
1312 verifyItem(3, 580, 350., true);
1313 QCOMPARE(lvwph->m_minYExtent, 0.);
1314 QCOMPARE(lvwph->m_clipItem->y(), 520.);
1315 QCOMPARE(lvwph->m_clipItem->clip(), false);
1316 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1317 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1318 QCOMPARE(lvwph->contentY(), 520.);
1319 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1322 QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 1), Q_ARG(QVariant, 1));
1324 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1325 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1326 verifyItem(0, -270., 150., true);
1327 verifyItem(1, -120., 350., false);
1328 verifyItem(2, 230, 350., false);
1329 verifyItem(3, 580, 350., true);
1330 QCOMPARE(lvwph->m_minYExtent, -200.);
1331 QCOMPARE(lvwph->m_clipItem->y(), 520.);
1332 QCOMPARE(lvwph->m_clipItem->clip(), false);
1333 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1334 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1335 QCOMPARE(lvwph->contentY(), 520.);
1336 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1339 void testMoveFirstItems()
1341 QMetaObject::invokeMethod(model, "moveItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 1), Q_ARG(QVariant, 1));
1343 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1344 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1345 verifyItem(0, 50., 200., false);
1346 verifyItem(1, 250., 150., false);
1347 verifyItem(2, 400., 350., false);
1348 verifyItem(3, 750., 350., true);
1349 QCOMPARE(lvwph->m_minYExtent, 0.);
1350 QCOMPARE(lvwph->m_clipItem->y(), 0.);
1351 QCOMPARE(lvwph->m_clipItem->clip(), false);
1352 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1353 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1354 QCOMPARE(lvwph->contentY(), 0.);
1355 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1359 void testMoveFirstOutOfVisibleItems()
1361 QMetaObject::invokeMethod(model, "moveItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 4), Q_ARG(QVariant, 1));
1363 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1364 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1365 verifyItem(0, 50., 200., false);
1366 verifyItem(1, 250., 350., false);
1367 verifyItem(2, 600., 350., true);
1368 QCOMPARE(lvwph->m_minYExtent, 0.);
1369 QCOMPARE(lvwph->m_clipItem->y(), 0.);
1370 QCOMPARE(lvwph->m_clipItem->clip(), false);
1371 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1372 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1373 QCOMPARE(lvwph->contentY(), 0.);
1374 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1378 void testMoveFirstToLastAtBottom()
1382 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1383 QCOMPARE(lvwph->m_firstVisibleIndex, 3);
1384 verifyItem(0, -508., 350., true);
1385 verifyItem(1, -158, 350., false);
1386 verifyItem(2, 192, 350., false);
1387 QCOMPARE(lvwph->m_minYExtent, 0.);
1388 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
1389 QCOMPARE(lvwph->m_clipItem->clip(), false);
1390 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1391 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1392 QCOMPARE(lvwph->contentY(), 1258.);
1393 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1395 QMetaObject::invokeMethod(model, "moveItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 5), Q_ARG(QVariant, 1));
1397 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1398 QCOMPARE(lvwph->m_firstVisibleIndex, 2);
1399 verifyItem(0, -508., 350., true);
1400 verifyItem(1, -158, 350., false);
1401 verifyItem(2, 192, 350., false);
1402 verifyItem(3, 542, 150., true);
1403 QCOMPARE(lvwph->m_minYExtent, 0.);
1404 QCOMPARE(lvwph->m_clipItem->y(), 1258.);
1405 QCOMPARE(lvwph->m_clipItem->clip(), false);
1406 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1407 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1408 QCOMPARE(lvwph->contentY(), 1258.);
1409 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1410 QVERIFY(!lvwph->isAtYEnd());
1413 void testChangeSizeVisibleItemNotOnViewport()
1415 changeContentY(440);
1417 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1418 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1419 verifyItem(0, -390., 150., true);
1420 verifyItem(1, -240., 200., true);
1421 verifyItem(2, -40, 350., false);
1422 verifyItem(3, 310, 350., false);
1423 verifyItem(4, 660, 350., true);
1424 QCOMPARE(lvwph->m_minYExtent, 0.);
1425 QCOMPARE(lvwph->m_clipItem->y(), 440.);
1426 QCOMPARE(lvwph->m_clipItem->clip(), false);
1427 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1428 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1429 QCOMPARE(lvwph->contentY(), 440.);
1430 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1432 model->setProperty(1, "size", 100);
1434 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1435 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1436 verifyItem(0, -290., 150., true);
1437 verifyItem(1, -140., 100., true);
1438 verifyItem(2, -40, 350., false);
1439 verifyItem(3, 310, 350., false);
1440 verifyItem(4, 660, 350., true);
1441 QCOMPARE(lvwph->m_minYExtent, -100.);
1442 QCOMPARE(lvwph->m_clipItem->y(), 440.);
1443 QCOMPARE(lvwph->m_clipItem->clip(), false);
1444 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1445 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1446 QCOMPARE(lvwph->contentY(), 440.);
1447 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1450 void testShowHeaderCloseToTheTop()
1452 changeContentY(375);
1454 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1455 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1456 verifyItem(0, -325., 150., true);
1457 verifyItem(1, -175, 200., false);
1458 verifyItem(2, 25, 350., false);
1459 verifyItem(3, 375, 350., false);
1460 verifyItem(4, 725, 350., true);
1461 QCOMPARE(lvwph->m_minYExtent, 0.);
1462 QCOMPARE(lvwph->m_clipItem->y(), 375.);
1463 QCOMPARE(lvwph->m_clipItem->clip(), false);
1464 QCOMPARE(lvwph->m_headerItem->y(), 0.);
1465 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1466 QCOMPARE(lvwph->contentY(), 375.);
1467 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);;
1469 lvwph->showHeader();
1471 QTRY_VERIFY(!lvwph->m_headerShowAnimation->isRunning());
1472 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1473 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1474 verifyItem(0, -375., 150., true);
1475 verifyItem(1, -225, 200., true);
1476 verifyItem(2, -25, 350., false);
1477 verifyItem(3, 325, 350., false);
1478 verifyItem(4, 675, 350., true);
1479 QCOMPARE(lvwph->m_minYExtent, 50.);
1480 QCOMPARE(lvwph->m_clipItem->y(), 375.);
1481 QCOMPARE(lvwph->m_clipItem->clip(), true);
1482 QCOMPARE(lvwph->m_headerItem->y(), 325.);
1483 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1484 QCOMPARE(lvwph->contentY(), 325.);
1485 QCOMPARE(lvwph->m_headerItemShownHeight, 50.);;
1489 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1490 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1491 verifyItem(0, 50., 150., false);
1492 verifyItem(1, 200., 200., false);
1493 verifyItem(2, 400., 350., false);
1494 verifyItem(3, 750., 350., true);
1495 QCOMPARE(lvwph->m_minYExtent, 50.);
1496 QCOMPARE(lvwph->m_clipItem->y(), -50.);
1497 QCOMPARE(lvwph->m_clipItem->clip(), false);
1498 QCOMPARE(lvwph->m_headerItem->y(), -50.);
1499 QCOMPARE(lvwph->m_headerItem->height(), 50.);
1500 QCOMPARE(lvwph->contentY(), -50.);
1501 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1506 ListViewWithPageHeader *lvwph;
1507 QQuickListModel *model;
1508 QQmlComponent *otherDelegate;
1511QTEST_MAIN(ListViewWithPageHeaderTest)
1513#include "listviewwithpageheadertest.moc"
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list