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 datetime import datetime,timedelta | ||||||
| from qubes.qubes import updates_stat_file | from qubes.qubes import updates_stat_file | ||||||
| qubes_dom0_updates_stat_file = '/var/lib/qubes/updates/dom0-updates-available' | 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' | qubes_guid_path = '/usr/bin/qubes_guid' | ||||||
| 
 | 
 | ||||||
| @ -74,13 +75,29 @@ power_order = Qt.DescendingOrder | |||||||
| update_order = Qt.AscendingOrder | update_order = Qt.AscendingOrder | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class QubesConfigFileWatcher(ProcessEvent): | class QubesManagerFileWatcher(ProcessEvent): | ||||||
|     def __init__ (self, update_func): |     def __init__ (self, update_func): | ||||||
|         self.update_func = update_func |         self.update_func = update_func | ||||||
| 
 | 
 | ||||||
|     def process_IN_MODIFY (self, event): |     def process_IN_MODIFY (self, event): | ||||||
|  |         if event.path == qubes_store_filename: | ||||||
|             self.update_func() |             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): | class VmIconWidget (QWidget): | ||||||
|     def __init__(self, icon_path, enabled=True, size_multiplier=0.7, tooltip = None, parent=None): |     def __init__(self, icon_path, enabled=True, size_multiplier=0.7, tooltip = None, parent=None): | ||||||
| @ -2160,12 +2177,12 @@ def main(): | |||||||
|     global manager_window |     global manager_window | ||||||
|     manager_window = VmManagerWindow() |     manager_window = VmManagerWindow() | ||||||
|     wm = WatchManager() |     wm = WatchManager() | ||||||
|     mask = EventsCodes.OP_FLAGS.get('IN_MODIFY') |  | ||||||
| 
 | 
 | ||||||
|     global notifier |     global notifier | ||||||
|     notifier = ThreadedNotifier(wm, QubesConfigFileWatcher(manager_window.mark_table_for_update)) |     notifier = ThreadedNotifier(wm, QubesManagerFileWatcher(manager_window.mark_table_for_update)) | ||||||
|     notifier.start() |     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 |     global system_bus | ||||||
|     system_bus = dbus.SystemBus() |     system_bus = dbus.SystemBus() | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski
						Marek Marczykowski