Warning, /plasma/plasma-desktop/applets/kicker/package/contents/ui/RunnerResultsList.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2013-2014 Eike Hein <hein@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 import QtQuick 2.15
0008 import QtQuick.Layouts 1.15
0009 
0010 import org.kde.plasma.components 3.0 as PlasmaComponents3
0011 import org.kde.kirigami 2.20 as Kirigami
0012 import org.kde.ksvg 1.0 as KSvg
0013 import org.kde.plasma.plasmoid 2.0
0014 
0015 FocusScope {
0016     width: runnerMatches.width + vertLine.width + vertLine.anchors.leftMargin + runnerMatches.anchors.leftMargin
0017     height: parent.height
0018 
0019     signal keyNavigationAtListEnd
0020 
0021     property alias currentIndex: runnerMatches.currentIndex
0022     property alias count: runnerMatches.count
0023     property alias containsMouse: runnerMatches.containsMouse
0024 
0025     Accessible.name: header.text
0026     Accessible.role: Accessible.MenuItem
0027 
0028     KSvg.SvgItem {
0029         id: vertLine
0030 
0031         anchors.left: parent.left
0032         anchors.leftMargin: (index > 0 ) ? Kirigami.Units.smallSpacing : 0
0033 
0034         width: (index > 0 ) ? lineSvg.vertLineWidth : 0
0035         height: parent.height
0036 
0037         visible: (index > 0)
0038 
0039         svg: lineSvg
0040         elementId: "vertical-line"
0041     }
0042 
0043     PlasmaComponents3.Label {
0044         id: header
0045 
0046         anchors.left: vertLine.right
0047 
0048         width: runnerMatches.width
0049         height: runnerMatches.itemHeight + Kirigami.Units.smallSpacing
0050 
0051         horizontalAlignment: Text.AlignHCenter
0052         verticalAlignment: Text.AlignVTop
0053 
0054         textFormat: Text.PlainText
0055         wrapMode: Text.NoWrap
0056         elide: Text.ElideRight
0057         font.weight: Font.Bold
0058 
0059         text: (runnerMatches.model !== null) ? runnerMatches.model.name : ""
0060     }
0061 
0062     ItemListView {
0063         id: runnerMatches
0064 
0065         anchors.top: Plasmoid.configuration.alignResultsToBottom ? undefined : header.bottom
0066         anchors.bottom: Plasmoid.configuration.alignResultsToBottom ? parent.bottom : undefined
0067         anchors.bottomMargin: (index == 0 && anchors.bottom !== undefined) ? searchField.height + (2 * Kirigami.Units.smallSpacing) : undefined
0068         anchors.left: vertLine.right
0069         anchors.leftMargin: (index > 0) ? Kirigami.Units.smallSpacing : 0
0070 
0071         height: {
0072             var listHeight = (((index == 0)
0073                 ? rootList.height : runnerColumns.height) - header.height);
0074 
0075             if (model && model.count) {
0076                 return Math.min(favoriteSystemActions.height + favoriteApps.height - header.height, model.count * itemHeight);
0077             }
0078 
0079             return listHeight;
0080         }
0081 
0082         focus: true
0083 
0084         iconsEnabled: true
0085         keyNavigationWraps: (index != 0)
0086 
0087         resetOnExitDelay: 0
0088 
0089         model: runnerModel.modelForRow(index)
0090 
0091         onModelChanged: {
0092             if (model === undefined || model === null) {
0093                 enabled: false;
0094                 visible: false;
0095             }
0096         }
0097 
0098         onCountChanged: {
0099             if (index == 0 && searchField.focus) {
0100                 currentIndex = 0;
0101             }
0102         }
0103     }
0104 
0105     Component.onCompleted: {
0106         runnerMatches.keyNavigationAtListEnd.connect(keyNavigationAtListEnd);
0107     }
0108 }