//// 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 } }
//
// 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.7
import QtQuick.Controls 1.4 as Original
import QtQuick.Controls.Styles 1.4
import stylesUit 1.0
import 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
}
}