diff options
Diffstat (limited to 'portato/gui/windows/basic.py')
-rw-r--r-- | portato/gui/windows/basic.py | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/portato/gui/windows/basic.py b/portato/gui/windows/basic.py index 3cedd69..20d8009 100644 --- a/portato/gui/windows/basic.py +++ b/portato/gui/windows/basic.py @@ -20,10 +20,11 @@ from functools import wraps import os.path from ...constants import TEMPLATE_DIR, APP, LOCALE_DIR -from ...helper import error +from ...helper import error, debug # for the GtkBuilder to translate correctly :) import ctypes +from locale import CODESET try: getlib = ctypes.cdll.LoadLibrary("libgettextlib.so") except OSError: @@ -33,6 +34,13 @@ else: getlib.bindtextdomain(APP, LOCALE_DIR) getlib.bind_textdomain_codeset(APP, "UTF-8") + # some debugging output about the current codeset used + nll = getlib.nl_langinfo + nll.restype = ctypes.c_char_p + debug("Switching from '%s' to 'UTF-8'.", nll(CODESET)) + + getlib.bind_textdomain_codeset(APP, "UTF-8") + class WrappedTree (object): __slots__ = ("klass", "tree", "get_widget", "get_ui") def __init__ (self, klass, tree): @@ -70,10 +78,24 @@ class UIBuilder (object): if not hasattr(self, "__file__"): self.__file__ = self.__class__.__name__ + # general setup self._builder = gtk.Builder() self._builder.add_from_file(os.path.join(TEMPLATE_DIR, self.__file__+".ui")) self._builder.set_translation_domain(APP) + + self.tree = WrappedTree(self.__class__.__name__, self._builder) + # load menu if existing + menufile = os.path.join(TEMPLATE_DIR, self.__file__+".menu") + if os.path.exists(menufile): + debug("There is a menu-file for '%s'. Trying to load it.", self.__file__) + barbox = self.tree.get_widget("menubar_box") + if barbox is not None: + self._builder.add_from_file(menufile) + bar = self.tree.get_ui("menubar") + barbox.pack_start(bar, expand = False, fill = False) + + # signal connections if connector is None: connector = self unconnected = self._builder.connect_signals(connector) @@ -82,8 +104,6 @@ class UIBuilder (object): for uc in set(unconnected): error("Signal '%s' not connected in class '%s'.", uc, self.__class__.__name__) - self.tree = WrappedTree(self.__class__.__name__, self._builder) - class Window (UIBuilder): def __init__ (self): |