src/eric7/Plugins/PluginAbout.py

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8881
54e42bc2437a
child 9221
bf71ee032bb4
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)

eric ide

mercurial