solve one problem
This commit is contained in:
parent
3cfa490642
commit
9b68d97768
|
@ -32,7 +32,7 @@ AttributeError. This is by design. If you want to look something
|
||||||
up, set a default for it first."""
|
up, set a default for it first."""
|
||||||
|
|
||||||
# import standard python libs
|
# import standard python libs
|
||||||
import os
|
import os, sys
|
||||||
|
|
||||||
# import unix-lib
|
# import unix-lib
|
||||||
import pwd
|
import pwd
|
||||||
|
@ -70,14 +70,15 @@ class TerminatorConfig:
|
||||||
dbg ("Config: Out of sources")
|
dbg ("Config: Out of sources")
|
||||||
raise (AttributeError)
|
raise (AttributeError)
|
||||||
|
|
||||||
# FIXME: Figure out exactly what we're going to do here
|
|
||||||
def set_reconfigure_callback (self, function):
|
def set_reconfigure_callback (self, function):
|
||||||
self.callback = function
|
self.reconfigure_callback = function
|
||||||
return (True)
|
return (True)
|
||||||
|
|
||||||
class TerminatorConfValuestore:
|
class TerminatorConfValuestore:
|
||||||
type = "Base"
|
type = "Base"
|
||||||
values = {}
|
values = {}
|
||||||
|
reconfigure_callback = None
|
||||||
|
|
||||||
# Our settings
|
# Our settings
|
||||||
# FIXME: Is it acceptable to not explicitly store the type, but
|
# FIXME: Is it acceptable to not explicitly store the type, but
|
||||||
# instead infer it from defaults[key].__class__.__name__
|
# instead infer it from defaults[key].__class__.__name__
|
||||||
|
@ -155,15 +156,39 @@ class TerminatorConfValuestoreGConf (TerminatorConfValuestore):
|
||||||
self._gt_dir = self.defaults['gt_dir'][1]
|
self._gt_dir = self.defaults['gt_dir'][1]
|
||||||
self._profile_dir = self.defaults['profile_dir'][1]
|
self._profile_dir = self.defaults['profile_dir'][1]
|
||||||
|
|
||||||
if profile:
|
if not profile:
|
||||||
self.profile = profile
|
profile = self.client.get_string (self._gt_dir + '/global/default_profile')
|
||||||
else:
|
profiles = self.client.get_list (self._gt_dir + '/global/profile_list','string')
|
||||||
self.profile = self.client.get_string (self._gt_dir + '/global/default_profile')
|
|
||||||
|
|
||||||
def __getattr__ (self, key):
|
if profile in profiles:
|
||||||
|
dbg ("VSGConf: Found profile '%s' in profile_list"%profile)
|
||||||
|
self.profile = '%s/%s'%(self._profile_dir, profile)
|
||||||
|
elif "Default" in profiles:
|
||||||
|
dbg ("VSGConf: profile '%s' not found, but 'Default' exists"%profile)
|
||||||
|
self.profile = '%s/%s'%(self._profile_dir, "Default")
|
||||||
|
else:
|
||||||
|
# We're a bit stuck, there is no profile in the list
|
||||||
|
# FIXME: Find a better way to handle this than setting a non-profile
|
||||||
|
dbg ("No profile found, deleting __getattr__")
|
||||||
|
del (self.__getattr__)
|
||||||
|
|
||||||
|
self.client.add_dir (self.profile, gconf.CLIENT_PRELOAD_RECURSIVE)
|
||||||
|
if self.on_gconf_notify:
|
||||||
|
self.client.notify_add (self.profile, self.on_gconf_notify)
|
||||||
|
|
||||||
|
self.client.add_dir ('/apps/metacity/general', gconf.CLIENT_PRELOAD_RECURSIVE)
|
||||||
|
self.client.notify_add ('/apps/metacity/general/focus_mode', self.on_gconf_notify)
|
||||||
|
|
||||||
|
def on_gconf_notify (self, client, cnxn_id, entry, what):
|
||||||
|
if self.reconfigure_callback:
|
||||||
|
self.reconfigure_callback ()
|
||||||
|
|
||||||
|
def __getattr__ (self, key = ""):
|
||||||
ret = None
|
ret = None
|
||||||
|
|
||||||
value = self.client.get ('%s/%s/%s'%(self._profile_dir, self.profile, key))
|
dbg ('VSGConf: preparing: %s/%s'%(self.profile, key))
|
||||||
|
value = self.client.get ('%s/%s'%(self.profile, key))
|
||||||
|
dbg ('VSGConf: getting: %s'%value)
|
||||||
if value:
|
if value:
|
||||||
funcname = "get_" + self.defaults[key][0].__name__
|
funcname = "get_" + self.defaults[key][0].__name__
|
||||||
# Special case for str
|
# Special case for str
|
||||||
|
|
Loading…
Reference in New Issue