[gedit-latex] Fix preferences inheritence
- From: John Stowers <jstowers src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit-latex] Fix preferences inheritence
- Date: Thu, 1 Sep 2011 04:12:29 +0000 (UTC)
commit 8cc40d9f9d5c0dd4c1a6f59f26d86007a931c2e5
Author: John Stowers <john stowers gmail com>
Date: Thu Sep 1 16:07:45 2011 +1200
Fix preferences inheritence
latex/preferences/__init__.py | 59 +++++++++++++++++++++++++++--------------
1 files changed, 39 insertions(+), 20 deletions(-)
---
diff --git a/latex/preferences/__init__.py b/latex/preferences/__init__.py
index ff1fdb1..45cf090 100644
--- a/latex/preferences/__init__.py
+++ b/latex/preferences/__init__.py
@@ -46,13 +46,19 @@ class _DocumentConfigParser(ConfigParser.RawConfigParser):
except ConfigParser.DuplicateSectionError:
pass
- def get(self, key):
+ def __getitem__(self, key):
try:
return ConfigParser.RawConfigParser.get(self,self.SECTION, key)
except ConfigParser.NoOptionError:
- return None
+ raise KeyError
+
+ def get(self, key, default=None):
+ try:
+ return self.__getitem__(key)
+ except KeyError:
+ return default
- def set(self,key,value):
+ def set(self, key, value):
ConfigParser.RawConfigParser.set(self, self.SECTION, key, value)
def save(self):
@@ -88,14 +94,14 @@ class Preferences(_Preferences):
_Preferences.__init__(self)
self._settings = Gio.Settings("org.gnome.gedit.plugins.latex")
- LOG.debug("Prefs singleton constructed")
+ LOG.debug("Pref singleton constructed")
def get(self, key):
- LOG.debug("Prefs get: %s" % key)
+ LOG.debug("Get pref: %s" % key)
return self._settings[key]
def set(self, key, value):
- LOG.debug("Prefs set: %s = %s" % (key,value))
+ LOG.debug("Set pref: %s = %s" % (key,value))
self._settings[key] = value
self.emit("preferences-changed", str(key), str(value))
@@ -124,12 +130,11 @@ class DocumentPreferences(_Preferences):
self._re = re.compile("^\s*%+\s*gedit:(.*)\s*=\s*(.*)")
self._modelines = {}
+ LOG.debug("Document preferences for %s" % file.basename)
+
def _on_prefs_changed(self, p, key, value):
self.emit("preferences-changed", key, value)
- def _is_docpref(self,key):
- return key in self._modelines
-
def parse_content(self, content, max_lines=100):
""" Parses txt content from the document looking for modelines """
self._modelines = {}
@@ -140,29 +145,43 @@ class DocumentPreferences(_Preferences):
break
try:
key,val = self._re.match(l).groups()
- LOG.debug("Detected preference modeline: %s = %s" % (key,val))
+ LOG.debug("Document %s prefs modeline: %s = %s" % (self._file.basename,key,val))
self._modelines[key.strip()] = val
except AttributeError:
pass
i = i+1
def get(self, key):
- if self._is_docpref(key):
- LOG.debug("Get document pref: %s (modelines: %s)" % (key,",".join(self._modelines.keys())))
- return self._modelines.get(key, self._cp.get(key))
- else:
+ try:
+ val = self._modelines[key]
+ method = "modeline"
+ except KeyError:
try:
- return self._sysprefs.get(key)
+ val = self._cp[key]
+ method = "configfile"
except KeyError:
- return None
+ try:
+ val = self._sysprefs.get(key)
+ method = "system"
+ except KeyError:
+ val = None
+ method = "none"
+
+ LOG.debug("Get doc %s pref: %s = %s (from: %s)" % (self._file.basename,key,val,method))
+
+ return val
def set(self, key, value):
- if self._is_docpref(key):
- LOG.debug("Set document pref")
+ try:
+ self._sysprefs.set(key, value)
+ method = "system"
+ except KeyError:
self._cp.set(key,value)
self._cp.save()
self.emit("preferences-changed", key, value)
- else:
- self._sysprefs.set(key, value)
+ method = "configfile"
+
+ LOG.debug("Set doc %s pref: %s = %s (from: %s)" % (self._file.basename,key,value,method))
+
# ex:ts=4:et:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]