git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
servicemp3.cpp: more simple/flexible streaming detection
[enigma2.git]
/
lib
/
python
/
Components
/
config.py
diff --git
a/lib/python/Components/config.py
b/lib/python/Components/config.py
index a6007b105f62ebb9f5e73bc1291546e95a69d200..5507cae9493b23fcc5217416bda5a3404b85d186 100755
(executable)
--- a/
lib/python/Components/config.py
+++ b/
lib/python/Components/config.py
@@
-29,6
+29,7
@@
from time import localtime, strftime
class ConfigElement(object):
def __init__(self):
self.saved_value = None
class ConfigElement(object):
def __init__(self):
self.saved_value = None
+ self.save_forced = False
self.last_value = None
self.save_disabled = False
self.__notifiers = None
self.last_value = None
self.save_disabled = False
self.__notifiers = None
@@
-83,7
+84,7
@@
class ConfigElement(object):
# you need to override this if str(self.value) doesn't work
def save(self):
# you need to override this if str(self.value) doesn't work
def save(self):
- if self.save_disabled or
self.value == self.default
:
+ if self.save_disabled or
(self.value == self.default and not self.save_forced)
:
self.saved_value = None
else:
self.saved_value = self.tostring(self.value)
self.saved_value = None
else:
self.saved_value = self.tostring(self.value)
@@
-1138,6
+1139,9
@@
class ConfigDirectory(ConfigText):
else:
return ConfigText.getMulti(self, selected)
else:
return ConfigText.getMulti(self, selected)
+ def onSelect(self, session):
+ self.allmarked = (self.value != "")
+
# a slider.
class ConfigSlider(ConfigElement):
def __init__(self, default = 0, increment = 1, limits = (0, 100)):
# a slider.
class ConfigSlider(ConfigElement):
def __init__(self, default = 0, increment = 1, limits = (0, 100)):
@@
-1620,16
+1624,17
@@
class Config(ConfigSubsection):
self.pickle_this("config", self.saved_value, result)
return ''.join(result)
self.pickle_this("config", self.saved_value, result)
return ''.join(result)
- def unpickle(self, lines):
+ def unpickle(self, lines
, base_file=True
):
tree = { }
for l in lines:
if not l or l[0] == '#':
continue
n = l.find('=')
tree = { }
for l in lines:
if not l or l[0] == '#':
continue
n = l.find('=')
+ name = l[:n]
val = l[n+1:].strip()
val = l[n+1:].strip()
- names =
l[:n]
.split('.')
+ names =
name
.split('.')
# if val.find(' ') != -1:
# val = val[:val.find(' ')]
# if val.find(' ') != -1:
# val = val[:val.find(' ')]
@@
-1640,6
+1645,15
@@
class Config(ConfigSubsection):
base[names[-1]] = val
base[names[-1]] = val
+ if not base_file: # not the initial config file..
+ #update config.x.y.value when exist
+ try:
+ configEntry = eval(name)
+ if configEntry is not None:
+ configEntry.value = val
+ except (SyntaxError, KeyError):
+ pass
+
# we inherit from ConfigSubsection, so ...
#object.__setattr__(self, "saved_value", tree["config"])
if "config" in tree:
# we inherit from ConfigSubsection, so ...
#object.__setattr__(self, "saved_value", tree["config"])
if "config" in tree:
@@
-1647,13
+1661,16
@@
class Config(ConfigSubsection):
def saveToFile(self, filename):
text = self.pickle()
def saveToFile(self, filename):
text = self.pickle()
- f = open(filename, "w")
- f.write(text)
- f.close()
+ try:
+ f = open(filename, "w")
+ f.write(text)
+ f.close()
+ except IOError:
+ print "Config: Couldn't write %s" % filename
- def loadFromFile(self, filename):
+ def loadFromFile(self, filename
, base_file=False
):
f = open(filename, "r")
f = open(filename, "r")
- self.unpickle(f.readlines())
+ self.unpickle(f.readlines()
, base_file
)
f.close()
config = Config()
f.close()
config = Config()
@@
-1664,7
+1681,7
@@
class ConfigFile:
def load(self):
try:
def load(self):
try:
- config.loadFromFile(self.CONFIG_FILE)
+ config.loadFromFile(self.CONFIG_FILE
, True
)
except IOError, e:
print "unable to load config (%s), assuming defaults..." % str(e)
except IOError, e:
print "unable to load config (%s), assuming defaults..." % str(e)