eric6/Plugins/PluginAbout.py

changeset 6942
2602857055c5
parent 6645
ad476851d7e0
child 7199
c71bd6f21748
diff -r f99d60d6b59b -r 2602857055c5 eric6/Plugins/PluginAbout.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Plugins/PluginAbout.py	Sun Apr 14 15:09:21 2019 +0200
@@ -0,0 +1,139 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2007 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the About plugin.
+"""
+
+from __future__ import unicode_literals
+
+from PyQt5.QtCore import QObject
+from PyQt5.QtWidgets import QAction
+
+import UI.Info
+import UI.PixmapCache
+
+from E5Gui.E5Action import E5Action
+from E5Gui import E5MessageBox
+
+# 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
+python2Compatible = True
+# 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(AboutPlugin, self).__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.removeE5Actions(acts, 'ui')
+    
+    def __initActions(self):
+        """
+        Private method to initialize the actions.
+        """
+        acts = []
+        
+        self.aboutAct = E5Action(
+            self.tr('About {0}').format(UI.Info.Program),
+            UI.PixmapCache.getIcon("helpAbout.png"),
+            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.AboutRole)
+        acts.append(self.aboutAct)
+        
+        self.aboutQtAct = E5Action(
+            self.tr('About Qt'),
+            UI.PixmapCache.getIcon("helpAboutQt.png"),
+            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.AboutQtRole)
+        acts.append(self.aboutQtAct)
+        
+        self.__ui.addE5Actions(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.
+        """
+        E5MessageBox.aboutQt(self.__ui, UI.Info.Program)

eric ide

mercurial