summaryrefslogtreecommitdiffstats
path: root/dcoppython/test/signal.py
blob: f9d087c66f5e70c4f1bc02c74bbb9f05dddd87f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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()