Merge qclipd into qubes-manager
Have all gui-notification code in one place. TODO: Change python-dbus to QtDBus, which should better support threads (current version occasionally gets SEGV...).
This commit is contained in:
		
							parent
							
								
									9e4275b2a6
								
							
						
					
					
						commit
						881ee76709
					
				| @ -60,6 +60,7 @@ import time | ||||
| from datetime import datetime,timedelta | ||||
| from qubes.qubes import updates_stat_file | ||||
| qubes_dom0_updates_stat_file = '/var/lib/qubes/updates/dom0-updates-available' | ||||
| qubes_clipboard_info_file = "/var/run/qubes/qubes_clipboard.bin.source" | ||||
| 
 | ||||
| qubes_guid_path = '/usr/bin/qubes_guid' | ||||
| 
 | ||||
| @ -74,12 +75,28 @@ power_order = Qt.DescendingOrder | ||||
| update_order = Qt.AscendingOrder | ||||
| 
 | ||||
| 
 | ||||
| class QubesConfigFileWatcher(ProcessEvent): | ||||
| class QubesManagerFileWatcher(ProcessEvent): | ||||
|     def __init__ (self, update_func): | ||||
|         self.update_func = update_func | ||||
| 
 | ||||
|     def process_IN_MODIFY (self, event): | ||||
|         self.update_func() | ||||
|         if event.path == qubes_store_filename: | ||||
|             self.update_func() | ||||
| 
 | ||||
|     def process_IN_CLOSE_WRITE (self, event): | ||||
|         if event.path == qubes_clipboard_info_file: | ||||
|             src_info_file = open (qubes_clipboard_info_file, 'r') | ||||
|             src_vmname = src_info_file.readline().strip('\n') | ||||
|             if src_vmname == "": | ||||
|                 trayIcon.showMessage("Qubes Clipboard has been copied to the VM and wiped.\n"\ | ||||
|                     "<small>Trigger a paste operation (e.g. Ctrl-v) to insert it into an application.</small>", | ||||
|                    msecs=3000) | ||||
|             else: | ||||
|                 print src_vmname | ||||
|                 trayIcon.showMessage("Qubes Clipboard fetched from VM: <b>'{0}'</b>\n"\ | ||||
|                         "<small>Press Ctrl-Shift-v to copy this clipboard onto dest VM's clipboard.</small>".format(src_vmname), | ||||
|                         msecs=3000) | ||||
|             src_info_file.close() | ||||
| 
 | ||||
| 
 | ||||
| class VmIconWidget (QWidget): | ||||
| @ -2160,12 +2177,12 @@ def main(): | ||||
|     global manager_window | ||||
|     manager_window = VmManagerWindow() | ||||
|     wm = WatchManager() | ||||
|     mask = EventsCodes.OP_FLAGS.get('IN_MODIFY') | ||||
| 
 | ||||
|     global notifier | ||||
|     notifier = ThreadedNotifier(wm, QubesConfigFileWatcher(manager_window.mark_table_for_update)) | ||||
|     notifier = ThreadedNotifier(wm, QubesManagerFileWatcher(manager_window.mark_table_for_update)) | ||||
|     notifier.start() | ||||
|     wdd = wm.add_watch(qubes_store_filename, mask) | ||||
|     wm.add_watch(qubes_store_filename, EventsCodes.OP_FLAGS.get('IN_MODIFY')) | ||||
|     wm.add_watch(qubes_clipboard_info_file, EventsCodes.OP_FLAGS.get('IN_CLOSE_WRITE')) | ||||
| 
 | ||||
|     global system_bus | ||||
|     system_bus = dbus.SystemBus() | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski
						Marek Marczykowski