aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@qt.io>2018-07-10 11:14:42 +0200
committerRichard Moe Gustavsen <richard.gustavsen@qt.io>2018-07-10 12:39:52 +0000
commit58c988e090bac094e8c2e8b77975c1c720725a6e (patch)
tree6100f317fc1a8a8c15e20154506f39411724a78e /tests
parent04e7882fc2044020f98c9f6507429a47981f222b (diff)
TableView: remove row and column from attached object
TableView.row and TableView.column is no different from the row and column properties that are injected into the context from the model classes. So just remove them to not bloat the API. This attached properties where added at an early stage where we thought that it should be possible to set a different row and column count on the view than compared to the model (to e.g to "fake" a table layout when just assigning an integer as a model). Also, we consider supporting right-to-left etc, where we might end up with cells that have a different row/column in the view compared to where the cell is in the model. If we decide to do this later (not for the first release), we can consider adding the attached properties back again at that point. Change-Id: I588a45913b968db789978339bc9a63cd2ccfad49 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/quick/qquicktableview/tst_qquicktableview.cpp33
-rw-r--r--tests/manual/tableview/abstracttablemodel/main.qml4
-rw-r--r--tests/manual/tableview/listmodel/main.qml2
3 files changed, 21 insertions, 18 deletions
diff --git a/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp b/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
index 6714779fc8..8caced4396 100644
--- a/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
+++ b/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
@@ -75,6 +75,7 @@ public:
tst_QQuickTableView();
QQuickTableViewAttached *getAttachedObject(const QObject *object) const;
+ QPoint getContextRowAndColumn(const QQuickItem *item) const;
private slots:
void initTestCase() override;
@@ -119,6 +120,14 @@ QQuickTableViewAttached *tst_QQuickTableView::getAttachedObject(const QObject *o
return static_cast<QQuickTableViewAttached *>(attachedObject);
}
+QPoint tst_QQuickTableView::getContextRowAndColumn(const QQuickItem *item) const
+{
+ const auto context = qmlContext(item);
+ const int row = context->contextProperty("row").toInt();
+ const int column = context->contextProperty("column").toInt();
+ return QPoint(column, row);
+}
+
void tst_QQuickTableView::setAndGetModel_data()
{
QTest::addColumn<QVariant>("model");
@@ -343,11 +352,9 @@ void tst_QQuickTableView::checkLayoutOfEqualSizedDelegateItems()
QVERIFY(item);
QCOMPARE(item->parentItem(), tableView->contentItem());
- auto attached = getAttachedObject(item);
- int row = attached->row();
- int column = attached->column();
- qreal expectedX = margins.left() + (column * (expectedItemWidth + spacing.width()));
- qreal expectedY = margins.top() + (row * (expectedItemHeight + spacing.height()));
+ const QPoint cell = getContextRowAndColumn(item);
+ qreal expectedX = margins.left() + (cell.x() * (expectedItemWidth + spacing.width()));
+ qreal expectedY = margins.top() + (cell.y() * (expectedItemHeight + spacing.height()));
QCOMPARE(item->x(), expectedX);
QCOMPARE(item->y(), expectedY);
QCOMPARE(item->width(), expectedItemWidth);
@@ -452,7 +459,7 @@ void tst_QQuickTableView::fillTableViewButNothingMore()
auto const bottomRightFxItem = tableViewPrivate->loadedTableItem(tableViewPrivate->loadedTable.bottomRight());
auto const bottomRightItem = bottomRightFxItem->item;
- auto bottomRightAttached = getAttachedObject(bottomRightItem);
+ const QPoint bottomRightCell = getContextRowAndColumn(bottomRightItem.data());
// Check that the right-most item is overlapping the right edge of the view
QVERIFY(bottomRightItem->x() < tableView->width());
@@ -462,7 +469,7 @@ void tst_QQuickTableView::fillTableViewButNothingMore()
qreal cellWidth = bottomRightItem->width() + spacing.width();
qreal availableWidth = tableView->width() - margins.left();
int expectedColumns = qCeil(availableWidth / cellWidth);
- int actualColumns = bottomRightAttached->column() + 1;
+ int actualColumns = bottomRightCell.x() + 1;
QCOMPARE(actualColumns, expectedColumns);
// Check that the bottom-most item is overlapping the bottom edge of the view
@@ -473,7 +480,7 @@ void tst_QQuickTableView::fillTableViewButNothingMore()
qreal cellHeight = bottomRightItem->height() + spacing.height();
qreal availableHeight = tableView->height() - margins.top();
int expectedRows = qCeil(availableHeight / cellHeight);
- int actualRows = bottomRightAttached->row() + 1;
+ int actualRows = bottomRightCell.y() + 1;
QCOMPARE(actualRows, expectedRows);
}
@@ -500,22 +507,18 @@ void tst_QQuickTableView::checkInitialAttachedProperties()
for (auto fxItem : tableViewPrivate->loadedItems) {
const int index = fxItem->index;
const auto item = fxItem->item;
- const auto attached = getAttachedObject(item);
const auto context = qmlContext(item.data());
const QPoint cell = tableViewPrivate->cellAtModelIndex(index);
const int contextIndex = context->contextProperty("index").toInt();
- const int contextRow = context->contextProperty("row").toInt();
- const int contextColumn = context->contextProperty("column").toInt();
+ const QPoint contextCell = getContextRowAndColumn(item.data());
const QString contextModelData = context->contextProperty("modelData").toString();
const QQmlDelegateModelAttached *delegateModelAttached =
static_cast<QQmlDelegateModelAttached *>(
qmlAttachedPropertiesObject<QQmlDelegateModel>(item));
const int contextItemsIndex = delegateModelAttached->property("itemsIndex").toInt();
- QCOMPARE(attached->row(), cell.y());
- QCOMPARE(attached->column(), cell.x());
- QCOMPARE(contextRow, cell.y());
- QCOMPARE(contextColumn, cell.x());
+ QCOMPARE(contextCell.y(), cell.y());
+ QCOMPARE(contextCell.x(), cell.x());
QCOMPARE(contextIndex, index);
QCOMPARE(contextModelData, QStringLiteral("%1").arg(cell.y()));
QCOMPARE(contextItemsIndex, index);
diff --git a/tests/manual/tableview/abstracttablemodel/main.qml b/tests/manual/tableview/abstracttablemodel/main.qml
index c448815a7c..271752aaf1 100644
--- a/tests/manual/tableview/abstracttablemodel/main.qml
+++ b/tests/manual/tableview/abstracttablemodel/main.qml
@@ -76,8 +76,8 @@ Window {
Component {
id: tableViewDelegate
Rectangle {
- TableView.cellWidth: TableView.column % 3 ? 80 : 50
- TableView.cellHeight: TableView.row % 3 ? 80 : 50
+ TableView.cellWidth: column % 3 ? 80 : 50
+ TableView.cellHeight: row % 3 ? 80 : 50
Text {
anchors.centerIn: parent
diff --git a/tests/manual/tableview/listmodel/main.qml b/tests/manual/tableview/listmodel/main.qml
index b5a1ab8379..ca39e6a2b9 100644
--- a/tests/manual/tableview/listmodel/main.qml
+++ b/tests/manual/tableview/listmodel/main.qml
@@ -77,7 +77,7 @@ Window {
Text {
anchors.centerIn: parent
- text: name + "\n[" + tableDelegate.TableView.column + ", " + tableDelegate.TableView.row + "]"
+ text: name + "\n[" + column + ", " + row + "]"
}
}
}