Warning, /plasma/latte-dock/plasmoid/package/contents/ui/previews/ToolTipDelegate2.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2013 Sebastian Kügler <sebas@kde.org> 0003 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org> 0004 SPDX-FileCopyrightText: 2016 Kai Uwe Broulik <kde@privat.broulik.de> 0005 SPDX-FileCopyrightText: 2017 Roman Gilg <subdiff@gmail.com> 0006 0007 SPDX-License-Identifier: LGPL-2.0-or-later 0008 */ 0009 0010 import QtQuick 2.6 0011 import QtQuick.Layouts 1.1 0012 import QtGraphicalEffects 1.0 0013 import QtQml.Models 2.2 0014 0015 import org.kde.draganddrop 2.0 0016 0017 import org.kde.plasma.core 2.0 as PlasmaCore 0018 import org.kde.plasma.components 2.0 as PlasmaComponents 0019 import org.kde.plasma.extras 2.0 as PlasmaExtras 0020 import org.kde.kquickcontrolsaddons 2.0 as KQuickControlsAddons 0021 0022 import org.kde.taskmanager 0.1 as TaskManager 0023 0024 PlasmaExtras.ScrollArea { 0025 id: mainToolTip 0026 property Item parentTask: null 0027 property var rootIndex: [] 0028 0029 property string appName 0030 property int pidParent 0031 property bool isGroup 0032 property bool hideCloseButtons 0033 0034 property var windows: [] 0035 readonly property bool isWin: windows !== undefined 0036 0037 property variant icon 0038 property url launcherUrl 0039 property bool isLauncher 0040 property bool isMinimizedParent 0041 0042 // Needed for generateSubtext() 0043 property string displayParent 0044 property string genericName 0045 property var virtualDesktopParent 0046 property bool isOnAllVirtualDesktopsParent 0047 property var activitiesParent 0048 // 0049 readonly property bool isVerticalPanel: plasmoid.formFactor === PlasmaCore.Types.Vertical 0050 0051 Layout.minimumWidth: contentItem.width 0052 Layout.maximumWidth: Layout.minimumWidth 0053 0054 Layout.minimumHeight: contentItem.height 0055 Layout.maximumHeight: Layout.minimumHeight 0056 0057 LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft 0058 LayoutMirroring.childrenInherit: true 0059 0060 property int textWidth: theme.mSize(theme.defaultFont).width * 20 0061 0062 verticalScrollBarPolicy: Qt.ScrollBarAlwaysOff 0063 horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff 0064 0065 Component.onCompleted: { 0066 flickableItem.interactive = Qt.binding(function() { 0067 return isVerticalPanel ? contentItem.height > viewport.height : contentItem.width > viewport.width 0068 }); 0069 } 0070 0071 Item{ 0072 width: contentItem.width 0073 height: contentItem.height 0074 0075 //! DropArea 0076 DropArea { 0077 id: dropMainArea 0078 anchors.fill: parent 0079 enabled: isGroup 0080 preventStealing: true 0081 0082 property QtObject currentWindow 0083 0084 onDragLeave: { 0085 windowsPreviewDlg.hide(9.9); 0086 } 0087 0088 onDragMove: { 0089 var current = mainToolTip.instanceAtPos(event.x, event.y); 0090 0091 if (current && currentWindow !== current && current.submodelIndex) { 0092 currentWindow = current; 0093 tasksModel.requestActivate(current.submodelIndex); 0094 } 0095 } 0096 } //! DropArea 0097 0098 Loader { 0099 id: contentItem 0100 active: !isLauncher 0101 sourceComponent: Grid { 0102 rows: !isVerticalPanel 0103 columns: isVerticalPanel 0104 flow: isVerticalPanel ? Grid.TopToBottom : Grid.LeftToRight 0105 spacing: units.largeSpacing 0106 0107 readonly property bool hasVisibleDescription: { 0108 for (var i=0; i<children.length; ++i) { 0109 var child = children[i]; 0110 0111 if (child && child.descriptionIsVisible) { 0112 return true; 0113 } 0114 } 0115 0116 return false; 0117 } 0118 0119 Repeater { 0120 id: groupRepeater 0121 model: DelegateModel { 0122 model: isGroup ? tasksModel : 1 0123 rootIndex: mainToolTip.rootIndex 0124 0125 delegate: ToolTipInstance { 0126 submodelIndex: isGroup ? tasksModel.makeModelIndex(mainToolTip.rootIndex.row, index) : mainToolTip.rootIndex 0127 } 0128 } 0129 } 0130 } 0131 } //! Loader 0132 } //! Item 0133 0134 function instanceAtPos(x, y){ 0135 var previewInstances = isGroup ? contentItem.children[0].children : contentItem.children; 0136 var instancesLength = previewInstances.length; 0137 0138 for(var i=0; i<instancesLength; ++i){ 0139 var instance = previewInstances[i]; 0140 var choords = contentItem.mapFromItem(instance,0, 0); 0141 0142 if(choords.y < 0) 0143 choords.y = 0; 0144 if(choords.x < 0) 0145 choords.x = 0; 0146 0147 if( (x>=choords.x) && (x<=choords.x+instance.width) 0148 && (y>=choords.y) && (y<=choords.y+instance.height)){ 0149 return instance; 0150 } 0151 } 0152 return null; 0153 } 0154 } 0155 0156