always load the local configuration file
[enigma2-curlytx.git] / src / config.py
index 7c527b8d74a66469b704cef0e6cdd1550537bab0..7b1114271eacf3e6f7bac05aaa5f991b019ccc0f 100644 (file)
@@ -1,16 +1,57 @@
-from Components.config import config, ConfigYesNo, ConfigSelection, ConfigNumber, ConfigText, ConfigSubsection, ConfigSubList
+# -*- coding: utf-8 -*-
+# CurlyTx configuration
+# Copyright (C) 2011 Christian Weiske <cweiske@cweiske.de>
+# License: GPLv3 or later
+
+from Components.config import config, ConfigYesNo, ConfigSelection, ConfigNumber, ConfigText, ConfigSubsection, ConfigSubList, ConfigInteger
+
+def createPage():
+    """ Create and return a configuration page object """
+    s = ConfigSubsection()
+    s.uri   = ConfigText(default="http://", fixed_size=False)
+    s.title = ConfigText(
+        default = "Page #" + str(len(config.plugins.CurlyTx.pages) + 1),
+        fixed_size = False
+        )
+    s.fontSize = ConfigInteger(20, (1, 100))
+    return s
+
+def loadDefaultPageOptions():
+    defaults = []
+    for i in range(0, len(config.plugins.CurlyTx.pages)):
+        defaults.append((str(i), config.plugins.CurlyTx.pages[i].title.value))
+    if hasattr(config.plugins.CurlyTx, "defaultPage"):
+        config.plugins.CurlyTx.defaultPage.setChoices(defaults, "0")
+    else:
+        config.plugins.CurlyTx.defaultPage = ConfigSelection(defaults, "0")
+
+def feedPagesToConfig(pages):
+    """ save pages from atom feed into config. """
+    if len(pages) == 0:
+        return
+
+    del config.plugins.CurlyTx.pages[:]
+
+    for pageData in pages:
+        page = createPage()
+        config.plugins.CurlyTx.pages.append(page)
+        page.title.setValue(pageData["title"])
+        page.uri.setValue(pageData["url"])
+
+def savePageConfig():
+    for i in range(0, len(config.plugins.CurlyTx.pages)):
+        config.plugins.CurlyTx.pages[i].save()
+
+    config.plugins.CurlyTx.pages.save()
+
 
 #configuration setup
 config.plugins.CurlyTx = ConfigSubsection()
 config.plugins.CurlyTx.menuMain = ConfigYesNo(default = True)
-config.plugins.CurlyTx.menuTitle = ConfigText(default = "CurlyTx")
+config.plugins.CurlyTx.menuExtensions = ConfigYesNo(default = False)
+config.plugins.CurlyTx.menuTitle = ConfigText(default = "CurlyTx", fixed_size = False)
+config.plugins.CurlyTx.feedUrl = ConfigText(default = "", fixed_size = False)
 config.plugins.CurlyTx.pages = ConfigSubList()
-i = 0
-while i < len(config.plugins.CurlyTx.pages):
-    s = ConfigSubsection()
-    s.uri = ConfigText(default="http://", fixed_size=False)
-    config.plugins.CurlyTx.pages.append(s)
-    i += 1
-    del s
-del i
-#config.plugins.CurlyTx.defaultPage = ConfigNumber(default=0)
+for id,value in config.plugins.CurlyTx.pages.stored_values.iteritems():
+    config.plugins.CurlyTx.pages.append(createPage())
+loadDefaultPageOptions()