Warning, /plasma/qqc2-breeze-style/style/qtquickcontrols/MobileTextActionsToolBar.qml is written in an unsupported language. File is not indexed.

0001 /* SPDX-FileCopyrightText: 2018 Marco Martin <mart@kde.org>
0002  * SPDX-FileCopyrightText: 2021 Noah Davis <noahadvs@gmail.com>
0003  * SPDX-License-Identifier: LGPL-2.0-or-later
0004  */
0005 
0006 import QtQuick
0007 import QtQuick.Layouts
0008 import QtQuick.Window
0009 import QtQuick.Controls
0010 import org.kde.kirigami as Kirigami
0011 
0012 import org.kde.breeze.impl as Impl
0013 
0014 Loader {
0015     id: root
0016     property Item target
0017     visible: Kirigami.Settings.tabletMode && target.selectByMouse && target.selectedText.length > 0
0018     active: visible
0019     sourceComponent: Popup {
0020         id: popup
0021 
0022         property real xAlignHCenter: Math.round(Qt.inputMethod.anchorRectangle.x + (Qt.inputMethod.cursorRectangle.x - Qt.inputMethod.anchorRectangle.x - width)/2)
0023         property real yAlignOver: Math.round(Qt.inputMethod.anchorRectangle.y - height - fontMetrics.descent)
0024 
0025         visible: false
0026         parent: Overlay.overlay
0027         modal: false
0028         focus: false
0029         margins: Impl.Units.verySmallSpacing
0030         padding: Kirigami.Units.smallSpacing
0031 
0032         x: xAlignHCenter
0033         y: yAlignOver
0034 
0035         // HACK: make it appear above most popups that show up in the
0036         // overlay in case any of them use TextField or TextArea
0037         z: 999
0038 
0039         contentItem: RowLayout {
0040             spacing: Kirigami.Units.smallSpacing
0041 
0042             ToolButton {
0043                 focusPolicy: Qt.NoFocus
0044                 icon.name: "edit-cut"
0045                 text: i18nc("@action:inmenu Text editor action", "Cut")
0046                 visible: target && target.selectedText.length > 0 && (!target.hasOwnProperty("echoMode") || target.echoMode === TextInput.Normal)
0047                 onClicked: target.cut();
0048             }
0049 
0050             ToolButton {
0051                 focusPolicy: Qt.NoFocus
0052                 icon.name: "edit-copy"
0053                 text: i18nc("@action:inmenu Text editor action", "Copy")
0054                 visible: target && target.selectedText.length > 0 && (!target.hasOwnProperty("echoMode") || target.echoMode === TextInput.Normal)
0055                 onClicked: target.copy();
0056             }
0057 
0058             ToolButton {
0059                 focusPolicy: Qt.NoFocus
0060                 icon.name: "edit-paste"
0061                 text: i18nc("@action:inmenu Text editor action", "Paste")
0062                 visible: target && target.canPaste
0063                 onClicked: target.paste();
0064             }
0065         }
0066 
0067         FontMetrics {
0068             id: fontMetrics
0069             font: target.font
0070         }
0071     }
0072 }
0073