mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
cli: add --show-systray option
This commit is contained in:
parent
014d1ef99b
commit
69290e0526
@ -47,6 +47,7 @@ class vmmEngine(vmmGObject):
|
||||
CLI_SHOW_DOMAIN_CONSOLE = "console"
|
||||
CLI_SHOW_DOMAIN_DELETE = "delete"
|
||||
CLI_SHOW_HOST_SUMMARY = "summary"
|
||||
CLI_SHOW_SYSTEM_TRAY = "systray"
|
||||
|
||||
@classmethod
|
||||
def get_instance(cls):
|
||||
@ -63,6 +64,8 @@ class vmmEngine(vmmGObject):
|
||||
|
||||
self._exiting = False
|
||||
|
||||
self.systray_instance = None
|
||||
|
||||
self._window_count = 0
|
||||
self._gtkapplication = None
|
||||
self._init_gtk_application()
|
||||
@ -95,7 +98,7 @@ class vmmEngine(vmmGObject):
|
||||
"""
|
||||
Actual startup routines if we are running a new instance of the app
|
||||
"""
|
||||
vmmSystray.get_instance()
|
||||
self.systray_instance = vmmSystray.get_instance()
|
||||
vmmInspection.get_instance()
|
||||
|
||||
self.add_gsettings_handle(
|
||||
@ -441,6 +444,9 @@ class vmmEngine(vmmGObject):
|
||||
self.CLI_SHOW_DOMAIN_CONSOLE,
|
||||
self.CLI_SHOW_DOMAIN_DELETE]):
|
||||
self._cli_show_vm_helper(uri, clistr, show_window)
|
||||
elif show_window == self.CLI_SHOW_SYSTEM_TRAY:
|
||||
log.debug("Showing in the system tray")
|
||||
self.systray_instance._show_systray()
|
||||
else: # pragma: no cover
|
||||
raise RuntimeError("Unknown cli window command '%s'" %
|
||||
show_window)
|
||||
@ -461,6 +467,11 @@ class vmmEngine(vmmGObject):
|
||||
log.debug("processing cli command uri=%s show_window=%s domain=%s",
|
||||
uri, show_window, domain)
|
||||
if not uri:
|
||||
if show_window == self.CLI_SHOW_SYSTEM_TRAY:
|
||||
log.debug("Launching in the system tray without --connect")
|
||||
self.systray_instance._show_systray()
|
||||
return
|
||||
|
||||
log.debug("No cli action requested, launching default window")
|
||||
self._get_manager().show()
|
||||
return
|
||||
|
@ -155,6 +155,8 @@ def parse_commandline():
|
||||
help="Show domain delete window")
|
||||
parser.add_argument("--show-host-summary", action="store_true",
|
||||
help="Show connection details window")
|
||||
parser.add_argument("--show-systray", action="store_true",
|
||||
help="Launch virt-manager in system tray")
|
||||
|
||||
return parser.parse_known_args()
|
||||
|
||||
@ -240,12 +242,16 @@ def main():
|
||||
elif options.show_domain_delete:
|
||||
show_window = vmmEngine.CLI_SHOW_DOMAIN_DELETE
|
||||
domain = options.show_domain_delete
|
||||
elif options.show_systray:
|
||||
show_window = vmmEngine.CLI_SHOW_SYSTEM_TRAY
|
||||
|
||||
if show_window and options.uri is None: # pragma: no cover
|
||||
raise RuntimeError("can't use --show-* options without --connect")
|
||||
if (show_window and show_window != vmmEngine.CLI_SHOW_SYSTEM_TRAY and
|
||||
options.uri is None): # pragma: no cover
|
||||
raise RuntimeError("can't use --show-* options without --connect "
|
||||
"(except --show-systray)")
|
||||
|
||||
skip_autostart = False
|
||||
if show_window:
|
||||
if show_window and show_window != vmmEngine.CLI_SHOW_SYSTEM_TRAY:
|
||||
skip_autostart = True
|
||||
|
||||
# Hook libvirt events into glib main loop
|
||||
|
Loading…
Reference in New Issue
Block a user