diff FeedSettings.py @ 124:a4b2077c9603 backend

editing a feed's properties is implemented through the backend now
author Dirk Olmes <dirk@xanthippe.ping.de>
date Mon, 22 Aug 2011 11:02:53 +0200
parents d11c3f71ac40
children bca9341dc67f
line wrap: on
line diff
--- a/FeedSettings.py	Mon Aug 22 10:30:33 2011 +0200
+++ b/FeedSettings.py	Mon Aug 22 11:02:53 2011 +0200
@@ -3,10 +3,15 @@
 from Ui_FeedSettings import Ui_FeedSettings
 
 class FeedSettings(QtGui.QDialog):
-    def __init__(self, session, feed):
+    """
+    Copy all feed properties into the GUI on initialization. Collect all changes
+    in a separate dict that's passed into the backend along with the feed to modify.
+    """
+    def __init__(self, feed, backend):
         QtGui.QWidget.__init__(self, None)
-        self.session = session
         self.feed = feed
+        self.backend = backend
+        self.changes = {}
         self.ui = Ui_FeedSettings()
         self.ui.setupUi(self)
         self.initUi()
@@ -19,29 +24,24 @@
 
     def editingTitleFinished(self):
         title = str(self.ui.feedTitle.text())
-        self.feed.title = title
+        self.changes["title"] = title
         
     def editingUpdateIntervalFinished(self):
         updateInterval = int(str(self.ui.updateInterval.text()))
-        self.feed.update_interval = updateInterval
-        self.feed.incrementNextUpdateDate()
+        self.changes["update_interval"] = updateInterval
 
     def autoLoadArticleChanged(self, change):
         if change:
-            self.feed.auto_load_entry_link = True
+            self.changes["auto_load_entry_link"] = True
         else:
-            self.feed.auto_load_entry_link = False
+            self.changes["auto_load_entry_link"] = False
 
     def alwaysOpenInExternalBrowser(self, change):
         if change:
-            self.feed.always_open_in_browser = True
+            self.changes["always_open_in_browser"] = True
         else:
-            self.feed.always_open_in_browser = False
+            self.changes["always_open_in_browser"] = False
 
     def accept(self):
-        self.session.commit()
+        self.backend.updateFeed(self.feed, self.changes)
         QtGui.QDialog.accept(self)
-        
-    def reject(self):
-        self.session.rollback()
-        QtGui.QDialog.reject(self)