Skip to content

Commit b9df4e5

Browse files
committed
Merge remote-tracking branch 'origin/pr/444'
* origin/pr/444: Add preloaded disposable icon to state column Add preloaded disposable string to internal column
2 parents 88161db + 4612616 commit b9df4e5

3 files changed

Lines changed: 38 additions & 3 deletions

File tree

icons/qubes-preloaded.svg

Lines changed: 3 additions & 0 deletions
Loading

qubesmanager/qube_manager.py

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ def __init__(self):
106106
"Halted" : QIcon(":/blank"),
107107
"Blocked" : QIcon(":/ban"),
108108
}
109+
self.preloadIcon = QIcon(":/preloaded")
110+
self.preloadTooltip = (
111+
"Preloaded disposable qube\n\nTo configure preloading, see Qubes Global "
112+
"Config and Qube Settings"
113+
)
109114
self.outdatedIcons = {
110115
"update" : QIcon(":/updateable"),
111116
"outdated" : QIcon(":/outdated"),
@@ -175,6 +180,11 @@ def paint(self, qp, option, index):
175180
.pixmap(iconSize))
176181
left += delta
177182

183+
if index.data()['is_preload']:
184+
qp.drawPixmap(iconRect.translated(left, 0),
185+
self.preloadIcon.pixmap(iconSize))
186+
left += delta
187+
178188
qp.restore()
179189

180190
def helpEvent(self, event, view, option, index):
@@ -209,6 +219,7 @@ def helpEvent(self, event, view, option, index):
209219
else:
210220
QToolTip.showText(event.globalPos(),
211221
index.data()['power'], view)
222+
212223
else:
213224
margin = iconRect.left() - option.rect.left()
214225
left = delta = margin + iconRect.width()
@@ -223,7 +234,18 @@ def helpEvent(self, event, view, option, index):
223234
view)
224235
# shift the left *only* if the role is True, otherwise we
225236
# can assume that that icon doesn't exist at all
226-
left += delta
237+
left += delta
238+
239+
if index.data()['is_preload']:
240+
if event.pos() in iconRect.translated(left, 0):
241+
# see above (*)
242+
if index != self.lastIndex:
243+
QToolTip.showText(QPoint(), ' ')
244+
QToolTip.showText(event.globalPos(), self.preloadTooltip, view)
245+
# shift the left *only* if the role is True, otherwise we
246+
# can assume that that icon doesn't exist at all
247+
left += delta
248+
227249
self.lastIndex = index
228250
return True
229251

@@ -241,7 +263,7 @@ def __init__(self, vm):
241263
self.icon = getattr(vm, 'icon', 'appvm-black')
242264
self.auto_cleanup = getattr(vm, 'auto_cleanup', False)
243265

244-
self.state = {'power': "", 'outdated': ""}
266+
self.state = {'power': "", 'outdated': "", 'is_preload': ""}
245267
self.updateable = getattr(vm, 'updateable', False)
246268
self.update(True)
247269

@@ -327,6 +349,9 @@ def update(self, update_size_on_disk=False, event=None):
327349
if not event or event.endswith(':internal'):
328350
self.internal = manager_utils.get_boolean_feature(
329351
self.vm, 'internal')
352+
if not event or event.endswith(':is_preload'):
353+
self.is_preload = getattr(self.vm, 'is_preload', None)
354+
self.state['is_preload'] = getattr(self.vm, 'is_preload', None)
330355

331356
if not event or event.endswith(':ip') or event.endswith(':netvm'):
332357
if getattr(self.vm, 'netvm', None) \
@@ -467,7 +492,11 @@ def data(self, index, role):
467492
if col_name == "Disk Usage":
468493
return vm.disk
469494
if col_name == "Internal":
470-
return "Yes" if vm.internal else ""
495+
if getattr(vm, "is_preload", None):
496+
return "Yes (preloaded)"
497+
if vm.internal:
498+
return "Yes"
499+
return ""
471500
if col_name == "IP Address":
472501
return vm.ip
473502
if col_name == "Last backup":
@@ -888,6 +917,8 @@ def __init__(self, qt_app, qubes_app, dispatcher, _parent=None):
888917
dispatcher.add_handler('domain-add', self.on_domain_added)
889918
dispatcher.add_handler('domain-delete', self.on_domain_removed)
890919

920+
dispatcher.add_handler('property-reset:*',
921+
self.on_domain_changed)
891922
dispatcher.add_handler('property-set:*',
892923
self.on_domain_changed)
893924
dispatcher.add_handler('property-del:*',

resources.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<file alias="template-switcher.svg">icons/template-switcher.svg</file>
3939
<file alias="templatevm">icons/templatevm.svg</file>
4040
<file alias="transient">icons/transient.svg</file>
41+
<file alias="preloaded">icons/qubes-preloaded.svg</file>
4142
<file alias="updateable">icons/updateable.svg</file>
4243
<file alias="vm-settings">icons/vm-settings.svg</file>
4344
<file alias="warning">icons/warning.svg</file>

0 commit comments

Comments
 (0)