Merge commit 'origin/bug_351_softwaremanager_save_config_before_backup' into experimental
[enigma2.git] / lib / python / Screens / LocationBox.py
index fa47b1f2fe82bf1f999a5b0f9c22e68700852e6a..29d94f553fef38bd347ad1db29b57edc0ff14f36 100644 (file)
@@ -163,11 +163,11 @@ class LocationBox(Screen, NumericalTextInput, HelpableScreen):
                })
 
                # Run some functions when shown
-               self.onShown.extend([
+               self.onShown.extend((
                        boundFunction(self.setTitle, windowTitle),
                        self.updateTarget,
                        self.showHideRename,
-               ])
+               ))
 
                self.onLayoutFinish.append(self.switchToFileListOnStart)
  
@@ -241,7 +241,7 @@ class LocationBox(Screen, NumericalTextInput, HelpableScreen):
                        )
 
        def createDirCallback(self, res):
-               if res is not None and len(res):
+               if res:
                        path = os.path.join(self["filelist"].current_directory, res)
                        if not pathExists(path):
                                if not createDir(path):
@@ -289,6 +289,11 @@ class LocationBox(Screen, NumericalTextInput, HelpableScreen):
                        else:
                                self["filelist"].refresh()
                                self.removeBookmark(name, True)
+                               val = self.realBookmarks and self.realBookmarks.value
+                               if val and name in val:
+                                       val.remove(name)
+                                       self.realBookmarks.value = val
+                                       self.realBookmarks.save()
 
        def up(self):
                self[self.currList].up()
@@ -454,7 +459,7 @@ class LocationBox(Screen, NumericalTextInput, HelpableScreen):
 
        def selectByStart(self):
                # Don't do anything on initial call
-               if not len(self.quickselect):
+               if not self.quickselect:
                        return
 
                # Don't select if no dir
@@ -503,16 +508,12 @@ class LocationBox(Screen, NumericalTextInput, HelpableScreen):
                return str(type(self)) + "(" + self.text + ")"
 
 class MovieLocationBox(LocationBox):
-       skinName = "LocationBox"
-
        def __init__(self, session, text, dir, minFree = None):
                inhibitDirs = ["/bin", "/boot", "/dev", "/etc", "/lib", "/proc", "/sbin", "/sys", "/usr", "/var"]
                LocationBox.__init__(self, session, text = text, currDir = dir, bookmarks = config.movielist.videodirs, autoAdd = True, editDir = True, inhibitDirs = inhibitDirs, minFree = minFree)
+               self.skinName = "LocationBox"
 
 class TimeshiftLocationBox(LocationBox):
-
-       skinName = "LocationBox" # XXX: though we could use a custom skin or inherit the hardcoded one we stick with the original :-)
-
        def __init__(self, session):
                inhibitDirs = ["/bin", "/boot", "/dev", "/etc", "/lib", "/proc", "/sbin", "/sys", "/usr", "/var"]
                LocationBox.__init__(
@@ -524,8 +525,9 @@ class TimeshiftLocationBox(LocationBox):
                                autoAdd = True,
                                editDir = True,
                                inhibitDirs = inhibitDirs,
-                               minFree = 1024 # XXX: the same requirement is hardcoded in servicedvb.cpp
+                               minFree = 1024 # the same requirement is hardcoded in servicedvb.cpp
                )
+               self.skinName = "LocationBox"
 
        def cancel(self):
                config.usage.timeshift_path.cancel()