view 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 source


from PyQt4 import QtGui
from Ui_AddFeed import Ui_AddFeed
import FeedUpdater

class AddFeed(QtGui.QDialog):
    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):
        try:
            self.createFeed()
            self.session.commit()
        except AttributeError as ae:
            self.exception = ae
            self.session.rollback()
        QtGui.QDialog.accept(self)

    def createFeed(self):
        url = self.getUrl()
        # TODO get status from feedUpdater and display in status area of the main window
        FeedUpdater.createNewFeed(url, self.session)
    
    def getUrl(self):
        text = self.ui.url.text()
        # the content of a QLineEdit is a QString, convert it to a Python string
        return str(text)