mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
engine: Have windows call exit_app directly
This commit is contained in:
parent
6180a3c81f
commit
9fa9777f1c
@ -288,7 +288,7 @@ def main():
|
||||
def _sigint_handler(user_data):
|
||||
ignore = user_data
|
||||
logging.debug("Received KeyboardInterrupt. Exiting application.")
|
||||
engine.exit_app(None)
|
||||
engine.exit_app()
|
||||
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGINT,
|
||||
_sigint_handler, None)
|
||||
|
||||
|
@ -40,6 +40,7 @@ from .connmanager import vmmConnectionManager
|
||||
from .baseclass import vmmGObjectUI
|
||||
from .details import vmmDetails
|
||||
from .domain import vmmDomainVirtinst
|
||||
from .engine import vmmEngine
|
||||
from .mediacombo import vmmMediaCombo
|
||||
from .netlist import vmmNetworkList
|
||||
from .storagebrowse import vmmStorageBrowser
|
||||
|
@ -36,6 +36,7 @@ from . import uiutil
|
||||
from .baseclass import vmmGObjectUI
|
||||
from .addhardware import vmmAddHardware
|
||||
from .choosecd import vmmChooseCD
|
||||
from .engine import vmmEngine
|
||||
from .fsdetails import vmmFSDetails
|
||||
from .gfxdetails import vmmGraphicsDetails
|
||||
from .netlist import vmmNetworkList
|
||||
@ -339,7 +340,6 @@ def _label_for_os_type(os_type):
|
||||
|
||||
class vmmDetails(vmmGObjectUI):
|
||||
__gsignals__ = {
|
||||
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"action-view-manager": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"details-closed": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"details-opened": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
@ -1342,8 +1342,8 @@ class vmmDetails(vmmGObjectUI):
|
||||
def view_manager(self, src_ignore):
|
||||
self.emit("action-view-manager")
|
||||
|
||||
def exit_app(self, src_ignore):
|
||||
self.emit("action-exit-app")
|
||||
def exit_app(self, _src):
|
||||
vmmEngine.get_instance().exit_app()
|
||||
|
||||
def activate_default_console_page(self):
|
||||
pages = self.widget("details-pages")
|
||||
|
@ -32,13 +32,8 @@ from . import packageutils
|
||||
from .baseclass import vmmGObject
|
||||
from .connmanager import vmmConnectionManager
|
||||
from .connect import vmmConnect
|
||||
from .create import vmmCreate
|
||||
from .details import vmmDetails
|
||||
from .error import vmmErrorDialog
|
||||
from .host import vmmHost
|
||||
from .inspection import vmmInspection
|
||||
from .manager import vmmManager
|
||||
from .systray import vmmSystray
|
||||
|
||||
DETAILS_PERF = 1
|
||||
DETAILS_CONFIG = 2
|
||||
@ -200,10 +195,10 @@ class vmmEngine(vmmGObject):
|
||||
self.timeout_add(1000, self._add_default_conn)
|
||||
|
||||
def _init_systray(self):
|
||||
from .systray import vmmSystray
|
||||
self._systray = vmmSystray()
|
||||
self._systray.connect("action-toggle-manager", self._do_toggle_manager)
|
||||
self._systray.connect("action-show-domain", self._do_show_vm)
|
||||
self._systray.connect("action-exit-app", self.exit_app)
|
||||
|
||||
self.add_gsettings_handle(
|
||||
self.config.on_view_system_tray_changed(self._system_tray_changed))
|
||||
@ -445,7 +440,11 @@ class vmmEngine(vmmGObject):
|
||||
self.exit_app(src or self)
|
||||
self.idle_add(cb)
|
||||
|
||||
def exit_app(self, src):
|
||||
def exit_app(self):
|
||||
"""
|
||||
Public call, manager/details/... use this to force exit the app
|
||||
"""
|
||||
src = self
|
||||
if self.err is None:
|
||||
# Already in cleanup
|
||||
return
|
||||
@ -623,10 +622,10 @@ class vmmEngine(vmmGObject):
|
||||
if connstate.windowHost:
|
||||
return connstate.windowHost
|
||||
|
||||
from .host import vmmHost
|
||||
conn = self._connobjs[uri]
|
||||
obj = vmmHost(conn)
|
||||
|
||||
obj.connect("action-exit-app", self.exit_app)
|
||||
obj.connect("action-view-manager", self._do_show_manager)
|
||||
obj.connect("host-opened", self.increment_window_counter)
|
||||
obj.connect("host-closed", self.decrement_window_counter)
|
||||
@ -674,8 +673,8 @@ class vmmEngine(vmmGObject):
|
||||
if connkey in detailsmap:
|
||||
return detailsmap[connkey]
|
||||
|
||||
from .details import vmmDetails
|
||||
obj = vmmDetails(self._connobjs[uri].get_vm(connkey))
|
||||
obj.connect("action-exit-app", self.exit_app)
|
||||
obj.connect("action-view-manager", self._do_show_manager)
|
||||
obj.connect("details-opened", self.increment_window_counter)
|
||||
obj.connect("details-closed", self.decrement_window_counter)
|
||||
@ -708,12 +707,12 @@ class vmmEngine(vmmGObject):
|
||||
if self.windowManager:
|
||||
return self.windowManager
|
||||
|
||||
from .manager import vmmManager
|
||||
obj = vmmManager()
|
||||
obj.connect("action-show-domain", self._do_show_vm)
|
||||
obj.connect("action-show-create", self._do_show_create)
|
||||
obj.connect("action-show-host", self._do_show_host)
|
||||
obj.connect("action-show-connect", self._do_show_connect)
|
||||
obj.connect("action-exit-app", self.exit_app)
|
||||
obj.connect("manager-opened", self.increment_window_counter)
|
||||
obj.connect("manager-closed", self.decrement_window_counter)
|
||||
obj.connect("remove-conn", self._remove_conn)
|
||||
@ -741,6 +740,7 @@ class vmmEngine(vmmGObject):
|
||||
if self.windowCreate:
|
||||
return self.windowCreate
|
||||
|
||||
from .create import vmmCreate
|
||||
obj = vmmCreate()
|
||||
obj.connect("action-show-domain", self._do_show_vm)
|
||||
obj.connect("create-opened", self.increment_window_counter)
|
||||
|
@ -33,6 +33,7 @@ from .asyncjob import vmmAsyncJob
|
||||
from .baseclass import vmmGObjectUI
|
||||
from .createnet import vmmCreateNetwork
|
||||
from .createinterface import vmmCreateInterface
|
||||
from .engine import vmmEngine
|
||||
from .graphwidgets import Sparkline
|
||||
from .storagelist import vmmStorageList
|
||||
|
||||
@ -52,7 +53,6 @@ EDIT_INTERFACE_STARTMODE,
|
||||
|
||||
class vmmHost(vmmGObjectUI):
|
||||
__gsignals__ = {
|
||||
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"action-view-manager": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"host-closed": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"host-opened": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
@ -294,8 +294,8 @@ class vmmHost(vmmGObjectUI):
|
||||
def view_manager(self, src_ignore):
|
||||
self.emit("action-view-manager")
|
||||
|
||||
def exit_app(self, src_ignore):
|
||||
self.emit("action-exit-app")
|
||||
def exit_app(self, _src):
|
||||
vmmEngine.get_instance().exit_app()
|
||||
|
||||
|
||||
def page_changed(self, src, child, pagenum):
|
||||
|
@ -33,6 +33,7 @@ from . import vmmenu
|
||||
from . import uiutil
|
||||
from .baseclass import vmmGObjectUI
|
||||
from .connmanager import vmmConnectionManager
|
||||
from .engine import vmmEngine
|
||||
from .graphwidgets import CellRendererSparkline
|
||||
|
||||
# Number of data points for performance graphs
|
||||
@ -95,7 +96,6 @@ class vmmManager(vmmGObjectUI):
|
||||
"action-show-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||
"action-show-create": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"manager-closed": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"manager-opened": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"remove-conn": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||
@ -463,7 +463,7 @@ class vmmManager(vmmGObjectUI):
|
||||
self._window_size = self.topwin.get_size()
|
||||
|
||||
def exit_app(self, src_ignore=None, src2_ignore=None):
|
||||
self.emit("action-exit-app")
|
||||
vmmEngine.get_instance().exit_app()
|
||||
|
||||
def new_conn(self, src_ignore=None):
|
||||
self.emit("action-show-connect")
|
||||
|
@ -26,6 +26,7 @@ from gi.repository import Gtk
|
||||
from . import vmmenu
|
||||
from .baseclass import vmmGObject
|
||||
from .connmanager import vmmConnectionManager
|
||||
from .engine import vmmEngine
|
||||
from .error import vmmErrorDialog
|
||||
|
||||
|
||||
@ -35,7 +36,6 @@ class vmmSystray(vmmGObject):
|
||||
"action-view-manager": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
"action-show-host": (GObject.SignalFlags.RUN_FIRST, None, [str]),
|
||||
"action-show-domain": (GObject.SignalFlags.RUN_FIRST, None, [str, str]),
|
||||
"action-exit-app": (GObject.SignalFlags.RUN_FIRST, None, []),
|
||||
}
|
||||
|
||||
def __init__(self):
|
||||
@ -300,5 +300,5 @@ class vmmSystray(vmmGObject):
|
||||
menu = self.vm_action_dict[vm.get_connkey()]
|
||||
menu.update_widget_states(vm)
|
||||
|
||||
def exit_app(self, ignore):
|
||||
self.emit("action-exit-app")
|
||||
def exit_app(self, _src):
|
||||
vmmEngine.get_instance().exit_app()
|
||||
|
Loading…
Reference in New Issue
Block a user