summaryrefslogtreecommitdiffstats
path: root/dcoppython/test/signal.py
diff options
context:
space:
mode:
Diffstat (limited to 'dcoppython/test/signal.py')
-rw-r--r--dcoppython/test/signal.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/dcoppython/test/signal.py b/dcoppython/test/signal.py
new file mode 100644
index 00000000..f9d087c6
--- /dev/null
+++ b/dcoppython/test/signal.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+
+# This is an example of how to use DCOP Signals with
+# the dcoppython KDE bindings.
+
+# something goes wrong if you don't import pcop first.
+# Have to do this till I find out why...
+import pcop
+import pydcop
+
+class MyObject(pydcop.DCOPServerObject):
+ """DCOP server object"""
+
+ def __init__(self, id='pythontest'):
+ pydcop.DCOPServerObject.__init__(self, id)
+
+ # DCOP needs types, so we need to initialise the object with the methods that
+ # it's going to provide.
+ self.setMethods( [('void test(QString)', self.test)])
+
+ def test(self, data):
+ print "New Weather for " + data
+
+appid = pydcop.registerAs('dcopSignalTest')
+print "Server: %s starting" % appid
+
+pytest = MyObject()
+
+sender = "KWeatherService"
+senderObj = "WeatherService"
+signal = "fileUpdate(QString)"
+receiverObj = "pythontest"
+slot = "test(QString)"
+volatile = 1
+
+pydcop.connectDCOPSignal(sender,senderObj,signal,receiverObj,slot,volatile)
+# Enter event loop
+while 1:
+ pydcop.processEvents()
+
+