Warning, /sdk/rust-qt-binding-generator/demo/qml/ProcessesTree.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  *   Copyright 2017  Jos van den Oever <jos@vandenoever.info>
0003  *
0004  *   This program is free software; you can redistribute it and/or
0005  *   modify it under the terms of the GNU General Public License as
0006  *   published by the Free Software Foundation; either version 2 of
0007  *   the License or (at your option) version 3 or any later version
0008  *   accepted by the membership of KDE e.V. (or its successor approved
0009  *   by the membership of KDE e.V.), which shall act as a proxy
0010  *   defined in Section 14 of version 3 of the license.
0011  *
0012  *   This program is distributed in the hope that it will be useful,
0013  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
0014  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0015  *   GNU General Public License for more details.
0016  *
0017  *   You should have received a copy of the GNU General Public License
0018  *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
0019  */
0020 
0021 import QtQuick 2.6
0022 import QtQml.Models 2.2
0023 import QtQuick.Controls 1.5
0024 import QtQuick.Layouts 1.3
0025 
0026 Item {
0027     TextField {
0028         id: processFilterInput
0029         focus: true
0030         width: parent.width
0031         placeholderText: "Filter processes"
0032         onTextChanged: {
0033             processes.filterRegExp = new RegExp(processFilterInput.text)
0034         }
0035     }
0036     TreeView {
0037         onClicked: {
0038             processSelection.select(
0039                         index, ItemSelectionModel.ToggleCurrent)
0040         }
0041         Binding {
0042             target: demo.processes
0043             property: "active"
0044             value: visible
0045         }
0046         width: parent.width
0047         anchors.top: processFilterInput.bottom
0048         anchors.bottom: parent.bottom
0049         id: processView
0050         model: processes
0051         selection: processSelection
0052         selectionMode: SelectionMode.ExtendedSelection
0053         //                    selectionMode: SelectionMode.SingleSelection
0054         sortIndicatorVisible: true
0055         alternatingRowColors: true
0056         TableViewColumn {
0057             title: "name"
0058             role: "name"
0059         }
0060         TableViewColumn {
0061             title: "cpu"
0062             role: "cpuUsage"
0063         }
0064         TableViewColumn {
0065             title: "memory"
0066             role: "memory"
0067         }
0068         onSortIndicatorColumnChanged: sort()
0069         onSortIndicatorOrderChanged: sort()
0070         function sort() {
0071             var role = getColumn(
0072                         processView.sortIndicatorColumn).role
0073             model.sortByRole(role, processView.sortIndicatorOrder)
0074         }
0075         Timer {
0076             interval: 100
0077             running: true
0078             repeat: true
0079             onTriggered: {
0080                 var root = processView.rootIndex
0081                 var systemd = processes.index(1, 0, root)
0082                 if (processes.data(systemd) === "systemd") {
0083                     processView.expand(systemd)
0084                     running = false
0085                 }
0086             }
0087         }
0088     }
0089 }