diff options
Diffstat (limited to 'tests/manual/quicklayouts/layoutItemProxy/ms-rearchitect.qml')
-rw-r--r-- | tests/manual/quicklayouts/layoutItemProxy/ms-rearchitect.qml | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/tests/manual/quicklayouts/layoutItemProxy/ms-rearchitect.qml b/tests/manual/quicklayouts/layoutItemProxy/ms-rearchitect.qml new file mode 100644 index 0000000000..6a884075e7 --- /dev/null +++ b/tests/manual/quicklayouts/layoutItemProxy/ms-rearchitect.qml @@ -0,0 +1,235 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only +// This example was created for the blog post about responsive layouts: +// https://www.qt.io/blog/responsive-layouts-in-qt + +import QtQuick +import QtQuick.Layouts +import QtQuick.Window +import QtQuick.Controls + +Window { + id: window + + width: 700 + height: 800 + + minimumHeight: 500 + minimumWidth: 200 + + title: "Window: (" + width + "x" + height + ")" + visible: true + + Component { + id: delegate + Rectangle { + width: listView.width + height: 70 + Rectangle { + id: circ + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 10 + height: 50 + width: 50 + radius: 25 + color: "#c8c8c8" + } + Rectangle { + anchors.left: circ.right + anchors.right: parent.right + anchors.bottom: circ.verticalCenter + anchors.leftMargin: 10 + anchors.rightMargin: 90 + anchors.bottomMargin: 5 + height: 11 + color: "#c8c8c8" + } + Rectangle { + anchors.left: circ.right + anchors.right: parent.right + anchors.top: circ.verticalCenter + anchors.leftMargin: 10 + anchors.rightMargin: 90 + anchors.topMargin: 5 + height: 11 + color: "#c8c8c8" + } + Rectangle { + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom + height: 1 + color: "#eaeaea" + } + Rectangle { + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + width: 1 + color: "#eaeaea" + } + } + } + + ListView { + id: listView + z: 2 + Layout.fillWidth: true + Layout.fillHeight: true + Layout.minimumWidth: 300 + Layout.maximumWidth: 550 + + model: 20 + delegate: delegate + + TapHandler { + onTapped: swipeView.currentIndex = 1 + } + } + + GridLayout { + z: 2 + id: detailView + + Layout.minimumWidth: 250 + Layout.fillHeight: false + Layout.fillWidth: true + Layout.leftMargin: 15 + Layout.rightMargin: 15 + Layout.alignment: Qt.AlignTop + + columns: Math.max(width,100)/10 + columnSpacing: 0 + rowSpacing: 10 + Rectangle { + Layout.columnSpan: detailView.columns + Layout.fillWidth: true + height: 300 + color: "#c8c8c8" + } + Rectangle { + Layout.columnSpan: detailView.columns + Layout.fillWidth: true + Layout.fillHeight: false + height: 10 + } + Repeater { + model: 1000 + Rectangle { + Layout.fillWidth: true + Layout.fillHeight: false + height: 10 + color: "#c8c8c8" + } + } + } + + LayoutChooser { + id: layoutChooser + width: parent.width + height: parent.height + + layoutChoices: [ + smallLayout, + largeLayout + ] + + criteria: [ + window.width < listView.Layout.minimumWidth + detailView.Layout.minimumWidth + 20, + true + ] + + property Item smallLayout: ColumnLayout { + parent: layoutChooser + height: parent.height + width: parent.width + + SwipeView { + id: swipeView + + Layout.fillHeight: true + Layout.fillWidth: true + Item { + ColumnLayout { + height: parent.height + width: parent.width + + spacing: 0 + Rectangle { + height: 50 + Layout.fillWidth: true + } + Rectangle { + height: 1 + color: "#eaeaea" + Layout.fillWidth: true + } + LayoutItemProxy { target: listView } + } + } + Item { + ColumnLayout { + height: parent.height + width: parent.width + Rectangle { + height: 50 + Layout.fillWidth: true + + Text { + id: im + FontLoader { + id: materialFont + source: "https://github.com/google/material-design-icons/blob/master/font/MaterialIcons-Regular.ttf?raw=true" + } + font.family: materialFont.font.family + font.weight: materialFont.font.weight + font.pixelSize: 32 + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: 10 + text: String.fromCodePoint(0xe5c4) + color: "#010101" + TapHandler { + onTapped: { swipeView.currentIndex = 0; } + } + } + } + + Rectangle { + height: 1 + color: "#eaeaea" + Layout.fillWidth: true + } + + LayoutItemProxy { target: detailView } + } + } + } + } + + property Item largeLayout: ColumnLayout { + parent: layoutChooser + height: parent.height + width: parent.width + + spacing: 0 + Rectangle { + height: 50 + Layout.fillWidth: true + } + Rectangle { + height: 1 + color: "#eaeaea" + Layout.fillWidth: true + } + + RowLayout { + spacing: 0 + LayoutItemProxy { target: listView } + LayoutItemProxy { target: detailView } + } + } + } + +} |