core-agent-linux/qubes-rpc/qvm_move_nautilus.py

37 lines
1.2 KiB
Python
Raw Normal View History

import subprocess
from gi.repository import Nautilus, GObject
class MoveToAppvmItemExtension(GObject.GObject, Nautilus.MenuProvider):
'''Move file(s) to AppVM.
Uses the nautilus-python api to provide a context menu within Nautilus which
will enable the user to select file(s) to to move to another AppVM
'''
def get_file_items(self, window, files):
'''Attaches context menu in Nautilus
'''
if not files:
return
menu_item = Nautilus.MenuItem(name='QubesMenuProvider::MoveToAppvm',
label='Move To Other AppVM...',
tip='',
icon='')
menu_item.connect('activate', self.on_menu_item_clicked, files)
return menu_item,
def on_menu_item_clicked(self, menu, files):
'''Called when user chooses files though Nautilus context menu.
'''
for file_obj in files:
# Check if file still exists
if file_obj.is_gone():
return
gio_file = file_obj.get_location()
subprocess.call(['/usr/lib/qubes/qvm-move-to-vm.gnome', gio_file.get_path()])