aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quick/qquicktableview/tst_qquicktableview.cpp')
-rw-r--r--tests/auto/quick/qquicktableview/tst_qquicktableview.cpp118
1 files changed, 19 insertions, 99 deletions
diff --git a/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp b/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
index 6a6849eeae..a4c954b1b4 100644
--- a/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
+++ b/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
@@ -111,8 +111,6 @@ private slots:
void checkLayoutOfEqualSizedDelegateItems();
void checkFocusRemoved_data();
void checkFocusRemoved();
- void checkTableMargins_data();
- void checkTableMargins();
void fillTableViewButNothingMore_data();
void fillTableViewButNothingMore();
void checkInitialAttachedProperties_data();
@@ -503,31 +501,28 @@ void tst_QQuickTableView::checkContentWidthAndHeight()
// to do the calculations once, and use them for both axis, below.
QCOMPARE(tableView->width(), tableView->height());
QCOMPARE(tableView->rowSpacing(), tableView->columnSpacing());
- QCOMPARE(tableView->leftMargin(), tableView->rightMargin());
- QCOMPARE(tableView->topMargin(), tableView->bottomMargin());
const int tableSize = 100;
const int cellSizeSmall = 100;
const int cellSizeLarge = 200;
const int spacing = 1;
- const int margin = 10;
const int smallCellCount = 20;
const int largeCellCount = tableSize - smallCellCount;
- const qreal spacingAndMargins = ((tableSize - 1) * spacing) + (margin * 2);
+ const qreal accumulatedSpacing = ((tableSize - 1) * spacing);
auto model = TestModelAsVariant(tableSize, tableSize);
tableView->setModel(model);
WAIT_UNTIL_POLISHED;
- const qreal expectedSizeInit = (tableSize * cellSizeSmall) + ((tableSize - 1) * spacing) + (margin * 2);
+ const qreal expectedSizeInit = (tableSize * cellSizeSmall) + ((tableSize - 1) * spacing);
QCOMPARE(tableView->contentWidth(), expectedSizeInit);
QCOMPARE(tableView->contentHeight(), expectedSizeInit);
// Flick in 5 more rows and columns, but not so far that we start loading in
// the ones that are bigger. Loading in more rows and columns of the same
// size as the initial ones should not change the first prediction.
- qreal flickTo = ((cellSizeSmall + spacing) * 5) + margin;
+ qreal flickTo = ((cellSizeSmall + spacing) * 5);
tableView->setContentX(flickTo);
tableView->setContentY(flickTo);
@@ -537,7 +532,7 @@ void tst_QQuickTableView::checkContentWidthAndHeight()
// Flick to row and column 20 (smallCellCount), since there the row and
// column sizes increases with 100. Check that TableView then adjusts
// contentWidth and contentHeight accordingly.
- flickTo = ((cellSizeSmall + spacing) * smallCellCount) + margin - spacing;
+ flickTo = ((cellSizeSmall + spacing) * smallCellCount) - spacing;
tableView->setContentX(flickTo);
tableView->setContentY(flickTo);
@@ -549,7 +544,7 @@ void tst_QQuickTableView::checkContentWidthAndHeight()
const qreal secondHalfOneScreenLength = largeSizeCellCountInView * cellSizeLarge;
const qreal lengthAfterFlick = firstHalfLength + secondHalfOneScreenLength;
const qreal averageCellSize = lengthAfterFlick / (smallCellCount + largeSizeCellCountInView);
- const qreal expectedSizeHalf = (tableSize * averageCellSize) + spacingAndMargins;
+ const qreal expectedSizeHalf = (tableSize * averageCellSize) + accumulatedSpacing;
QCOMPARE(tableView->contentWidth(), expectedSizeHalf);
QCOMPARE(tableView->contentHeight(), expectedSizeHalf);
@@ -557,7 +552,7 @@ void tst_QQuickTableView::checkContentWidthAndHeight()
// Flick to the end (row/column 100, and overshoot a bit), and
// check that we then end up with the exact content width/height.
const qreal secondHalfLength = largeCellCount * cellSizeLarge;
- const qreal expectedFullSize = (firstHalfLength + secondHalfLength) + spacingAndMargins;
+ const qreal expectedFullSize = (firstHalfLength + secondHalfLength) + accumulatedSpacing;
tableView->setContentX(expectedFullSize);
tableView->setContentY(expectedFullSize);
@@ -713,6 +708,9 @@ void tst_QQuickTableView::checkLayoutOfEqualSizedDelegateItems()
tableView->setModel(model);
tableView->setRowSpacing(spacing.height());
tableView->setColumnSpacing(spacing.width());
+
+ // Setting margins on Flickable should not affect the layout of the
+ // delegate items, since the margins is "transparent" to the TableView.
tableView->setLeftMargin(margins.left());
tableView->setTopMargin(margins.top());
tableView->setRightMargin(margins.right());
@@ -729,8 +727,8 @@ void tst_QQuickTableView::checkLayoutOfEqualSizedDelegateItems()
QCOMPARE(item->parentItem(), tableView->contentItem());
const QPoint cell = getContextRowAndColumn(item);
- qreal expectedX = margins.left() + (cell.x() * (expectedItemWidth + spacing.width()));
- qreal expectedY = margins.top() + (cell.y() * (expectedItemHeight + spacing.height()));
+ qreal expectedX = cell.x() * (expectedItemWidth + spacing.width());
+ qreal expectedY = cell.y() * (expectedItemHeight + spacing.height());
QCOMPARE(item->x(), expectedX);
QCOMPARE(item->y(), expectedY);
QCOMPARE(item->z(), 1);
@@ -782,83 +780,16 @@ void tst_QQuickTableView::checkFocusRemoved()
}
}
-void tst_QQuickTableView::checkTableMargins_data()
-{
- QTest::addColumn<QVariant>("model");
- QTest::addColumn<QSizeF>("spacing");
- QTest::addColumn<QMarginsF>("margins");
-
- QTest::newRow("QAIM single") << TestModelAsVariant(1, 1) << QSizeF(0, 0) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("QAIM single, 1,1, no margins") << TestModelAsVariant(1, 1) << QSizeF(1, 1) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("QAIM single, no spacing, 1111") << TestModelAsVariant(1, 1) << QSizeF(0, 0) << QMarginsF(1, 1, 1, 1);
-
- QTest::newRow("QAIM 4x4") << TestModelAsVariant(4, 4) << QSizeF(0, 0) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("QAIM 4x4, 1,1, no margins") << TestModelAsVariant(4, 4) << QSizeF(1, 1) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("QAIM 4x4, no spacing, 1111") << TestModelAsVariant(1, 1) << QSizeF(0, 0) << QMarginsF(1, 1, 1, 1);
-
- QTest::newRow("QAIM 1,1 0000") << TestModelAsVariant(20, 20) << QSizeF(1, 1) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("QAIM 1,1 5555") << TestModelAsVariant(20, 20) << QSizeF(1, 1) << QMarginsF(5, 5, 5, 5);
- QTest::newRow("QAIM 0,0 3333") << TestModelAsVariant(20, 20) << QSizeF(0, 0) << QMarginsF(3, 3, 3, 3);
- QTest::newRow("QAIM 2,2 1234") << TestModelAsVariant(20, 20) << QSizeF(2, 2) << QMarginsF(1, 2, 3, 4);
- QTest::newRow("QAIM 0,0 3210") << TestModelAsVariant(20, 20) << QSizeF(0, 0) << QMarginsF(3, 2, 1, 0);
-
- QTest::newRow("QAIM 0,0 negative left margin") << TestModelAsVariant(20, 20) << QSizeF(0, 0) << QMarginsF(-10, 0, 0, 0);
- QTest::newRow("QAIM 0,0 negative top margin") << TestModelAsVariant(20, 20) << QSizeF(0, 0) << QMarginsF(0, -10, 0, 0);
- QTest::newRow("QAIM 0,0 negative right margin") << TestModelAsVariant(20, 20) << QSizeF(0, 0) << QMarginsF(0, 0, -10, 0);
- QTest::newRow("QAIM 0,0 negative bottom margin") << TestModelAsVariant(20, 20) << QSizeF(0, 0) << QMarginsF(0, 0, 0, -10);
- QTest::newRow("QAIM 0,0 all margins negative") << TestModelAsVariant(20, 20) << QSizeF(0, 0) << QMarginsF(-10, -10, -10, -10);
-}
-
-void tst_QQuickTableView::checkTableMargins()
-{
- // Check that the space between the content view and
- // the items matches the margins we set on the tableview.
- QFETCH(QVariant, model);
- QFETCH(QSizeF, spacing);
- QFETCH(QMarginsF, margins);
- LOAD_TABLEVIEW("plaintableview.qml");
-
- tableView->setModel(model);
- tableView->setRowSpacing(spacing.height());
- tableView->setColumnSpacing(spacing.width());
- tableView->setLeftMargin(margins.left());
- tableView->setTopMargin(margins.top());
- tableView->setRightMargin(margins.right());
- tableView->setBottomMargin(margins.bottom());
-
- WAIT_UNTIL_POLISHED;
-
- // Check left-, and top margins
- auto const topLeftItem = tableViewPrivate->loadedTableItem(QPoint(0, 0))->item;
- qreal leftSpace = topLeftItem->x();
- qreal topSpace = topLeftItem->y();
- QCOMPARE(leftSpace, margins.left());
- QCOMPARE(topSpace, margins.top());
-
- // Flick the table to the end...
- tableView->setContentX(tableView->contentWidth() - tableView->width());
- tableView->setContentY(tableView->contentHeight() - tableView->height());
- const QPoint bottomRightCell = tableViewPrivate->loadedTable.bottomRight();
- auto const bottomRightItem = tableViewPrivate->loadedTableItem(bottomRightCell)->item;
-
- // ...and check the right-, and bottom margins
- qreal rightSpace = tableView->contentWidth() - (bottomRightItem->x() + bottomRightItem->width());
- qreal bottomSpace = tableView->contentHeight() - (bottomRightItem->y() + bottomRightItem->height());
- QCOMPARE(rightSpace, margins.right());
- QCOMPARE(bottomSpace, margins.bottom());
-}
-
void tst_QQuickTableView::fillTableViewButNothingMore_data()
{
QTest::addColumn<QSizeF>("spacing");
- QTest::addColumn<QMarginsF>("margins");
- QTest::newRow("0 0,0 0") << QSizeF(0, 0) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("0 10,10 0") << QSizeF(10, 10) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("100 10,10 0") << QSizeF(10, 10) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("0 0,0 100") << QSizeF(0, 0) << QMarginsF(0, 0, 0, 0);
- QTest::newRow("0 10,10 100") << QSizeF(10, 10) << QMarginsF(100, 100, 100, 100);
- QTest::newRow("100 10,10 100") << QSizeF(10, 10) << QMarginsF(100, 100, 100, 100);
+ QTest::newRow("0 0,0 0") << QSizeF(0, 0);
+ QTest::newRow("0 10,10 0") << QSizeF(10, 10);
+ QTest::newRow("100 10,10 0") << QSizeF(10, 10);
+ QTest::newRow("0 0,0 100") << QSizeF(0, 0);
+ QTest::newRow("0 10,10 100") << QSizeF(10, 10);
+ QTest::newRow("100 10,10 100") << QSizeF(10, 10);
}
void tst_QQuickTableView::fillTableViewButNothingMore()
@@ -866,7 +797,6 @@ void tst_QQuickTableView::fillTableViewButNothingMore()
// Check that we end up filling the whole visible part of
// the tableview with cells, but nothing more.
QFETCH(QSizeF, spacing);
- QFETCH(QMarginsF, margins);
LOAD_TABLEVIEW("plaintableview.qml");
const int rows = 100;
@@ -876,20 +806,12 @@ void tst_QQuickTableView::fillTableViewButNothingMore()
tableView->setModel(model);
tableView->setRowSpacing(spacing.height());
tableView->setColumnSpacing(spacing.width());
- tableView->setLeftMargin(margins.left());
- tableView->setTopMargin(margins.top());
- tableView->setRightMargin(margins.right());
- tableView->setBottomMargin(margins.bottom());
WAIT_UNTIL_POLISHED;
auto const topLeftFxItem = tableViewPrivate->loadedTableItem(QPoint(0, 0));
auto const topLeftItem = topLeftFxItem->item;
- // Check that the top-left item are at the corner of the view
- QCOMPARE(topLeftItem->x(), margins.left());
- QCOMPARE(topLeftItem->y(), margins.top());
-
auto const bottomRightFxItem = tableViewPrivate->loadedTableItem(tableViewPrivate->loadedTable.bottomRight());
auto const bottomRightItem = bottomRightFxItem->item;
const QPoint bottomRightCell = getContextRowAndColumn(bottomRightItem.data());
@@ -900,8 +822,7 @@ void tst_QQuickTableView::fillTableViewButNothingMore()
// Check that the actual number of columns matches what we expect
qreal cellWidth = bottomRightItem->width() + spacing.width();
- qreal availableWidth = tableView->width() - margins.left();
- int expectedColumns = qCeil(availableWidth / cellWidth);
+ int expectedColumns = qCeil(tableView->width() / cellWidth);
int actualColumns = bottomRightCell.x() + 1;
QCOMPARE(actualColumns, expectedColumns);
@@ -911,8 +832,7 @@ void tst_QQuickTableView::fillTableViewButNothingMore()
// Check that the actual number of rows matches what we expect
qreal cellHeight = bottomRightItem->height() + spacing.height();
- qreal availableHeight = tableView->height() - margins.top();
- int expectedRows = qCeil(availableHeight / cellHeight);
+ int expectedRows = qCeil(tableView->height() / cellHeight);
int actualRows = bottomRightCell.y() + 1;
QCOMPARE(actualRows, expectedRows);
}