mirror of
https://github.com/virt-manager/virt-manager.git
synced 2024-12-23 17:34:21 +03:00
hostkeymap: Globally cache the host lookup
Rather than make the callers worry about it
This commit is contained in:
parent
ed826315a5
commit
41afdfd9aa
@ -125,10 +125,6 @@ class VirtualGraphics(VirtualDevice):
|
||||
if channels:
|
||||
self.channels = channels
|
||||
|
||||
def _cache(self):
|
||||
# Make sure we've cached the _local_keymap value before copy()
|
||||
self._default_keymap()
|
||||
|
||||
def _default_keymap(self, force_local=False):
|
||||
if (not force_local and
|
||||
self.conn.check_conn_support(
|
||||
|
@ -20,6 +20,9 @@
|
||||
import logging
|
||||
import re
|
||||
|
||||
|
||||
_cached_keymap = None
|
||||
|
||||
# Host keytable entry : keymap name in qemu/xen
|
||||
# Only use lower case entries: all lookups are .lower()'d
|
||||
keytable = {
|
||||
@ -130,6 +133,13 @@ def _xorg_keymap():
|
||||
|
||||
|
||||
def default_keymap():
|
||||
global _cached_keymap
|
||||
if _cached_keymap is None:
|
||||
_cached_keymap = _default_keymap()
|
||||
return _cached_keymap
|
||||
|
||||
|
||||
def _default_keymap():
|
||||
"""
|
||||
Look in various config files for the host machine's keymap, and attempt
|
||||
to map it to a keymap supported by qemu
|
||||
@ -168,13 +178,10 @@ def default_keymap():
|
||||
return default
|
||||
|
||||
kt = kt.lower()
|
||||
|
||||
keymap = sanitize_keymap(kt)
|
||||
|
||||
if not keymap:
|
||||
logging.debug("Didn't match keymap '%s' in keytable!", kt)
|
||||
return default
|
||||
|
||||
return keymap
|
||||
|
||||
|
||||
|
@ -519,17 +519,7 @@ class XMLBuilder(object):
|
||||
self._parsexml(parsexml, parsexmlnode)
|
||||
|
||||
|
||||
def _cache(self):
|
||||
"""
|
||||
This is a hook for classes to cache any state that is expensive
|
||||
to lookup before we copy the object as part of Guest.get_xml_config.
|
||||
Saves us from possibly doing the lookup over and over
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def copy(self):
|
||||
self._cache()
|
||||
return copy.copy(self)
|
||||
|
||||
def _get_conn(self):
|
||||
|
Loading…
Reference in New Issue
Block a user