Merge branch 'master' of git.qubes-os.org:/var/lib/qubes/git/marmarek/qubes-manager
Conflicts: qubesmanager/main.py
This commit is contained in:
commit
71f7b850ef
@ -97,23 +97,25 @@ class VmInfoWidget (QWidget):
|
|||||||
|
|
||||||
layout0 = QHBoxLayout()
|
layout0 = QHBoxLayout()
|
||||||
|
|
||||||
label_name = QLabel (vm.name)
|
self.label_name = QLabel (vm.name)
|
||||||
|
|
||||||
self.vm_running = vm.last_power_state
|
self.vm_running = vm.last_power_state
|
||||||
layout0.addWidget(label_name, alignment=Qt.AlignLeft)
|
layout0.addWidget(self.label_name, alignment=Qt.AlignLeft)
|
||||||
|
|
||||||
layout1 = QHBoxLayout()
|
layout1 = QHBoxLayout()
|
||||||
|
|
||||||
if vm.is_appvm() or vm.is_disposablevm():
|
if vm.template_vm is not None:
|
||||||
label_tmpl = QLabel ("<i><font color=\"gray\">" + (vm.template_vm.name if vm.template_vm is not None else "--") + "</i></font>")
|
self.label_tmpl = QLabel ("<i><font color=\"gray\">" + (vm.template_vm.name) + "</i></font>")
|
||||||
|
elif vm.is_appvm(): # and vm.template_vm is None
|
||||||
|
self.label_tmpl = QLabel ("<i><font color=\"gray\">StandaloneVM</i></font>")
|
||||||
elif vm.is_template():
|
elif vm.is_template():
|
||||||
label_tmpl = QLabel ("<i><font color=\"gray\">TemplateVM</i></font>")
|
self.label_tmpl = QLabel ("<i><font color=\"gray\">TemplateVM</i></font>")
|
||||||
elif vm.qid == 0:
|
elif vm.qid == 0:
|
||||||
label_tmpl = QLabel ("<i><font color=\"gray\">AdminVM</i></font>")
|
self.label_tmpl = QLabel ("<i><font color=\"gray\">AdminVM</i></font>")
|
||||||
elif vm.is_netvm():
|
elif vm.is_netvm():
|
||||||
label_tmpl = QLabel ("<i><font color=\"gray\">NetVM</i></font>")
|
self.label_tmpl = QLabel ("<i><font color=\"gray\">NetVM</i></font>")
|
||||||
else:
|
else:
|
||||||
label_tmpl = QLabel ("")
|
self.label_tmpl = QLabel ("")
|
||||||
|
|
||||||
label_icon_networked = self.set_icon(":/networking.png", vm.is_networked())
|
label_icon_networked = self.set_icon(":/networking.png", vm.is_networked())
|
||||||
layout1.addWidget(label_icon_networked, alignment=Qt.AlignLeft)
|
layout1.addWidget(label_icon_networked, alignment=Qt.AlignLeft)
|
||||||
@ -122,7 +124,7 @@ class VmInfoWidget (QWidget):
|
|||||||
label_icon_updtbl = self.set_icon(":/updateable.png", True)
|
label_icon_updtbl = self.set_icon(":/updateable.png", True)
|
||||||
layout1.addWidget(label_icon_updtbl, alignment=Qt.AlignLeft)
|
layout1.addWidget(label_icon_updtbl, alignment=Qt.AlignLeft)
|
||||||
|
|
||||||
layout1.addWidget(label_tmpl, alignment=Qt.AlignLeft)
|
layout1.addWidget(self.label_tmpl, alignment=Qt.AlignLeft)
|
||||||
|
|
||||||
layout1.addStretch()
|
layout1.addStretch()
|
||||||
|
|
||||||
@ -138,6 +140,8 @@ class VmInfoWidget (QWidget):
|
|||||||
|
|
||||||
self.setLayout(layout3)
|
self.setLayout(layout3)
|
||||||
|
|
||||||
|
self.previous_outdated = False
|
||||||
|
|
||||||
def set_icon(self, icon_path, enabled = True):
|
def set_icon(self, icon_path, enabled = True):
|
||||||
label_icon = QLabel()
|
label_icon = QLabel()
|
||||||
icon = QIcon (icon_path)
|
icon = QIcon (icon_path)
|
||||||
@ -150,6 +154,14 @@ class VmInfoWidget (QWidget):
|
|||||||
def update_vm_state (self, vm):
|
def update_vm_state (self, vm):
|
||||||
self.vm_icon.update()
|
self.vm_icon.update()
|
||||||
|
|
||||||
|
def update_outdated(self, vm):
|
||||||
|
outdated = vm.is_outdated()
|
||||||
|
if outdated != self.previous_outdated:
|
||||||
|
if outdated:
|
||||||
|
self.label_name.setStyleSheet("* { color: red }")
|
||||||
|
else:
|
||||||
|
self.label_name.setStyleSheet("* { }")
|
||||||
|
|
||||||
class VmUsageWidget (QWidget):
|
class VmUsageWidget (QWidget):
|
||||||
def __init__(self, vm, parent = None):
|
def __init__(self, vm, parent = None):
|
||||||
super (VmUsageWidget, self).__init__(parent)
|
super (VmUsageWidget, self).__init__(parent)
|
||||||
@ -299,6 +311,7 @@ class VmRowInTable(object):
|
|||||||
self.usage_widget.update_load(self.vm)
|
self.usage_widget.update_load(self.vm)
|
||||||
self.load_widget.update_load(self.vm)
|
self.load_widget.update_load(self.vm)
|
||||||
self.mem_widget.update_load(self.vm)
|
self.mem_widget.update_load(self.vm)
|
||||||
|
self.info_widget.update_outdated(self.vm)
|
||||||
|
|
||||||
class NewAppVmDlg (QDialog, ui_newappvmdlg.Ui_NewAppVMDlg):
|
class NewAppVmDlg (QDialog, ui_newappvmdlg.Ui_NewAppVMDlg):
|
||||||
def __init__(self, parent = None):
|
def __init__(self, parent = None):
|
||||||
@ -314,6 +327,8 @@ class VmShutdownMonitor(QObject):
|
|||||||
def check_if_vm_has_shutdown(self):
|
def check_if_vm_has_shutdown(self):
|
||||||
vm = self.vm
|
vm = self.vm
|
||||||
if not vm.is_running():
|
if not vm.is_running():
|
||||||
|
if vm.is_template():
|
||||||
|
trayIcon.showMessage ("Qubes Manager", "You have just modified template '{0}'. You should restart VMs based on it!".format(vm.name), msecs=3000)
|
||||||
return
|
return
|
||||||
|
|
||||||
reply = QMessageBox.question(None, "VM Shutdown",
|
reply = QMessageBox.question(None, "VM Shutdown",
|
||||||
@ -515,6 +530,8 @@ class VmManagerWindow(QMainWindow):
|
|||||||
for vm in vms_list:
|
for vm in vms_list:
|
||||||
if (not self.show_inactive_vms) and (not vm.last_power_state):
|
if (not self.show_inactive_vms) and (not vm.last_power_state):
|
||||||
continue
|
continue
|
||||||
|
if vm.internal:
|
||||||
|
continue
|
||||||
vm_row = VmRowInTable (vm, row_no, self.table)
|
vm_row = VmRowInTable (vm, row_no, self.table)
|
||||||
vms_in_table.append (vm_row)
|
vms_in_table.append (vm_row)
|
||||||
row_no += 1
|
row_no += 1
|
||||||
@ -604,7 +621,7 @@ class VmManagerWindow(QMainWindow):
|
|||||||
dialog.vmlabel.insertItem(i, label.name)
|
dialog.vmlabel.insertItem(i, label.name)
|
||||||
dialog.vmlabel.setItemIcon (i, QIcon(label.icon_path))
|
dialog.vmlabel.setItemIcon (i, QIcon(label.icon_path))
|
||||||
|
|
||||||
template_vm_list = [vm for vm in self.qvm_collection.values() if vm.is_template()]
|
template_vm_list = [vm for vm in self.qvm_collection.values() if not vm.internal and vm.is_template()]
|
||||||
|
|
||||||
default_index = 0
|
default_index = 0
|
||||||
for (i, vm) in enumerate(template_vm_list):
|
for (i, vm) in enumerate(template_vm_list):
|
||||||
@ -789,7 +806,7 @@ class VmManagerWindow(QMainWindow):
|
|||||||
|
|
||||||
retcode = subprocess.call ([qubes_guid_path, "-d", str(xid), "-c", vm.label.color, "-i", vm.label.icon, "-l", str(vm.label.index)])
|
retcode = subprocess.call ([qubes_guid_path, "-d", str(xid), "-c", vm.label.color, "-i", vm.label.icon, "-l", str(vm.label.index)])
|
||||||
if (retcode != 0):
|
if (retcode != 0):
|
||||||
hread_monitor.set_error_msg("Cannot start qubes_guid!")
|
thread_monitor.set_error_msg("Cannot start qubes_guid!")
|
||||||
|
|
||||||
thread_monitor.set_finished()
|
thread_monitor.set_finished()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user