Warning, /frameworks/qqc2-desktop-style/org.kde.desktop/private/MobileTextActionsToolBar.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 pragma Singleton
0008 
0009 import QtQuick 2.1
0010 import QtQuick.Layouts 1.2
0011 import QtQuick.Window 2.2
0012 import QtQuick.Controls 2.15
0013 import org.kde.kirigami 2.5 as Kirigami
0014 
0015 Popup {
0016     id: root
0017 
0018     property Item controlRoot
0019     parent: controlRoot ? controlRoot.Window.contentItem : undefined
0020     modal: false
0021     focus: false
0022     closePolicy: Popup.NoAutoClose
0023     property bool shouldBeVisible: false
0024 
0025     x: {
0026         if (!controlRoot || !controlRoot.Window.contentItem) {
0027             return 0;
0028         }
0029         return Math.min(Math.max(0, controlRoot.mapToItem(root.parent, controlRoot.positionToRectangle(controlRoot.selectionStart).x, 0).x - root.width/2), controlRoot.Window.contentItem.width - root.width);
0030     }
0031 
0032     y: {
0033         if (!controlRoot || !controlRoot.Window.contentItem) {
0034             return 0;
0035         }
0036         var desiredY = controlRoot.mapToItem(root.parent, 0, controlRoot.positionToRectangle(controlRoot.selectionStart).y).y  - root.height;
0037 
0038         if (desiredY >= 0) {
0039             return Math.min(desiredY, controlRoot.Window.contentItem.height - root.height);
0040         } else {
0041             return Math.min(Math.max(0, controlRoot.mapToItem(root.parent, 0, controlRoot.positionToRectangle(controlRoot.selectionEnd).y + Math.round(Kirigami.Units.gridUnit*1.5)).y), controlRoot.Window.contentItem.height - root.height);
0042         }
0043     }
0044 
0045 
0046     visible: controlRoot ? shouldBeVisible && Kirigami.Settings.tabletMode && (controlRoot.selectedText.length > 0 || controlRoot.canPaste) : false
0047 
0048     width: contentItem.implicitWidth + leftPadding + rightPadding
0049 
0050     contentItem: RowLayout {
0051         ToolButton {
0052             focusPolicy: Qt.NoFocus
0053             icon.name: "edit-cut"
0054             visible: controlRoot && controlRoot.selectedText.length > 0 && (!controlRoot.hasOwnProperty("echoMode") || controlRoot.echoMode === TextInput.Normal)
0055             onClicked: {
0056                 controlRoot.cut();
0057             }
0058         }
0059         ToolButton {
0060             focusPolicy: Qt.NoFocus
0061             icon.name: "edit-copy"
0062             visible: controlRoot && controlRoot.selectedText.length > 0 && (!controlRoot.hasOwnProperty("echoMode") || controlRoot.echoMode === TextInput.Normal)
0063             onClicked: {
0064                 controlRoot.copy();
0065             }
0066         }
0067         ToolButton {
0068             focusPolicy: Qt.NoFocus
0069             icon.name: "edit-paste"
0070             visible: controlRoot && controlRoot.canPaste
0071             onClicked: {
0072                 controlRoot.paste();
0073             }
0074         }
0075     }
0076 }
0077