X-Git-Url: https://git.cweiske.de/enigma2-curlytx.git/blobdiff_plain/70a718833dc18d1f589def81ab4d5fbbf330a53b..a36b80acbdee4586c8f6d28bdc46b268293c39e8:/src/CurlyTxSettings.py diff --git a/src/CurlyTxSettings.py b/src/CurlyTxSettings.py index 154bf37..18e43c9 100644 --- a/src/CurlyTxSettings.py +++ b/src/CurlyTxSettings.py @@ -53,16 +53,18 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): def getConfigList(self): #reload titles loadDefaultPageOptions() + cfg = config.plugins.CurlyTx list = [ getConfigListEntry(_("Page:") + " " + x.title.value, x.uri) - for x in config.plugins.CurlyTx.pages + for x in cfg.pages ] - if len(config.plugins.CurlyTx.pages): - list.append(getConfigListEntry(_("Default page"), config.plugins.CurlyTx.defaultPage)) - list.append(getConfigListEntry(_("Show in main menu"), config.plugins.CurlyTx.menuMain)) - list.append(getConfigListEntry(_("Show in extensions menu"), config.plugins.CurlyTx.menuExtensions)) - list.append(getConfigListEntry(_("Menu title"), config.plugins.CurlyTx.menuTitle)) + if len(cfg.pages): + list.append(getConfigListEntry(_("Default page"), cfg.defaultPage)) + list.append(getConfigListEntry(_("Show in main menu"), cfg.menuMain)) + list.append(getConfigListEntry(_("Show in extensions menu"), cfg.menuExtensions)) + list.append(getConfigListEntry(_("Menu title"), cfg.menuTitle)) + list.append(getConfigListEntry(_("Page feed URL"), cfg.feedUrl)) return list def loadHelp(self): @@ -75,6 +77,9 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): self.helpList.append(( self["actions"], "SetupActions", [("ok", _("Edit selected page"))])) + self.helpList.append(( + self["actions"], "SetupActions", + [("ok", _("Load pages from feed"))])) self.helpList.append(( self["actions"], "ColorActions", [("yellow", _("Add new page"))])) @@ -89,7 +94,8 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): ConfigListScreen.keyRight(self) def deletePage(self): - if len(config.plugins.CurlyTx.pages) == 0: + pageCount = len(config.plugins.CurlyTx.pages) + if pageCount == 0 or self["config"].getCurrentIndex() >= pageCount: return from Screens.MessageBox import MessageBox @@ -121,6 +127,9 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): self.pageEdited, CurlyTxPageEdit, config.plugins.CurlyTx.pages[id], False ) + else: + from AtomFeed import AtomFeed + AtomFeed(config.plugins.CurlyTx.feedUrl.value, self.feedPagesReceived) def pageEdited(self, page, new): if not page: @@ -131,6 +140,19 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): self["config"].setList(self.getConfigList()) + def feedPagesReceived(self, pages): + 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"]) + + self["config"].setList(self.getConfigList()) def keySave(self): for i in range(0, len(config.plugins.CurlyTx.pages)): @@ -140,7 +162,11 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): ConfigListScreen.keySave(self) def abort(self): - pass + #restore old page configuration + cfg = config.plugins.CurlyTx + del cfg.pages[:] + for i in cfg.pages.stored_values: + cfg.pages.append(createPage()) @@ -163,6 +189,7 @@ class CurlyTxPageEdit(Screen, ConfigListScreen): list = [ getConfigListEntry(_("Page URL"), page.uri), getConfigListEntry(_("Title"), page.title), + getConfigListEntry(_("Font size"), page.fontSize), ] ConfigListScreen.__init__(self, list, session = self.session)