102 lines · 2.9 KB · Text
RawDownload
////  jet/TaskListView.qml////  Created by Sam Gateau, 2018/05/09//  Copyright 2018 High Fidelity, Inc.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// import QtQuick 2.7import QtQuick.Controls 1.4 as Originalimport QtQuick.Controls.Styles 1.4 import stylesUit 1.0import controlsUit 1.0 as HifiControls import "../jet.js" as Jet Rectangle {    HifiConstants { id: hifi;}    color: Qt.rgba(hifi.colors.baseGray.r, hifi.colors.baseGray.g, hifi.colors.baseGray.b, 0.8);    id: root;        property var rootConfig : Workload         Component.onCompleted: {        var functor = Jet.job_tree_model_functor(jobsModel, 3, function(node) {              node["cpuT"] = 0.0        })        Jet.task_traverseTree(rootConfig, functor);    }                ListModel {        id: jobsModel        property var engineJobItemModel : []    }     Component {        id: objRecursiveDelegate        Column {            id: objRecursiveColumn            clip: true            visible: model.init               function switchFold() {                for(var i = 1; i < children.length - 1; ++i) {                    children[i].visible = !children[i].visible                }            }                        Row {                id: objRow                Item {                    height: 1                    width: model.level * 15                }                 HifiControls.CheckBox {                    id: objCheck                    property var config: root.rootConfig.getConfig(model.path + "." + model.name);                    text: " "                    checked: root.rootConfig.getConfig(model.path + "." + model.name).enabled                    onCheckedChanged: { root.rootConfig.getConfig(model.path + "." + model.name).enabled = checked }                }                 MouseArea {                    width: objLabel.implicitWidth                    height: objLabel.implicitHeight                     onDoubleClicked: {                        parent.parent.switchFold()                    }                     HifiControls.Label {                        id: objLabel                        colorScheme: (root.rootConfig.getConfig(model.path + "." + model.name) ? hifi.colorSchemes.dark : hifi.colorSchemes.light)                        text: (objRecursiveColumn.children.length > 2 ?                                objRecursiveColumn.children[1].visible ?                                qsTr("-  ") : qsTr("+ ") : qsTr("   ")) + model.name                                + " id=" + model.id                    }                }            }             Repeater {                model: subNode                delegate: objRecursiveDelegate            }        }    }     ListView {        anchors.fill: parent          id: theView        model: jobsModel        delegate: objRecursiveDelegate    }    }