X-Git-Url: https://git.cweiske.de/enigma2-curlytx.git/blobdiff_plain/4ad1bb1258fc5731b5a09c8f34b9d41b63ad5263..f96d685b8c91177c3dcfc84a882ec8f1745fa3d5:/src/CurlyTxSettings.py diff --git a/src/CurlyTxSettings.py b/src/CurlyTxSettings.py index 686212c..f733e12 100644 --- a/src/CurlyTxSettings.py +++ b/src/CurlyTxSettings.py @@ -1,9 +1,15 @@ +# -*- coding: utf-8 -*- +# CurlyTx configuration window +# Copyright (C) 2011 Christian Weiske +# License: GPLv3 or later + from . import _ from Screens.Screen import Screen from Screens.HelpMenu import HelpableScreen from Components.ActionMap import ActionMap, NumberActionMap from Components.Sources.StaticText import StaticText +from Screens.MessageBox import MessageBox from . import config from config import createPage, loadDefaultPageOptions @@ -12,7 +18,7 @@ from Components.ConfigList import ConfigList, ConfigListScreen class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): skin = """ - + @@ -48,22 +54,22 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): ConfigListScreen.__init__(self, self.getConfigList(), session = self.session) self.loadHelp() - self.onClose.append(self.abort) 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)) - list.append(getConfigListEntry(_("Page feed URL"), config.plugins.CurlyTx.feedUrl)) + 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): @@ -76,6 +82,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"))])) @@ -90,7 +99,8 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): ConfigListScreen.keyRight(self) def deletePage(self): - if len(config.plugins.CurlyTx.pages) == 0 or self["config"].getCurrentIndex() >= len(config.plugins.CurlyTx.pages): + pageCount = len(config.plugins.CurlyTx.pages) + if pageCount == 0 or self["config"].getCurrentIndex() >= pageCount: return from Screens.MessageBox import MessageBox @@ -122,9 +132,13 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): self.pageEdited, CurlyTxPageEdit, config.plugins.CurlyTx.pages[id], False ) - else: + elif config.plugins.CurlyTx.feedUrl.value: from AtomFeed import AtomFeed AtomFeed(config.plugins.CurlyTx.feedUrl.value, self.feedPagesReceived) + else: + self.session.open( + MessageBox, _("No page feed URL defined"), MessageBox.TYPE_ERROR + ) def pageEdited(self, page, new): if not page: @@ -140,13 +154,13 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): return del config.plugins.CurlyTx.pages[:] - config.plugins.CurlyTx.pages.save() - print("CurlyTx", len(config.plugins.CurlyTx.pages)) + for pageData in pages: page = createPage() - page.title.value = pageData["title"] - page.uri.value = pageData["url"] config.plugins.CurlyTx.pages.append(page) + page.title.setValue(pageData["title"]) + page.uri.setValue(pageData["url"]) + self["config"].setList(self.getConfigList()) def keySave(self): @@ -156,8 +170,23 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): config.plugins.CurlyTx.pages.save() ConfigListScreen.keySave(self) - def abort(self): - pass + def cancelConfirm(self, result): + """Overwriting ConfigListScreen.cancelConfirm to call cancelAll method""" + if not result: + return + + self.cancelAll() + self.close() + + def cancelAll(self): + for x in self["config"].list: + x[1].cancel() + + #restore old page configuration + cfg = config.plugins.CurlyTx + del cfg.pages[:] + for i in cfg.pages.stored_values: + cfg.pages.append(createPage())