Warning, /frameworks/kirigami/examples/simpleexamples/dragPageWidth.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * SPDX-FileCopyrightText: 2017 Eike Hein <hein@kde.org>
0003 *
0004 * SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006
0007 import QtQuick
0008 import org.kde.kirigami as Kirigami
0009
0010 Kirigami.ApplicationWindow {
0011 id: root
0012
0013 property int defaultColumnWidth: Kirigami.Units.gridUnit * 13
0014 property int columnWidth: defaultColumnWidth
0015
0016 pageStack.defaultColumnWidth: columnWidth
0017 pageStack.initialPage: [firstPageComponent, secondPageComponent]
0018
0019 MouseArea {
0020 id: dragHandle
0021
0022 visible: pageStack.wideMode
0023
0024 anchors.top: parent.top
0025 anchors.bottom: parent.bottom
0026
0027 x: columnWidth - (width / 2)
0028 width: 2
0029
0030 property int dragRange: (Kirigami.Units.gridUnit * 5)
0031 property int _lastX: -1
0032
0033 cursorShape: Qt.SplitHCursor
0034
0035 onPressed: mouse => {
0036 _lastX = mouse.x;
0037 }
0038
0039 onPositionChanged: mouse => {
0040 if (mouse.x > _lastX) {
0041 columnWidth = Math.min((defaultColumnWidth + dragRange),
0042 columnWidth + (mouse.x - _lastX));
0043 } else if (mouse.x < _lastX) {
0044 columnWidth = Math.max((defaultColumnWidth - dragRange),
0045 columnWidth - (_lastX - mouse.x));
0046 }
0047 }
0048
0049 Rectangle {
0050 anchors.fill: parent
0051
0052 color: "blue"
0053 }
0054 }
0055
0056 Component {
0057 id: firstPageComponent
0058
0059 Kirigami.Page {
0060 id: firstPage
0061
0062 background: Rectangle { color: "red" }
0063 }
0064 }
0065
0066 Component {
0067 id: secondPageComponent
0068
0069 Kirigami.Page {
0070 id: secondPage
0071
0072 background: Rectangle { color: "green" }
0073 }
0074 }
0075 }