コード例 #1
0
ファイル: fetchreports.py プロジェクト: asuffield/ef-editor
class ReportsFetchWorker(QtCore.QObject):
    completed = QtCore.pyqtSignal(list)
    error = QtCore.pyqtSignal(str)
    
    def __init__(self):
        QtCore.QObject.__init__(self)

    @QtCore.pyqtSlot(str, str)
    def start_fetch(self, username, password):
        self.reportslist_task = ReportParamsTask()
        self.task = TaskList(LoginTask(username, password), self.reportslist_task)
        self.task.task_finished.connect(self.handle_finished)
        self.task.task_exception.connect(self.handle_exception)

        self.task.start_task()

    def handle_finished(self):
        self.completed.emit(self.reportslist_task.reports)

    def handle_exception(self, e, msg):
        if isinstance(e, LoginError):
            self.error.emit(str(e))
        else:
            self.error.emit(msg)