Use the new 1.8 bindings' ecore mainloop wrapper for dbus.

This commit is contained in:
Kai Huuhko 2013-04-06 17:49:55 +03:00
parent 9c043d1fe1
commit e74f0ad2a7
1 changed files with 32 additions and 37 deletions

View File

@ -47,47 +47,43 @@ def setup_log():
log = setup_log() log = setup_log()
DBUS_ENABLED = None
try: try:
import e_dbus from e_dbus import DBusEcoreMainLoop
except ImportError: except ImportError:
DBUS_ENABLED = False from efl.dbus_mainloop import DBusEcoreMainLoop
log.info("e_dbus not found")
else:
DBUS_ENABLED = True
import dbus
ml = e_dbus.DBusEcoreMainLoop()
dbus.set_default_main_loop(ml)
import dbus.service
bus = dbus.SessionBus()
dbo = None import dbus
try: ml = DBusEcoreMainLoop()
dbo = bus.get_object("net.launchpad.epour", "/net/launchpad/epour") dbus.set_default_main_loop(ml)
except dbus.exceptions.DBusException: import dbus.service
pass bus = dbus.SessionBus()
if dbo: dbo = None
if sys.argv[1:]: try:
for f in sys.argv[1:]: dbo = bus.get_object("net.launchpad.epour", "/net/launchpad/epour")
log.info("Sending %s via dbus" % f) except dbus.exceptions.DBusException:
dbo.AddTorrent(f, dbus_interface="net.launchpad.epour") pass
sys.exit()
class EpourDBus(dbus.service.Object): if dbo:
def __init__(self, parent): if sys.argv[1:]:
self.parent = parent for f in sys.argv[1:]:
dbus.service.Object.__init__(self, dbus.SessionBus(), "/net/launchpad/epour", "net.launchpad.epour") log.info("Sending %s via dbus" % f)
dbo.AddTorrent(f, dbus_interface="net.launchpad.epour")
sys.exit()
self.props = { class EpourDBus(dbus.service.Object):
} def __init__(self, parent):
self.parent = parent
dbus.service.Object.__init__(self, dbus.SessionBus(), "/net/launchpad/epour", "net.launchpad.epour")
@dbus.service.method(dbus_interface='net.launchpad.epour', self.props = {
in_signature='s', out_signature='') }
def AddTorrent(self, f):
log.info("Adding %s from dbus" % f) @dbus.service.method(dbus_interface='net.launchpad.epour',
self.parent.session.add_torrent(str(f)) in_signature='s', out_signature='')
def AddTorrent(self, f):
log.info("Adding %s from dbus" % f)
self.parent.session.add_torrent(str(f))
import mimetypes import mimetypes
@ -127,9 +123,8 @@ class Epour(object):
for t in torrents: for t in torrents:
self.session.add_torrent(t) self.session.add_torrent(t)
if DBUS_ENABLED: self.dbusname = dbus.service.BusName("net.launchpad.epour", dbus.SessionBus())
self.dbusname = dbus.service.BusName("net.launchpad.epour", dbus.SessionBus()) self.dbo = EpourDBus(self)
self.dbo = EpourDBus(self)
# Update timer # Update timer
timer = timer_add(1.0, self.update) timer = timer_add(1.0, self.update)