Source code for schrodinger.ui.sequencealignment.dialogs
"""
Implementation of common dialog boxes used by multiple sequence viewer,
such as error dialog, warning dialog, query dialog. This module can be
also safely used in text mode.
TODO: Separate gui code and text code
Copyright Schrodinger, LLC. All rights reserved.
"""
# Contributors: Piotr Rotkiewicz
from schrodinger.Qt import QtCore
from schrodinger.Qt import QtGui
from schrodinger.Qt import QtWidgets
from . import utils
_PARENT_WIDGET = None
[docs]def warning_dialog(title, text):
"""
Displays a warning dialog.
"""
if QtCore.QCoreApplication.instance():
return QtWidgets.QMessageBox.warning(_PARENT_WIDGET, title, text)
else:
print("WARNING:", text, "\n")
[docs]def error_dialog(title, text):
"""
Displays an error dialog.
"""
if QtCore and QtCore.QCoreApplication.instance() and QtGui:
return QtWidgets.QMessageBox.critical(_PARENT_WIDGET, title, text)
else:
utils.print_error(text)
[docs]def question_dialog(title, text, buttons=["yes", "no", "cancel"]): # noqa: M511
"""
Displays a question dialog.
"""
qt_buttons = QtWidgets.QMessageBox.Yes
if "no" in buttons:
qt_buttons |= QtWidgets.QMessageBox.No
if "cancel" in buttons:
qt_buttons |= QtWidgets.QMessageBox.Cancel
result = QtWidgets.QMessageBox.question(_PARENT_WIDGET, title, text,
qt_buttons)
if result == QtWidgets.QMessageBox.Yes:
return "yes"
elif result == QtWidgets.QMessageBox.No:
return "no"
else:
return "cancel"