|
@@ -17,15 +17,24 @@ class OpenInDvmItemExtension(GObject.GObject, Nautilus.MenuProvider):
|
|
|
if not files:
|
|
|
return
|
|
|
|
|
|
- menu_item = Nautilus.MenuItem(name='QubesMenuProvider::OpenInDvm',
|
|
|
- label='Open In DisposableVM',
|
|
|
+ menu_item1 = Nautilus.MenuItem(name='QubesMenuProvider::OpenInDvm',
|
|
|
+ label='Edit In DisposableVM',
|
|
|
tip='',
|
|
|
icon='')
|
|
|
|
|
|
- menu_item.connect('activate', self.on_menu_item_clicked, files)
|
|
|
- return menu_item,
|
|
|
+ menu_item1.connect('activate', self.on_menu_item_clicked, files)
|
|
|
|
|
|
- def on_menu_item_clicked(self, menu, files):
|
|
|
+ menu_item2 = Nautilus.MenuItem(name='QubesMenuProvider::ViewInDvm',
|
|
|
+ label='View In DisposableVM',
|
|
|
+ tip='',
|
|
|
+ icon='')
|
|
|
+
|
|
|
+ menu_item2.connect('activate',
|
|
|
+ self.on_menu_item_clicked,
|
|
|
+ files, True)
|
|
|
+ return menu_item1, menu_item2,
|
|
|
+
|
|
|
+ def on_menu_item_clicked(self, menu, files, view_only=False):
|
|
|
'''Called when user chooses files though Nautilus context menu.
|
|
|
'''
|
|
|
for file_obj in files:
|
|
@@ -38,6 +47,11 @@ class OpenInDvmItemExtension(GObject.GObject, Nautilus.MenuProvider):
|
|
|
|
|
|
# Use subprocess.DEVNULL in python >= 3.3
|
|
|
devnull = open(os.devnull, 'wb')
|
|
|
+ command = ['nohup', '/usr/bin/qvm-open-in-dvm']
|
|
|
+ if view_only:
|
|
|
+ command.append('--view-only')
|
|
|
+ command.append(gio_file.get_path())
|
|
|
|
|
|
# Use Popen instead of subprocess.call to spawn the process
|
|
|
- Popen(['nohup', '/usr/bin/qvm-open-in-dvm', gio_file.get_path()], stdout=devnull, stderr=devnull)
|
|
|
+ Popen(command, stdout=devnull, stderr=devnull)
|
|
|
+ devnull.close()
|