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, savePageConfig
from Components.config import config, getConfigListEntry, ConfigSelection
from Components.ConfigList import ConfigList, ConfigListScreen
class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen):
skin = """
- <screen name="Setup" position="center,center" size="560,430" title="Setup">
+ <screen name="Setup" position="center,center" size="560,430" title="Settings">
<ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" transparent="1" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" transparent="1" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/yellow.png" position="280,0" size="140,40" transparent="1" alphatest="on" />
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:
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"])
-
+ feedPagesToConfig(pages)
self["config"].setList(self.getConfigList())
- def keySave(self):
- for i in range(0, len(config.plugins.CurlyTx.pages)):
- config.plugins.CurlyTx.pages[i].save()
+ 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
+ )
- config.plugins.CurlyTx.pages.save()
+ def keySave(self):
+ savePageConfig()
ConfigListScreen.keySave(self)
def cancelConfirm(self, result):