diff options
author | kali <kali@leap.se> | 2012-09-06 02:27:04 +0900 |
---|---|---|
committer | kali <kali@leap.se> | 2012-09-06 02:27:04 +0900 |
commit | 8148bc9c8c113c41fcb18b397669b1f13447c653 (patch) | |
tree | 226ed4f238369f8937c28e3d0f11258cbfb7b506 /src/leap/baseapp/dialogs.py | |
parent | c190b7f66cc1977d0e058bfa2d8fc1a850326320 (diff) |
more generic error handler in EipConductorAppMixin
documentation of the Exception Hierarchy and attributes.
also a bit of general cleanup around error handling in conductor.
Hopefully to be polished an abstracted to leap.base with time.
not all errors are converted (and the old with_errors/ignoring
errors) are still there, but we should be using this style of handlers
from now on.
wrapping up with this pseudo-feature for now. as we work on individual
features we can mimick the exceptions that are working.
Diffstat (limited to 'src/leap/baseapp/dialogs.py')
-rw-r--r-- | src/leap/baseapp/dialogs.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/leap/baseapp/dialogs.py b/src/leap/baseapp/dialogs.py index d37a234c..d4acb09d 100644 --- a/src/leap/baseapp/dialogs.py +++ b/src/leap/baseapp/dialogs.py @@ -1,14 +1,25 @@ +import logging + from PyQt4.QtGui import (QDialog, QFrame, QPushButton, QLabel, QMessageBox) +logger = logging.getLogger(name=__name__) + class ErrorDialog(QDialog): - def __init__(self, parent=None): + def __init__(self, parent=None, errtype=None, msg=None, label=None): super(ErrorDialog, self).__init__(parent) frameStyle = QFrame.Sunken | QFrame.Panel self.warningLabel = QLabel() self.warningLabel.setFrameStyle(frameStyle) self.warningButton = QPushButton("QMessageBox.&warning()") + if msg is not None: + self.msg = msg + if label is not None: + self.label = label + if errtype == "critical": + self.criticalMessage(self.msg, self.label) + def warningMessage(self, msg, label): msgBox = QMessageBox(QMessageBox.Warning, "QMessageBox.warning()", msg, @@ -26,5 +37,11 @@ class ErrorDialog(QDialog): QMessageBox.NoButton, self) msgBox.addButton("&Ok", QMessageBox.AcceptRole) msgBox.exec_() + + # It's critical, so we exit. + # We should better emit a signal and connect it + # with the proper shutdownAndQuit method, but + # this suffices for now. + logger.info('Quitting') import sys sys.exit() |