Warning, /frameworks/qqc2-desktop-style/org.kde.desktop/private/MobileCursor.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2018 Marco Martin <mart@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 import org.kde.desktop.private as Private 0010 0011 Item { 0012 id: root 0013 width: 1 //<-important that this is actually a single device pixel 0014 height: Kirigami.Units.gridUnit 0015 0016 property Item target 0017 0018 property bool selectionStartHandle: false 0019 0020 visible: Kirigami.Settings.tabletMode && ((target.activeFocus && !selectionStartHandle) || target.selectedText.length > 0) 0021 0022 Rectangle { 0023 width: 3 0024 anchors { 0025 horizontalCenter: parent.horizontalCenter 0026 top: parent.top 0027 bottom: parent.bottom 0028 } 0029 color: Qt.tint(Kirigami.Theme.highlightColor, Qt.rgba(1,1,1,0.4)) 0030 radius: width 0031 Rectangle { 0032 width: Math.round(Kirigami.Units.gridUnit/1.5) 0033 height: width 0034 visible: Private.MobileTextActionsToolBar.shouldBeVisible 0035 anchors { 0036 horizontalCenter: parent.horizontalCenter 0037 verticalCenter: parent.bottom 0038 } 0039 radius: width 0040 color: Qt.tint(Kirigami.Theme.highlightColor, Qt.rgba(1,1,1,0.4)) 0041 } 0042 MouseArea { 0043 anchors { 0044 fill: parent 0045 margins: -Kirigami.Units.gridUnit 0046 } 0047 preventStealing: true 0048 onPositionChanged: mouse => { 0049 var pos = mapToItem(target, mouse.x, mouse.y); 0050 pos = target.positionAt(pos.x, pos.y); 0051 0052 if (target.selectedText.length > 0) { 0053 if (selectionStartHandle) { 0054 target.select(Math.min(pos, target.selectionEnd - 1), target.selectionEnd); 0055 } else { 0056 target.select(target.selectionStart, Math.max(pos, target.selectionStart + 1)); 0057 } 0058 } else { 0059 target.cursorPosition = pos; 0060 } 0061 } 0062 } 0063 } 0064 } 0065