File: SignalConnectionManager.py

package info (click to toggle)
scribes 0.4~r543-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 6,836 kB
  • ctags: 6,779
  • sloc: python: 32,963; perl: 2,747; xml: 2,233; sh: 847; makefile: 597
file content (15 lines) | stat: -rw-r--r-- 563 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class SignalManager(object):

	def __init__(self):
		self.__signals = []

	def connect(self, gobject, signal_name, callback, after=False):
		connect = gobject.connect if not after else gobject.connect_after
		signal_id = gobject.connect(signal_name, callback)
		self.__signals.append((gobject, signal_id))
		return signal_id

	def disconnect(self):
		__disconnect = lambda gobject, signal_id: gobject.disconnect(signal_id) if gobject.handler_is_connected(signal_id) else None
		[__disconnect(gobject, signal_id) for gobject, signal_id in self.__signals]
		return