From 7afdc03507e0aa95f177f8a7c95086de5cfcc06c Mon Sep 17 00:00:00 2001 From: Necoro <> Date: Mon, 22 Oct 2007 22:27:29 +0000 Subject: bundled shm module --- portato.py | 8 ++++---- portato/__init__.py | 11 +++++++++-- portato/gui/gtk/__init__.py | 4 ++-- portato/gui/gtk/windows.py | 6 +++--- portato/plugins/notify.py | 4 ++-- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/portato.py b/portato.py index 4019504..7cca894 100755 --- a/portato.py +++ b/portato.py @@ -23,7 +23,7 @@ try: except ImportError: from portato.shm import shm_wrapper as shm -from portato import listener +from portato import get_listener from portato.constants import VERSION, FRONTENDS, STD_FRONTEND, XSD_LOCATION, LOCALE_DIR, APP, SU_COMMAND def get_frontend_list (): @@ -101,9 +101,9 @@ def main (): elif options.nolistener or os.getuid() == 0: # start GUI if options.shm: - listener.set_send(*options.shm) + get_listener().set_send(*options.shm) else: - listener.set_send() + get_listener().set_send() run() @@ -125,7 +125,7 @@ def main (): cmd = SU_COMMAND.split() subprocess.Popen(cmd+["%s --no-listener --shm %ld %ld %ld %s" % (sys.argv[0], mem.key, sig.key, rw.key, " ".join(additional))], env = env, close_fds = False) - listener.set_recv(mem, sig, rw) + get_listener().set_recv(mem, sig, rw) if __name__ == "__main__": main() diff --git a/portato/__init__.py b/portato/__init__.py index 76c6198..4b6a808 100644 --- a/portato/__init__.py +++ b/portato/__init__.py @@ -58,5 +58,12 @@ logging.getLogger("portatoLogger").addHandler(handler) logging.getLogger("portatoLogger").setLevel(logging.DEBUG) logging.getLogger("portatoLogger").propagate = False -from .plistener import PListener -listener = PListener() +__listener = None + +def get_listener(): + global __listener + if __listener is None: + from .plistener import PListener + __listener = PListener() + + return __listener diff --git a/portato/gui/gtk/__init__.py b/portato/gui/gtk/__init__.py index 5a02c00..14424b9 100644 --- a/portato/gui/gtk/__init__.py +++ b/portato/gui/gtk/__init__.py @@ -14,7 +14,7 @@ from __future__ import absolute_import from gettext import lgettext as _ -from ... import listener +from ... import get_listener from .exception_handling import register_ex_handler def run (): @@ -30,7 +30,7 @@ def run (): except KeyboardInterrupt: pass - listener.close() + get_listener().close() def show_ebuild (pkg): import gtk diff --git a/portato/gui/gtk/windows.py b/portato/gui/gtk/windows.py index e3bf133..b17c00c 100644 --- a/portato/gui/gtk/windows.py +++ b/portato/gui/gtk/windows.py @@ -23,7 +23,7 @@ from subprocess import Popen from gettext import lgettext as _ # our backend stuff -from ... import listener, plugin +from ... import get_listener, plugin from ...helper import debug, warning, error, unique_array from ...constants import CONFIG_LOCATION, VERSION, APP_ICON, DATA_DIR from ...backend import flags, system @@ -335,7 +335,7 @@ class PreferenceWindow (AbstractDialog): self.cfg.set("consolefont", font, section = "GTK") self.set_console_font(font) - gtk.link_button_set_uri_hook(lambda btn, x: listener.send_cmd([self.cfg.get("browserCmd", section = "GUI"), btn.get_uri()])) + gtk.link_button_set_uri_hook(lambda btn, x: get_listener().send_cmd([self.cfg.get("browserCmd", section = "GUI"), btn.get_uri()])) def cb_ok_clicked(self, button): """Saves, writes to config-file and closes the window.""" @@ -912,7 +912,7 @@ class MainWindow (Window): raise self.cfg.modify_external_configs() - gtk.link_button_set_uri_hook(lambda btn, x: listener.send_cmd([self.cfg.get("browserCmd", section = "GUI"), btn.get_uri()])) + gtk.link_button_set_uri_hook(lambda btn, x: get_listener().send_cmd([self.cfg.get("browserCmd", section = "GUI"), btn.get_uri()])) gtk.about_dialog_set_url_hook(lambda *args: True) # dummy - if not set link is not set as link; if link is clicked the normal uuri_hook is called too - thus do not call browser here # set plugins and plugin-menu diff --git a/portato/plugins/notify.py b/portato/plugins/notify.py index db024cf..ae2addd 100644 --- a/portato/plugins/notify.py +++ b/portato/plugins/notify.py @@ -1,7 +1,7 @@ from gettext import lgettext as _ import pynotify -from portato import listener +from portato import get_listener from portato.helper import warning, error, debug from portato.constants import APP_ICON, APP @@ -20,4 +20,4 @@ def notify (retcode, **kwargs): descr = _("Error Code: %d") % retcode urgency = pynotify.URGENCY_CRITICAL - listener.send_notify(base = text, descr = descr, icon = icon, urgency = urgency) + get_listener().send_notify(base = text, descr = descr, icon = icon, urgency = urgency) -- cgit v1.2.3