// Copyright (C) 2026 Danilo M. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as // published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. import QtQuick import "../.." // One dot per VM, green for running. The state behind these comes from the // lifecycle event stream, which runs whether or not the page is open, so the // dots are current without the stats poll. Row { spacing: 4 Repeater { model: Virsh.names Rectangle { required property string modelData readonly property string state: Virsh.vms[modelData]?.state ?? "" anchors.verticalCenter: parent.verticalCenter width: 7; height: 7; radius: 4 color: state === "running" ? Theme.green : state === "paused" || state === "suspended" ? Theme.yellow : Theme.overlay } } Text { anchors.verticalCenter: parent.verticalCenter visible: Virsh.names.length === 0 text: "no VMs" font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 4 } color: Theme.subtext } }