aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/tableview/imagetiling/imageTiling.qml
blob: 834c356c1f907634e975c8d76e93dbce4b310f1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// 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 }
}