eric7/E5Gui/E5MessageBox.py

branch
eric7
changeset 8356
68ec9c3d4de5
parent 8355
8a7677a63c8d
child 8357
a081458cc57b
--- a/eric7/E5Gui/E5MessageBox.py	Sat May 22 17:01:51 2021 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,305 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing QMessageBox replacements and more convenience function.
-"""
-
-from PyQt6.QtCore import Qt
-from PyQt6.QtWidgets import QMessageBox, QApplication
-
-###############################################################################
-##  Mappings to standard QMessageBox                                         ##
-###############################################################################
-
-# QMessageBox.Icon
-NoIcon = QMessageBox.Icon.NoIcon
-Critical = QMessageBox.Icon.Critical
-Information = QMessageBox.Icon.Information
-Question = QMessageBox.Icon.Question
-Warning = QMessageBox.Icon.Warning       # __IGNORE_WARNING_M131__
-
-##StandardButtons = QMessageBox.StandardButtons
-##
-# QMessageBox.StandardButton
-Abort = QMessageBox.StandardButton.Abort
-Apply = QMessageBox.StandardButton.Apply
-Cancel = QMessageBox.StandardButton.Cancel
-Close = QMessageBox.StandardButton.Close
-Discard = QMessageBox.StandardButton.Discard
-Help = QMessageBox.StandardButton.Help
-Ignore = QMessageBox.StandardButton.Ignore
-No = QMessageBox.StandardButton.No
-NoToAll = QMessageBox.StandardButton.NoToAll
-Ok = QMessageBox.StandardButton.Ok
-Open = QMessageBox.StandardButton.Open
-Reset = QMessageBox.StandardButton.Reset
-RestoreDefaults = QMessageBox.StandardButton.RestoreDefaults
-Retry = QMessageBox.StandardButton.Retry
-Save = QMessageBox.StandardButton.Save
-SaveAll = QMessageBox.StandardButton.SaveAll
-Yes = QMessageBox.StandardButton.Yes
-YesToAll = QMessageBox.StandardButton.YesToAll
-NoButton = QMessageBox.StandardButton.NoButton
-
-# QMessageBox.ButtonRole
-AcceptRole = QMessageBox.ButtonRole.AcceptRole
-ActionRole = QMessageBox.ButtonRole.ActionRole
-ApplyRole = QMessageBox.ButtonRole.ApplyRole
-DestructiveRole = QMessageBox.ButtonRole.DestructiveRole
-InvalidRole = QMessageBox.ButtonRole.InvalidRole
-HelpRole = QMessageBox.ButtonRole.HelpRole
-NoRole = QMessageBox.ButtonRole.NoRole
-RejectRole = QMessageBox.ButtonRole.RejectRole
-ResetRole = QMessageBox.ButtonRole.ResetRole
-YesRole = QMessageBox.ButtonRole.YesRole
-
-###############################################################################
-##  Replacement for the QMessageBox class                                    ##
-###############################################################################
-
-
-class E5MessageBox(QMessageBox):
-    """
-    Class implementing a replacement for QMessageBox.
-    """
-    def __init__(self, icon, title, text, modal=False,
-                 buttons=QMessageBox.StandardButton.NoButton,
-                 parent=None):
-        """
-        Constructor
-        
-        @param icon type of icon to be shown (QMessageBox.Icon)
-        @param title caption of the message box (string)
-        @param text text to be shown by the message box (string)
-        @param modal flag indicating a modal dialog (boolean)
-        @param buttons set of standard buttons to generate (StandardButtons)
-        @param parent parent widget of the message box (QWidget)
-        """
-        super().__init__(parent)
-        self.setIcon(icon)
-        if modal:
-            if parent is not None:
-                self.setWindowModality(Qt.WindowModality.WindowModal)
-            else:
-                self.setWindowModality(Qt.WindowModality.ApplicationModal)
-        else:
-            self.setWindowModality(Qt.WindowModality.NonModal)
-        if title == "":
-            self.setWindowTitle("{0}".format(
-                QApplication.applicationName()))
-        else:
-            self.setWindowTitle("{0} - {1}".format(
-                QApplication.applicationName(), title))
-        self.setText(text)
-        self.setStandardButtons(buttons)
-
-###############################################################################
-##  Replacements for QMessageBox static methods                              ##
-###############################################################################
-
-
-def __messageBox(parent, title, text, icon,
-                 buttons=QMessageBox.StandardButton.Ok,
-                 defaultButton=QMessageBox.StandardButton.NoButton,
-                 textFormat=Qt.TextFormat.AutoText):
-    """
-    Private module function to show a modal message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param icon type of icon to be shown (QMessageBox.Icon)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @param textFormat format of the text (Qt.TextFormat)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    messageBox = QMessageBox(parent)
-    messageBox.setIcon(icon)
-    if parent is not None:
-        messageBox.setWindowModality(Qt.WindowModality.WindowModal)
-    if title == "":
-        messageBox.setWindowTitle("{0}".format(
-            QApplication.applicationName()))
-    else:
-        messageBox.setWindowTitle("{0} - {1}".format(
-            QApplication.applicationName(), title))
-    messageBox.setTextFormat(textFormat)
-    messageBox.setText(text)
-    messageBox.setStandardButtons(buttons)
-    messageBox.setDefaultButton(defaultButton)
-    messageBox.exec()
-    clickedButton = messageBox.clickedButton()
-    if clickedButton is None:
-        return QMessageBox.StandardButton.NoButton
-    else:
-        return messageBox.standardButton(clickedButton)
-
-# the about functions are here for consistancy
-about = QMessageBox.about
-aboutQt = QMessageBox.aboutQt
-
-
-def critical(parent, title, text,
-             buttons=QMessageBox.StandardButton.Ok,
-             defaultButton=QMessageBox.StandardButton.NoButton):
-    """
-    Function to show a modal critical message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    return __messageBox(parent, title, text, QMessageBox.Icon.Critical,
-                        buttons, defaultButton)
-
-
-def information(parent, title, text,
-                buttons=QMessageBox.StandardButton.Ok,
-                defaultButton=QMessageBox.StandardButton.NoButton):
-    """
-    Function to show a modal information message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    return __messageBox(parent, title, text, QMessageBox.Icon.Information,
-                        buttons, defaultButton)
-
-
-def question(parent, title, text,
-             buttons=QMessageBox.StandardButton.Ok,
-             defaultButton=QMessageBox.StandardButton.NoButton):
-    """
-    Function to show a modal question message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    return __messageBox(parent, title, text, QMessageBox.Icon.Question,
-                        buttons, defaultButton)
-
-
-def warning(parent, title, text,
-            buttons=QMessageBox.StandardButton.Ok,
-            defaultButton=QMessageBox.StandardButton.NoButton):
-    """
-    Function to show a modal warning message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param buttons flags indicating which buttons to show
-        (QMessageBox.StandardButtons)
-    @param defaultButton flag indicating the default button
-        (QMessageBox.StandardButton)
-    @return button pressed by the user (QMessageBox.StandardButton)
-    """
-    return __messageBox(parent, title, text, QMessageBox.Icon.Warning,
-                        buttons, defaultButton)
-
-###############################################################################
-##  Additional convenience functions                                         ##
-###############################################################################
-
-
-def yesNo(parent, title, text, icon=Question, yesDefault=False,
-          textFormat=Qt.TextFormat.AutoText):
-    """
-    Function to show a model yes/no message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param icon icon for the dialog (Critical, Information, Question or
-        Warning)
-    @param yesDefault flag indicating that the Yes button should be the
-        default button (boolean)
-    @param textFormat format of the text (Qt.TextFormat)
-    @return flag indicating the selection of the Yes button (boolean)
-    @exception ValueError raised to indicate a bad parameter value
-    """
-    if icon not in [Critical, Information, Question, Warning]:
-        raise ValueError("Bad value for 'icon' parameter.")
-    
-    res = __messageBox(
-        parent, title, text, icon,
-        QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,
-        yesDefault and QMessageBox.StandardButton.Yes or
-        QMessageBox.StandardButton.No,
-        textFormat)
-    return res == QMessageBox.StandardButton.Yes
-
-
-def retryAbort(parent, title, text, icon=Question,
-               textFormat=Qt.TextFormat.AutoText):
-    """
-    Function to show a model abort/retry message box.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param icon icon for the dialog (Critical, Information, Question or
-        Warning)
-    @param textFormat format of the text (Qt.TextFormat)
-    @return flag indicating the selection of the Retry button (boolean)
-    @exception ValueError raised to indicate a bad parameter value
-    """
-    if icon not in [Critical, Information, Question, Warning]:
-        raise ValueError("Bad value for 'icon' parameter.")
-    
-    res = __messageBox(
-        parent, title, text, icon,
-        QMessageBox.StandardButton.Retry | QMessageBox.StandardButton.Abort,
-        QMessageBox.StandardButton.Retry,
-        textFormat)
-    return res == QMessageBox.StandardButton.Retry
-
-
-def okToClearData(parent, title, text, saveFunc,
-                  textFormat=Qt.TextFormat.AutoText):
-    """
-    Function to show a model message box to ask for clearing the data.
-    
-    @param parent parent widget of the message box (QWidget)
-    @param title caption of the message box (string)
-    @param text text to be shown by the message box (string)
-    @param saveFunc reference to a function performing the save action. It
-        must be a parameterless function returning a flag indicating success.
-    @param textFormat format of the text (Qt.TextFormat)
-    @return flag indicating that it is ok to clear the data (boolean)
-    """
-    res = __messageBox(
-        parent, title, text, QMessageBox.Icon.Warning,
-        (QMessageBox.StandardButton.Abort |
-         QMessageBox.StandardButton.Discard |
-         QMessageBox.StandardButton.Save),
-        QMessageBox.StandardButton.Save,
-        textFormat)
-    if res == QMessageBox.StandardButton.Abort:
-        return False
-    if res == QMessageBox.StandardButton.Save:
-        return saveFunc()
-    return True

eric ide

mercurial