diff -r 3fc8dfeb6ebe -r b99e7fd55fd3 src/eric7/Plugins/PluginAbout.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/eric7/Plugins/PluginAbout.py Thu Jul 07 11:23:56 2022 +0200 @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2007 - 2022 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing the About plugin. +""" + +from PyQt6.QtCore import QObject +from PyQt6.QtGui import QAction + +import UI.Info +import UI.PixmapCache + +from EricGui.EricAction import EricAction +from EricWidgets import EricMessageBox + +# Start-Of-Header +name = "About Plugin" +author = "Detlev Offenbach <detlev@die-offenbachs.de>" +autoactivate = True +deactivateable = True +version = UI.Info.VersionOnly +className = "AboutPlugin" +packageName = "__core__" +shortDescription = "Show the About dialogs." +longDescription = """This plugin shows the About dialogs.""" +pyqtApi = 2 +# End-Of-Header + +error = "" + + +class AboutPlugin(QObject): + """ + Class implementing the About plugin. + """ + def __init__(self, ui): + """ + Constructor + + @param ui reference to the user interface object (UI.UserInterface) + """ + super().__init__(ui) + self.__ui = ui + + self.__aboutDialog = None + + def activate(self): + """ + Public method to activate this plugin. + + @return tuple of None and activation status (boolean) + """ + self.__initActions() + self.__initMenu() + + return None, True + + def deactivate(self): + """ + Public method to deactivate this plugin. + """ + menu = self.__ui.getMenu("help") + if menu: + menu.removeAction(self.aboutAct) + menu.removeAction(self.aboutQtAct) + acts = [self.aboutAct, self.aboutQtAct] + self.__ui.removeEricActions(acts, 'ui') + + def __initActions(self): + """ + Private method to initialize the actions. + """ + acts = [] + + self.aboutAct = EricAction( + self.tr('About {0}').format(UI.Info.Program), + UI.PixmapCache.getIcon("helpAbout"), + self.tr('&About {0}').format(UI.Info.Program), + 0, 0, self, 'about_eric') + self.aboutAct.setStatusTip(self.tr( + 'Display information about this software')) + self.aboutAct.setWhatsThis(self.tr( + """<b>About {0}</b>""" + """<p>Display some information about this software.</p>""" + ).format(UI.Info.Program)) + self.aboutAct.triggered.connect(self.__about) + self.aboutAct.setMenuRole(QAction.MenuRole.AboutRole) + acts.append(self.aboutAct) + + self.aboutQtAct = EricAction( + self.tr('About Qt'), + UI.PixmapCache.getIcon("helpAboutQt"), + self.tr('About &Qt'), 0, 0, self, 'about_qt') + self.aboutQtAct.setStatusTip( + self.tr('Display information about the Qt toolkit')) + self.aboutQtAct.setWhatsThis(self.tr( + """<b>About Qt</b>""" + """<p>Display some information about the Qt toolkit.</p>""" + )) + self.aboutQtAct.triggered.connect(self.__aboutQt) + self.aboutQtAct.setMenuRole(QAction.MenuRole.AboutQtRole) + acts.append(self.aboutQtAct) + + self.__ui.addEricActions(acts, 'ui') + + def __initMenu(self): + """ + Private method to add the actions to the right menu. + """ + menu = self.__ui.getMenu("help") + if menu: + act = self.__ui.getMenuAction("help", "show_versions") + if act: + menu.insertAction(act, self.aboutAct) + menu.insertAction(act, self.aboutQtAct) + else: + menu.addAction(self.aboutAct) + menu.addAction(self.aboutQtAct) + + def __about(self): + """ + Private slot to handle the About dialog. + """ + from AboutPlugin.AboutDialog import AboutDialog + if self.__aboutDialog is None: + self.__aboutDialog = AboutDialog(self.__ui) + self.__aboutDialog.show() + + def __aboutQt(self): + """ + Private slot to handle the About Qt dialog. + """ + EricMessageBox.aboutQt(self.__ui, UI.Info.Program)