diff AddFeed.py @ 50:4b0d686493fb

better error handling while adding feeds: data is only saved if a feed could be created and entries could be retrieved. MainWindow displays feedback in the status bar if an exception occurred while adding a feed.
author Dirk Olmes <dirk@xanthippe.ping.de>
date Mon, 17 May 2010 04:30:55 +0200
parents 6eba4168fd54
children dcee24702dd7
line wrap: on
line diff
--- a/AddFeed.py	Mon May 17 03:52:13 2010 +0200
+++ b/AddFeed.py	Mon May 17 04:30:55 2010 +0200
@@ -4,15 +4,21 @@
 import FeedUpdater
 
 class AddFeed(QtGui.QDialog):
-    def __init__(self, session=None):
+    def __init__(self, session):
         QtGui.QWidget.__init__(self, None)
         self.session = session
+        self.exception = None
         self.ui = Ui_AddFeed()
         self.ui.setupUi(self)
         self.ui.url.setFocus()
     
     def accept(self):
-        self.createFeed()
+        try:
+            self.createFeed()
+            self.session.commit()
+        except AttributeError as ae:
+            self.exception = ae
+            self.session.rollback()
         QtGui.QDialog.accept(self)
 
     def createFeed(self):