44 lines
1.6 KiB
QML
44 lines
1.6 KiB
QML
// Copyright (C) 2020 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
|
import QtQuick 2.15
|
|
import Qt.labs.qmlmodels 1.0
|
|
|
|
TableView {
|
|
id: root
|
|
width: 1024
|
|
height: 200
|
|
property int tileSize: 1024 / 8
|
|
rowSpacing: 1; columnSpacing: 1
|
|
model: TableModel {
|
|
TableModelColumn {}
|
|
TableModelColumn {}
|
|
TableModelColumn {}
|
|
TableModelColumn {}
|
|
TableModelColumn {}
|
|
TableModelColumn {}
|
|
TableModelColumn {}
|
|
TableModelColumn {}
|
|
columns: [0, 1, 2, 3, 4, 5, 6, 7]
|
|
rows: [0, 1, 2, 3]
|
|
}
|
|
delegate: Image {
|
|
id: image
|
|
// source: "map.png" // unscaled because png doesn't support QImageIOHandler::ScaledClipRect
|
|
// source: "map.svgz" // tiles offset incorrectly: see QTBUG-81044
|
|
source: "map.pdf" // ok if the qtpdf plugin is installed
|
|
fillMode: Image.Pad
|
|
sourceSize.width: 1024
|
|
sourceClipRect: Qt.rect(model.column * tileSize, model.row * tileSize, tileSize, tileSize)
|
|
cache: true
|
|
asynchronous: true
|
|
Text {
|
|
text: image.sourceClipRect.width + "x" + image.sourceClipRect.height +
|
|
" " + image.sourceClipRect.x + "," + image.sourceClipRect.y +
|
|
"\nfrom " + image.sourceSize.toString() + // inconsistency: if we don't set sourceSize, it ends up being sourceClipRect.size
|
|
"\nimplicit " + image.implicitWidth + "x" + image.implicitHeight
|
|
}
|
|
}
|
|
columnWidthProvider: function (c) { return tileSize } // workaround for QTBUG-81045
|
|
rowHeightProvider: function (r) { return tileSize }
|
|
}
|