X-Git-Url: https://git.cweiske.de/enigma2-curlytx.git/blobdiff_plain/a36b80acbdee4586c8f6d28bdc46b268293c39e8..5a3881a8fa5611a7defe420be7d36611a35b999d:/src/CurlyTxSettings.py?ds=sidebyside diff --git a/src/CurlyTxSettings.py b/src/CurlyTxSettings.py index 18e43c9..5d39725 100644 --- a/src/CurlyTxSettings.py +++ b/src/CurlyTxSettings.py @@ -1,18 +1,24 @@ +# -*- 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 +from config import createPage, loadDefaultPageOptions, feedPagesToConfig, feedSettingsToConfig, savePageConfig from Components.config import config, getConfigListEntry, ConfigSelection from Components.ConfigList import ConfigList, ConfigListScreen class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): skin = """ - + @@ -48,7 +54,6 @@ 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 @@ -127,9 +132,16 @@ 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) + AtomFeed( + config.plugins.CurlyTx.feedUrl.value, + self.feedPagesReceived, self.feedPagesFail + ) + else: + self.session.open( + MessageBox, _("No page feed URL defined"), MessageBox.TYPE_ERROR + ) def pageEdited(self, page, new): if not page: @@ -140,28 +152,35 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen): self["config"].setList(self.getConfigList()) - def feedPagesReceived(self, pages): - if len(pages) == 0: - return + def feedPagesReceived(self, pages, settings): + feedPagesToConfig(pages) + feedSettingsToConfig(settings) + self["config"].setList(self.getConfigList()) - del config.plugins.CurlyTx.pages[:] + def feedPagesFail(self, errorMessage): + """ Downloading the page url feed failed somehow """ + self.session.open( + MessageBox, + _("Error loading page feed:") + "\n\n" + str(errorMessage), + MessageBox.TYPE_ERROR + ) - for pageData in pages: - page = createPage() - config.plugins.CurlyTx.pages.append(page) - page.title.setValue(pageData["title"]) - page.uri.setValue(pageData["url"]) + def keySave(self): + savePageConfig() + ConfigListScreen.keySave(self) - self["config"].setList(self.getConfigList()) + def cancelConfirm(self, result): + """Overwriting ConfigListScreen.cancelConfirm to call cancelAll method""" + if not result: + return - def keySave(self): - for i in range(0, len(config.plugins.CurlyTx.pages)): - config.plugins.CurlyTx.pages[i].save() + self.cancelAll() + self.close() - config.plugins.CurlyTx.pages.save() - ConfigListScreen.keySave(self) + def cancelAll(self): + for x in self["config"].list: + x[1].cancel() - def abort(self): #restore old page configuration cfg = config.plugins.CurlyTx del cfg.pages[:]