Warning, /plasma/plasma-workspace/applets/clipboard/contents/ui/TextItemDelegate.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
0003 SPDX-FileCopyrightText: 2014 Sebastian Kügler <sebas@kde.org>
0004
0005 SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007
0008 import QtQuick 2.15
0009
0010 import org.kde.plasma.components 3.0 as PlasmaComponents3
0011 import org.kde.kirigami 2.20 as Kirigami
0012
0013 PlasmaComponents3.Label {
0014 maximumLineCount: 3
0015 verticalAlignment: Text.AlignVCenter
0016
0017 text: {
0018 var highlightFontTag = "<font color='" + Kirigami.Theme.highlightColor + "'>%1</font>"
0019
0020 var text = DisplayRole.slice(0, 100)
0021
0022 // first escape any HTML characters to prevent privacy issues
0023 text = text.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")
0024
0025 // color code leading or trailing whitespace
0026 // the first regex is basically "trim"
0027 text = text.replace(/^\s+|\s+$/gm, function(match) {
0028 // then inside the trimmed characters ("match") we replace each one individually
0029 match = match.replace(/ /g, "␣") // space
0030 .replace(/\t/g, "⇥") // tab
0031 .replace(/\n/g, "↵") // return
0032 return highlightFontTag.arg(match)
0033 })
0034
0035 // finally turn line breaks into HTML br tags
0036 text = text.replace(/\r\n|\r|\n/g, "<br>")
0037
0038 return text
0039 }
0040 elide: Text.ElideRight
0041 wrapMode: Text.WrapAtWordBoundaryOrAnywhere
0042 textFormat: Text.StyledText
0043
0044 Drag.active: dragHandler.active
0045 Drag.dragType: Drag.Automatic
0046 Drag.supportedActions: Qt.CopyAction
0047 Drag.mimeData: {
0048 "text/plain": DisplayRole,
0049 }
0050 }