console: Move _change_title behavior to vmwindow

This is where it conceptually belongs

Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
Cole Robinson 2020-09-20 22:53:30 -04:00
parent 95f363d634
commit c0c704e1fa
2 changed files with 25 additions and 18 deletions

View File

@ -299,6 +299,7 @@ class vmmConsolePages(vmmGObjectUI):
__gsignals__ = {
"page-changed": (vmmGObjectUI.RUN_FIRST, None, []),
"leave-fullscreen": (vmmGObjectUI.RUN_FIRST, None, []),
"change-title": (vmmGObjectUI.RUN_FIRST, None, []),
}
def __init__(self, vm, builder, topwin):
@ -308,8 +309,6 @@ class vmmConsolePages(vmmGObjectUI):
self.vm = vm
self.top_box = self.widget("console-pages")
self._pointer_is_grabbed = False
self._change_title()
self.vm.connect("state-changed", self._change_title)
# State for disabling modifiers when keyboard is grabbed
self._accel_groups = Gtk.accel_groups_from_object(self.topwin)
@ -379,20 +378,6 @@ class vmmConsolePages(vmmGObjectUI):
# Internal APIs #
#################
def _change_title(self, ignore1=None):
title = (_("%(vm-name)s on %(connection-name)s") % {
"vm-name": self.vm.get_name_or_title(),
"connection-name": self.vm.conn.get_pretty_desc(),
})
if self._pointer_is_grabbed and self._viewer:
keystr = self._viewer.console_get_grab_keys()
keymsg = _("Press %s to release pointer.") % keystr
title = keymsg + " " + title
self.topwin.set_title(title)
def _disable_modifiers(self):
if self._gtk_settings_accel is not None:
return # pragma: no cover
@ -780,11 +765,11 @@ class vmmConsolePages(vmmGObjectUI):
def _pointer_grabbed(self, ignore):
self._pointer_is_grabbed = True
self._change_title()
self.emit("change-title")
def _pointer_ungrabbed(self, ignore):
self._pointer_is_grabbed = False
self._change_title()
self.emit("change-title")
def _viewer_allocate_cb(self, src, ignore):
self.widget("console-gfx-scroll").queue_resize()
@ -981,6 +966,10 @@ class vmmConsolePages(vmmGObjectUI):
def vmwindow_close_viewer(self):
return self._activate_vm_unavailable_page(
_("Viewer disconnected."))
def vmwindow_get_title_message(self):
if self._pointer_is_grabbed and self._viewer:
keystr = self._viewer.console_get_grab_keys()
return _("Press %s to release pointer.") % keystr
def vmwindow_activate_default_console_page(self):
return self._activate_default_console_page()

View File

@ -73,6 +73,8 @@ class vmmVMWindow(vmmGObjectUI):
self._console.connect("page-changed", self._console_page_changed_cb)
self._console.connect("leave-fullscreen",
self._console_leave_fullscreen_cb)
self._console.connect("change-title",
self._console_change_title_cb)
self._snapshots = vmmSnapshotPage(self.vm, self.builder, self.topwin)
self.widget("snapshot-placeholder").add(self._snapshots.top_box)
@ -385,8 +387,21 @@ class vmmVMWindow(vmmGObjectUI):
self.widget("details-vm-menu").get_submenu().change_run_text(text)
self.widget("control-run").set_label(strip_text)
def _refresh_title(self):
title = (_("%(vm-name)s on %(connection-name)s") % {
"vm-name": self.vm.get_name_or_title(),
"connection-name": self.vm.conn.get_pretty_desc(),
})
grabmsg = self._console.vmwindow_get_title_message()
if grabmsg:
title = grabmsg + " " + title
self.topwin.set_title(title)
def _refresh_vm_state(self):
vm = self.vm
self._refresh_title()
self.widget("details-menu-view-toolbar").set_active(
self.config.get_details_show_toolbar())
@ -679,6 +694,9 @@ class vmmVMWindow(vmmGObjectUI):
# This will trigger de-fullscreening in a roundabout way
self.widget("control-fullscreen").set_active(False)
def _console_change_title_cb(self, src):
self._refresh_title()
def _vm_state_changed_cb(self, src):
self._refresh_vm_state()