summaryrefslogtreecommitdiff
path: root/portato/gui
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--portato/gui/windows/basic.py45
1 files changed, 25 insertions, 20 deletions
diff --git a/portato/gui/windows/basic.py b/portato/gui/windows/basic.py
index 1117e5e..330f823 100644
--- a/portato/gui/windows/basic.py
+++ b/portato/gui/windows/basic.py
@@ -14,7 +14,6 @@ from __future__ import absolute_import
# gtk stuff
import gtk
-import gtk.glade
import gobject
from functools import wraps
@@ -23,9 +22,6 @@ import os.path
from ...constants import TEMPLATE_DIR, APP, LOCALE_DIR
from ...helper import error
-gtk.glade.bindtextdomain (APP, LOCALE_DIR)
-gtk.glade.textdomain (APP)
-
class WrappedTree (object):
__slots__ = ("klass", "tree", "get_widget")
def __init__ (self, klass, tree):
@@ -39,25 +35,35 @@ class WrappedTree (object):
return getattr(self.tree, name)
def get_widget(self, name):
- w = self.tree.get_widget(name)
+ w = self.tree.get_object(name)
if w is None:
error("Widget '%s' could not be found in class '%s'.", name, self.klass)
return w
-class Window (object):
+class UIBuilder (object):
+
+ def __init__ (self, connector = None):
+ if not hasattr(self, "__file__"):
+ self.__file__ = self.__class__.__name__
+
+ self._builder = gtk.Builder()
+ self._builder.add_from_file(os.path.join(TEMPLATE_DIR, self.__file__+".ui"))
+ self._builder.set_translation_domain(APP)
+
+ if connector is None: connector = self
+
+ self._builder.connect_signals(connector)
+
+ self.tree = WrappedTree(self.__class__.__name__, self._builder)
+
+class Window (UIBuilder):
def __init__ (self):
- if not hasattr(self, "__tree__"):
- self.__tree__ = self.__class__.__name__
+ UIBuilder.__init__(self)
if not hasattr(self, "__window__"):
self.__window__ = self.__class__.__name__
- if not hasattr(self, "__file__"):
- self.__file__ = self.__class__.__name__
-
- self.tree = self.get_tree(self.__tree__)
- self.tree.signal_autoconnect(self)
self.window = self.tree.get_widget(self.__window__)
@staticmethod
@@ -82,9 +88,6 @@ class Window (object):
return wrapper
- def get_tree (self, name):
- return WrappedTree(self.__class__.__name__, gtk.glade.XML(os.path.join(TEMPLATE_DIR, self.__file__+".glade"), name))
-
class AbstractDialog (Window):
"""A class all our dialogs get derived from. It sets useful default vars and automatically handles the ESC-Button."""
@@ -115,11 +118,13 @@ class AbstractDialog (Window):
def close (self, *args):
self.window.destroy()
-class Popup (object):
+class Popup (UIBuilder):
+
+ __file__ = "popups"
+
+ def __init__ (self, name, parent):
- def __init__ (self, name, parent, file = "popups"):
- self.tree = WrappedTree(self.__class__.__name__, gtk.glade.XML(os.path.join(TEMPLATE_DIR, file+".glade"), root = name))
- self.tree.signal_autoconnect(parent)
+ UIBuilder.__init__(self, connector = parent)
self._popup = self.tree.get_widget(name)
def popup (self, *args):
6fd68f816e77de62b93df4c32fd1110d0c&follow=1'>Add a common commit parserLars Hjemli3-63/+75 2006-12-14Add simple pager to log pageLars Hjemli4-6/+37 2006-12-13Add separate makefile-rule to clear current cacheLars Hjemli1-2/+4 2006-12-13Remove implementation details from READMELars Hjemli1-53/+34 2006-12-13Small layout adjustments to summary and blob viewLars Hjemli3-5/+13 2006-12-13Add display of tree content w/ui-tree.cLars Hjemli9-8/+113 2006-12-12cache_lock: do xstrdup/free on lockfileLars Hjemli1-1/+2 2006-12-11Don't truncate valid cachefilesLars Hjemli3-4/+16 2006-12-11Move global variables + callback functions into shared.cLars Hjemli4-82/+86 2006-12-11Move functions for generic object output into ui-view.cLars Hjemli4-34/+43 2006-12-11Move log-functions into ui-log.cLars Hjemli5-111/+121 2006-12-11Move repo summary functions into ui-summary.cLars Hjemli4-47/+59 2006-12-11Move functions for repolist output into ui-repolist.cLars Hjemli5-70/+90 2006-12-11Move common output-functions into ui-shared.cLars Hjemli4-82/+99 2006-12-11Rename config.c to parsing.c + move cgit_parse_query from cgit.c to parsing.cLars Hjemli4-28/+29 2006-12-11Avoid infinite loops in caching layerLars Hjemli3-14/+31 2006-12-11Let 'make install' clear all cachefilesLars Hjemli1-0/+2 2006-12-11Fix cache algorithm loopholeLars Hjemli3-11/+16 2006-12-10Add version identifier in generated filesLars Hjemli2-9/+14 2006-12-10Add license file and copyright noticesLars Hjemli5-0/+372 2006-12-10Add caching infrastructureLars Hjemli9-28/+353