prepare changelog for 1.1.0
[enigma2-curlytx.git] / src / config.py
1 # -*- coding: utf-8 -*-
2 # CurlyTx configuration
3 # Copyright (C) 2011 Christian Weiske <cweiske@cweiske.de>
4 # License: GPLv3 or later
5
6 from Components.config import config, ConfigEnableDisable, ConfigYesNo, ConfigSelection, ConfigNumber, ConfigText, ConfigSubsection, ConfigSubList, ConfigInteger
7
8 def createPage():
9     """ Create and return a configuration page object """
10     s = ConfigSubsection()
11     s.uri   = ConfigText(default="http://", fixed_size=False)
12     s.title = ConfigText(
13         default = "Page #" + str(len(config.plugins.CurlyTx.pages) + 1),
14         fixed_size = False
15         )
16     s.fontSize = ConfigInteger(20, (1, 100))
17     return s
18
19 def loadDefaultPageOptions():
20     defaults = []
21     for i in range(0, len(config.plugins.CurlyTx.pages)):
22         defaults.append((str(i), config.plugins.CurlyTx.pages[i].title.value))
23     if hasattr(config.plugins.CurlyTx, "defaultPage"):
24         config.plugins.CurlyTx.defaultPage.setChoices(defaults, "0")
25     else:
26         config.plugins.CurlyTx.defaultPage = ConfigSelection(defaults, "0")
27
28 def feedPagesToConfig(pages):
29     """ save pages from atom feed into config. """
30     if len(pages) == 0:
31         return
32
33     del config.plugins.CurlyTx.pages[:]
34
35     for pageData in pages:
36         page = createPage()
37         config.plugins.CurlyTx.pages.append(page)
38         page.title.setValue(pageData["title"])
39         page.uri.setValue(pageData["url"])
40
41 def feedSettingsToConfig(settings):
42     changed = False
43     if 'enableSettings' in settings and config.plugins.CurlyTx.enableSettings.getValue() != settings['enableSettings']:
44         config.plugins.CurlyTx.enableSettings.setValue(int(settings['enableSettings']))
45         changed = True
46
47     if changed:
48         config.plugins.CurlyTx.save()
49
50 def savePageConfig():
51     for i in range(0, len(config.plugins.CurlyTx.pages)):
52         config.plugins.CurlyTx.pages[i].save()
53
54     config.plugins.CurlyTx.pages.save()
55
56
57 #configuration setup
58 config.plugins.CurlyTx = ConfigSubsection()
59 config.plugins.CurlyTx.menuMain = ConfigYesNo(default = True)
60 config.plugins.CurlyTx.menuExtensions = ConfigYesNo(default = False)
61 config.plugins.CurlyTx.enableSettings = ConfigEnableDisable(default = True)
62 config.plugins.CurlyTx.menuTitle = ConfigText(default = "CurlyTx", fixed_size = False)
63 config.plugins.CurlyTx.feedUrl = ConfigText(default = "", fixed_size = False)
64 config.plugins.CurlyTx.pages = ConfigSubList()
65 for id,value in config.plugins.CurlyTx.pages.stored_values.iteritems():
66     config.plugins.CurlyTx.pages.append(createPage())
67 loadDefaultPageOptions()