~gnome15-team/gnome15/trunk

« back to all changes in this revision

Viewing changes to gnome15/src/main/python/gnome15/g15dconf.py

  • Committer: tanktarta
  • Date: 2012-11-24 10:27:36 UTC
  • Revision ID: tanktarta-20121124102736-0drhasy3jdn862wx
0.9.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
import os
32
32
import gobject
33
33
 
34
 
PASSIVE_MATCH_STRING="eavesdrop='true',type='method_call',interface='ca.desrt.dconf.Writer',member='Change'"
35
 
 
 
34
PASSIVE_MATCH_STRING="type='method_call',interface='ca.desrt.dconf.Writer',member='Change'"
 
35
EAVESDROP_MATCH_STRING="eavesdrop='true',%s" % PASSIVE_MATCH_STRING
36
36
 
37
37
class GSettingsCallback():
38
38
    
48
48
        self._handle = 1
49
49
        # DBUS session instance must be private or monitoring will not work properly
50
50
        self._session_bus = dbus.SessionBus(private=True)
51
 
        self._session_bus.add_match_string(PASSIVE_MATCH_STRING)
52
51
        self._writer = dbus.Interface(self._session_bus.get_object("ca.desrt.dconf", "/ca/desrt/dconf/Writer/user"), "ca.desrt.dconf.Writer")
53
52
        self._monitors = {}
 
53
        
 
54
        self._match_string = EAVESDROP_MATCH_STRING
 
55
        try:
 
56
            self._session_bus.add_match_string(self._match_string)
 
57
        except:
 
58
            self._match_string = PASSIVE_MATCH_STRING
 
59
            self._session_bus.add_match_string(self._match_string)
54
60
        self._session_bus.add_message_filter(self._msg_cb)
55
61
        
56
62
    def connect(self, key, callback):
112
118
                self._changed(*msg.get_args_list())
113
119
                
114
120
    def __del__(self):
115
 
        self._session_bus.remove_match_string(PASSIVE_MATCH_STRING)
 
121
        self._session_bus.remove_match_string(self._match_string)