~ubuntuone-control-tower/ubuntu-sso-client/stable-3-0

« back to all changes in this revision

Viewing changes to ubuntu_sso/main/glib.py

  • Committer: Tarmac
  • Author(s): Natalia Bidart
  • Date: 2012-08-10 14:39:07 UTC
  • mfrom: (841.1.1 stable-3-0)
  • Revision ID: tarmac-20120810143907-us79743uwquhznz2
Refactor the glib main runner to not depend on GTK+/Gdk, but only on glib

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
 
31
31
# pylint: disable=E0611,F0401
32
32
 
33
 
# pylint: disable=W0621
34
 
import dbus.mainloop.glib
35
 
# pylint: enable=W0621
 
33
from dbus.mainloop.glib import DBusGMainLoop
 
34
from gi.repository import GLib
36
35
 
37
 
from gi.repository import GLib, Gdk, Gtk
 
36
GLIB_MAINLOOP = None  # global
38
37
 
39
38
 
40
39
def timeout_func(*a, **kw):
44
43
 
45
44
def shutdown_func(*a, **kw):
46
45
    """Delay import of dynamic bindings to avoid crashes."""
47
 
    Gtk.main_quit()
 
46
    GLIB_MAINLOOP.quit()
48
47
 
49
48
 
50
49
def run_func(loop):
51
50
    """Delay import of dynamic bindings to avoid crashes."""
52
 
    Gtk.main()
 
51
    loop.run()
53
52
 
54
53
 
55
54
def start_setup():
56
55
    """Setup the env to run the service."""
57
 
    dbus.mainloop.glib.threads_init()
58
 
    Gdk.threads_init()
59
 
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
 
56
    DBusGMainLoop(set_as_default=True)
 
57
    global GLIB_MAINLOOP  # pylint: disable=W0603
 
58
    GLIB_MAINLOOP = loop = GLib.MainLoop()
 
59
    return loop