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