store config in /etc/enigma2 and create the path if needed
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 30 Nov 2005 00:50:38 +0000 (00:50 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 30 Nov 2005 00:50:38 +0000 (00:50 +0000)
lib/python/Components/config.py
lib/python/Screens/ChannelSelection.py
lib/python/Tools/Directories.py

index 037b66b..4d5af5c 100644 (file)
@@ -1,12 +1,13 @@
 from time import *
 from Tools.NumericalTextInput import *
+from Tools.Directories import *
 
 class configFile:
        def __init__(self):
                self.changed = 0
                self.configElements = { }
                try:
-                       self.file = open("config")
+                       self.file = open(resolveFilename(SCOPE_CONFIG, "config"))
                except IOError:
                        print "cannot open config file"
                        return 
@@ -38,7 +39,7 @@ class configFile:
                if self.changed == 0:           #no changes, so no write to disk needed
                        return
                        
-               fileHandle = open("config", "w")
+               fileHandle = open(resolveFilename(SCOPE_CONFIG, "config"), "w")
                
                keys = self.configElements.keys()
                keys.sort()
index acf2e7f..ce906c2 100644 (file)
@@ -402,10 +402,7 @@ class SimpleChannelSelection(ChannelSelectionBase):
 
                class ChannelActionMap(NumberActionMap):
                        def action(self, contexts, action):
-                               if not self.csel.enterBouquet(action):
-                                       if action == "cancel":
-                                               self.csel.handleEditCancel()
-                                       NumberActionMap.action(self, contexts, action)
+                               NumberActionMap.action(self, contexts, action)
                self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions", "ContextMenuActions"],
                        {
                                "cancel": self.cancel,
index 003d9a8..1df24fc 100644 (file)
@@ -6,24 +6,34 @@ SCOPE_FONTS = 2
 SCOPE_SKIN = 3
 SCOPE_SKIN_IMAGE = 4
 SCOPE_USERETC = 5
+SCOPE_CONFIG = 6
+
+PATH_CREATE = 0
+PATH_DONTCREATE = 1
 
 defaultPaths = {
-               SCOPE_TRANSPONDERDATA: "/etc/",
-               SCOPE_SYSETC: "/etc/",
-               SCOPE_FONTS: "/usr/share/fonts/",
+               SCOPE_TRANSPONDERDATA: ("/etc/", PATH_DONTCREATE),
+               SCOPE_SYSETC: ("/etc/", PATH_DONTCREATE),
+               SCOPE_FONTS: ("/usr/share/fonts/", PATH_DONTCREATE),
+               SCOPE_CONFIG: ("/etc/enigma2/", PATH_CREATE),
 
-               SCOPE_SKIN: "/usr/share/tuxbox/enigma2/",
-               SCOPE_SKIN_IMAGE: "/usr/share/tuxbox/enigma2/",
+               SCOPE_SKIN: ("/usr/share/tuxbox/enigma2/", PATH_DONTCREATE),
+               SCOPE_SKIN_IMAGE: ("/usr/share/tuxbox/enigma2/", PATH_DONTCREATE),
                
-               SCOPE_USERETC: "" # user home directory
+               SCOPE_USERETC: ("", PATH_DONTCREATE) # user home directory
        }
 
 def resolveFilename(scope, base):
        # in future, we would check for file existence here,
        # so we can provide default/fallbacks.
        
+       path = defaultPaths[scope]
+       if path[1] == PATH_CREATE:
+               if (not os.path.exists(path[0])):
+                       os.mkdir(path[0])
+       
        # FIXME: we also have to handle DATADIR etc. here.
-       return defaultPaths[scope] + base
+       return path[0] + base
 
        # this is only the BASE - an extension must be added later.
 def getRecordingFilename(basename):