Browse Source

Add tooltip to application list in VM settings

The 'Comment' field will now be displayed as a tooltip in VM settings.
Requires https://github.com/QubesOS/qubes-desktop-linux-common/pull/12

references QubesOS/qubes-issues#5076
Marta Marczykowska-Górecka 5 years ago
parent
commit
4567707207
1 changed files with 9 additions and 7 deletions
  1. 9 7
      qubesmanager/appmenu_select.py

+ 9 - 7
qubesmanager/appmenu_select.py

@@ -27,15 +27,16 @@ import PyQt4.QtGui  # pylint: disable=import-error
 # TODO icon
 # pylint: disable=too-few-public-methods
 class AppListWidgetItem(PyQt4.QtGui.QListWidgetItem):
-    def __init__(self, name, ident, parent=None):
+    def __init__(self, name, ident, tooltip=None, parent=None):
         super(AppListWidgetItem, self).__init__(name, parent)
-#       self.setToolTip(command)
+        if tooltip:
+            self.setToolTip(tooltip)
         self.ident = ident
 
     @classmethod
     def from_line(cls, line):
-        ident, _icon_name, name = line.strip().split(maxsplit=2)
-        return cls(name=name, ident=ident)
+        ident, name, comment = line.split('|', maxsplit=3)
+        return cls(name=name, ident=ident, tooltip=comment)
 
 
 class AppmenuSelectManager:
@@ -58,9 +59,10 @@ class AppmenuSelectManager:
         self.app_list.clear()
 
         available_appmenus = [AppListWidgetItem.from_line(line)
-            for line in subprocess.check_output(['qvm-appmenus',
-                    '--get-available', '--i-understand-format-is-unstable',
-                    self.vm.name]).decode().splitlines()]
+            for line in subprocess.check_output(
+                ['qvm-appmenus', '--get-available',
+                 '--i-understand-format-is-unstable', '--file-field',
+                 'Comment', self.vm.name]).decode().splitlines()]
 
         for app in available_appmenus:
             if app.ident in self.whitelisted: