add encoding and copyright header
[enigma2-curlytx.git] / src / CurlyTxSettings.py
index 23deb232f9ca56a17afc275a8b1c76b19aa1e5dd..377077bec83cb69c6f0868abb81437a1e04af95a 100644 (file)
@@ -1,3 +1,7 @@
+# -*- coding: utf-8 -*-
+# CurlyTx configuration window
+# Copyright (C) 2011 Christian Weiske <cweiske@cweiske.de>
+
 from . import _
 
 from Screens.Screen import Screen
@@ -48,7 +52,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
@@ -152,10 +155,6 @@ class CurlyTxSettings(ConfigListScreen, HelpableScreen, Screen):
             page.title.setValue(pageData["title"])
             page.uri.setValue(pageData["url"])
 
-        #we cannot restore the old pages without enigma2 restart, so
-        # it's better to save here for a consistent user experience
-        config.plugins.CurlyTx.pages.save()
-
         self["config"].setList(self.getConfigList())
 
     def keySave(self):
@@ -165,8 +164,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())