diff --git a/mainwindow.ui b/mainwindow.ui
index 31c16b0..c30298d 100644
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -219,6 +219,11 @@
Size
+
+
+ Internal
+
+
@@ -258,6 +263,7 @@
+
@@ -774,6 +780,20 @@
Clone VM
+
+
+ true
+
+
+ true
+
+
+ Internal
+
+
+ Is an internal VM
+
+
diff --git a/qubesmanager/main.py b/qubesmanager/main.py
index 0b7468b..1394015 100755
--- a/qubesmanager/main.py
+++ b/qubesmanager/main.py
@@ -322,6 +322,17 @@ class VmNetvmItem (QTableWidgetItem):
self.setTextAlignment(Qt.AlignVCenter)
+class VmInternalItem(QTableWidgetItem):
+ def __init__(self, vm):
+ super(VmInternalItem, self).__init__()
+ self.setFlags(Qt.ItemIsSelectable|Qt.ItemIsEnabled)
+
+ self.internal = vm.internal
+
+ if self.internal:
+ self.setText("Yes")
+ else:
+ self.setText("")
class VmUsageBarWidget (QWidget):
@@ -632,6 +643,8 @@ class VmRowInTable(object):
self.size_widget = VmSizeOnDiskItem(vm)
table.setItem(row_no, VmManagerWindow.columns_indices['Size'], self.size_widget)
+ self.internal_widget = VmInternalItem(vm)
+ table.setItem(row_no, VmManagerWindow.columns_indices['Internal'], self.internal_widget)
def update(self, blk_visible = None, cpu_load = None, update_size_on_disk = False, rec_visible = None):
self.info_widget.update_vm_state(self.vm, blk_visible, rec_visible)
@@ -686,7 +699,8 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
"CPU Graph": 7,
"MEM": 8,
"MEM Graph": 9,
- "Size": 10,}
+ "Size": 10,
+ "Internal": 11,}
@@ -740,7 +754,7 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
self.columns_actions[ self.columns_indices["MEM"] ] = self.action_mem
self.columns_actions[ self.columns_indices["MEM Graph"] ] = self.action_mem_graph
self.columns_actions[ self.columns_indices["Size"] ] = self.action_size_on_disk
-
+ self.columns_actions[ self.columns_indices["Internal"] ] = self.action_internal
self.visible_columns_count = len(self.columns_indices);
self.table.setColumnHidden( self.columns_indices["NetVM"], True)
@@ -757,6 +771,7 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
self.table.setColumnWidth(self.columns_indices["Label"], 40)
self.table.setColumnWidth(self.columns_indices["Type"], 40)
self.table.setColumnWidth(self.columns_indices["Size"], 100)
+ self.table.setColumnWidth(self.columns_indices["Internal"], 60)
self.table.horizontalHeader().setResizeMode(QHeaderView.Fixed)
@@ -948,8 +963,8 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
row_no = 0
for vm in vms_list:
- if vm.internal:
- continue
+ #if vm.internal:
+ # continue
vm_row = VmRowInTable (vm, row_no, self.table, self.blk_manager)
vms_in_table[vm.qid] = vm_row
@@ -1070,7 +1085,7 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
vm_row.update(blk_visible=blk_visible, update_size_on_disk = self.update_size_on_disk, rec_visible = self.vm_rec.get(vm_row.vm.name, False))
- if self.sort_by_column in ["CPU", "CPU Graph", "MEM", "MEM Graph", "State", "Size" ]:
+ if self.sort_by_column in ["CPU", "CPU Graph", "MEM", "MEM Graph", "State", "Size", "Internal" ]:
# "State": needed to sort after reload (fill_table sorts items with setSortingEnabled, but by that time the widgets values are not correct yet).
self.table.sortItems(self.columns_indices[self.sort_by_column], self.sort_order)
@@ -1626,6 +1641,9 @@ class VmManagerWindow(Ui_VmManagerWindow, QMainWindow):
def on_action_state_toggled(self, checked):
self.showhide_column( self.columns_indices['State'], checked)
+ def on_action_internal_toggled(self, checked):
+ self.showhide_column( self.columns_indices['Internal'], checked)
+
def on_action_template_toggled(self, checked):
self.showhide_column( self.columns_indices['Template'], checked)