Added PyQt5 support to the project resources and translations viewers and the code creation dialog.

Tue, 25 Jun 2013 18:50:45 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 25 Jun 2013 18:50:45 +0200
changeset 2741
d0d7836d0c01
parent 2740
647426d44f04
child 2742
bf0560b035bf

Added PyQt5 support to the project resources and translations viewers and the code creation dialog.

CodeTemplates/impl_pyqt5.py.tmpl file | annotate | diff | comparison | revisions
CodeTemplates/impl_pyqt5.py2.tmpl file | annotate | diff | comparison | revisions
Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py file | annotate | diff | comparison | revisions
Project/CreateDialogCodeDialog.py file | annotate | diff | comparison | revisions
Project/ProjectResourcesBrowser.py file | annotate | diff | comparison | revisions
Project/ProjectTranslationsBrowser.py file | annotate | diff | comparison | revisions
Utilities/__init__.py file | annotate | diff | comparison | revisions
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CodeTemplates/impl_pyqt5.py.tmpl	Tue Jun 25 18:50:45 2013 +0200
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+"""
+Module implementing $CLASSNAME$.
+"""
+
+from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtWidgets import $SUPERCLASS$
+
+from .Ui_$FORMFILE$ import Ui_$FORMCLASS$
+
+
+class $CLASSNAME$($SUPERCLASS$, Ui_$FORMCLASS$):
+    """
+    Class documentation goes here.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        self.setupUi(self)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CodeTemplates/impl_pyqt5.py2.tmpl	Tue Jun 25 18:50:45 2013 +0200
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+"""
+Module implementing $CLASSNAME$.
+"""
+
+from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtWidgets import $SUPERCLASS$
+
+from .Ui_$FORMFILE$ import Ui_$FORMCLASS$
+
+
+class $CLASSNAME$($SUPERCLASS$, Ui_$FORMCLASS$):
+    """
+    Class documentation goes here.
+    """
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super($SUPERCLASS$, self).__init__(parent)
+        self.setupUi(self)
--- a/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Mon Jun 24 19:42:54 2013 +0200
+++ b/Plugins/WizardPlugins/QRegularExpressionWizard/QRegularExpressionWizardDialog.py	Tue Jun 25 18:50:45 2013 +0200
@@ -12,7 +12,7 @@
 
 from PyQt4.QtCore import QFileInfo, pyqtSlot, qVersion
 try:
-    from PyQt4.QtCore import QRegularExpression
+    from PyQt5.QtCore import QRegularExpression
     AVAILABLE = True
 except ImportError:
     AVAILABLE = False
--- a/Project/CreateDialogCodeDialog.py	Mon Jun 24 19:42:54 2013 +0200
+++ b/Project/CreateDialogCodeDialog.py	Tue Jun 25 18:50:45 2013 +0200
@@ -344,7 +344,9 @@
                     if self.project.getProjectType() == "PySide":
                         tmplName = os.path.join(getConfig('ericCodeTemplatesDir'),
                                                 "impl_pyside.py2.tmpl")
-                    # TODO: add PyQt5
+                    elif self.project.getProjectType() == "PyQt5":
+                        tmplName = os.path.join(getConfig('ericCodeTemplatesDir'),
+                                                "impl_pyqt5.py2.tmpl")
                     else:
                         tmplName = os.path.join(getConfig('ericCodeTemplatesDir'),
                                                 "impl_pyqt.py2.tmpl")
@@ -352,7 +354,9 @@
                     if self.project.getProjectType() == "PySide":
                         tmplName = os.path.join(getConfig('ericCodeTemplatesDir'),
                                                 "impl_pyside.py.tmpl")
-                    # TODO: add PyQt5
+                    elif self.project.getProjectType() == "PyQt5":
+                        tmplName = os.path.join(getConfig('ericCodeTemplatesDir'),
+                                                "impl_pyqt5.py.tmpl")
                     else:
                         tmplName = os.path.join(getConfig('ericCodeTemplatesDir'),
                                                 "impl_pyqt.py.tmpl")
@@ -422,7 +426,8 @@
         if self.project.getProjectLanguage() == "Python2":
             if self.project.getProjectType() == "PySide":
                 pyqtSignatureFormat = '@Slot({0})'
-            # TODO: add PyQt5 (pyqtSlot)
+            elif self.project.getProjectType() == "PyQt5":
+                pyqtSignatureFormat = '@pyqtSlot({0})'
             else:
                 pyqtSignatureFormat = '@pyqtSignature("{0}")'
         else:
--- a/Project/ProjectResourcesBrowser.py	Mon Jun 24 19:42:54 2013 +0200
+++ b/Project/ProjectResourcesBrowser.py	Tue Jun 25 18:50:45 2013 +0200
@@ -76,8 +76,7 @@
         self.dirMultiMenuActions = []
         
         self.menu = QMenu(self)
-        if self.project.getProjectType() in ["Qt4", "E4Plugin", "PySide"]:
-            # TODO: add PyQt5
+        if self.project.getProjectType() in ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
             self.menu.addAction(self.trUtf8('Compile resource'),
                 self.__compileResource)
             self.menu.addAction(self.trUtf8('Compile all resources'),
@@ -106,8 +105,7 @@
         act = self.menu.addAction(self.trUtf8('Delete'), self.__deleteFile)
         self.menuActions.append(act)
         self.menu.addSeparator()
-        if self.project.getProjectType() in ["Qt4", "E4Plugin", "PySide"]:
-            # TODO: add PyQt5
+        if self.project.getProjectType() in ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
             self.menu.addAction(self.trUtf8('New resource...'), self.__newResource)
         else:
             if self.hooks["newResource"] is not None:
@@ -129,8 +127,7 @@
         self.menu.addAction(self.trUtf8('Configure...'), self._configure)
 
         self.backMenu = QMenu(self)
-        if self.project.getProjectType() in ["Qt4", "E4Plugin", "PySide"]:
-            # TODO: add PyQt5
+        if self.project.getProjectType() in ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
             self.backMenu.addAction(self.trUtf8('Compile all resources'),
                 self.__compileAllResources)
             self.backMenu.addSeparator()
@@ -161,8 +158,7 @@
 
         # create the menu for multiple selected files
         self.multiMenu = QMenu(self)
-        if self.project.getProjectType() in ["Qt4", "E4Plugin", "PySide"]:
-            # TODO: add PyQt5
+        if self.project.getProjectType() in ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
             act = self.multiMenu.addAction(self.trUtf8('Compile resources'),
                 self.__compileSelectedResources)
             self.multiMenu.addSeparator()
@@ -189,8 +185,7 @@
         self.multiMenu.addAction(self.trUtf8('Configure...'), self._configure)
 
         self.dirMenu = QMenu(self)
-        if self.project.getProjectType() in ["Qt4", "E4Plugin", "PySide"]:
-            # TODO: add PyQt5
+        if self.project.getProjectType() in ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
             self.dirMenu.addAction(self.trUtf8('Compile all resources'),
                 self.__compileAllResources)
             self.dirMenu.addSeparator()
@@ -222,8 +217,7 @@
         self.dirMenu.addAction(self.trUtf8('Configure...'), self._configure)
         
         self.dirMultiMenu = QMenu(self)
-        if self.project.getProjectType() in ["Qt4", "E4Plugin", "PySide"]:
-            # TODO: add PyQt5
+        if self.project.getProjectType() in ["Qt4", "PyQt5", "E4Plugin", "PySide"]:
             self.dirMultiMenu.addAction(self.trUtf8('Compile all resources'),
                 self.__compileAllResources)
             self.dirMultiMenu.addSeparator()
@@ -581,7 +575,10 @@
                         args.append("-py2")
                     else:
                         args.append("-py3")
-            # TODO: add PyQt5
+            elif self.project.getProjectType() == "PyQt5":
+                self.rccCompiler = 'pyrcc5'
+                if Utilities.isWindowsPlatform():
+                    self.rccCompiler += '.exe'
             elif self.project.getProjectType() == "PySide":
                 self.rccCompiler = Utilities.generatePySideToolPath('pyside-rcc')
                 if self.project.pdata["PROGLANGUAGE"][0] in ["Python", "Python2"]:
--- a/Project/ProjectTranslationsBrowser.py	Mon Jun 24 19:42:54 2013 +0200
+++ b/Project/ProjectTranslationsBrowser.py	Tue Jun 25 18:50:45 2013 +0200
@@ -103,8 +103,7 @@
         
         self.menu = QMenu(self)
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             act = self.menu.addAction(self.trUtf8('Generate translation'),
                 self.__generateSelected)
             self.tsMenuActions.append(act)
@@ -220,8 +219,7 @@
         
         self.backMenu = QMenu(self)
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             act = self.backMenu.addAction(self.trUtf8('Generate all translations'),
                 self.__generateAll)
             self.tsprocBackMenuActions.append(act)
@@ -272,8 +270,7 @@
         # create the menu for multiple selected files
         self.multiMenu = QMenu(self)
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             act = self.multiMenu.addAction(self.trUtf8('Generate translations'),
                 self.__generateSelected)
             self.tsMultiMenuActions.append(act)
@@ -350,8 +347,7 @@
 
         self.dirMenu = QMenu(self)
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             act = self.dirMenu.addAction(self.trUtf8('Generate all translations'),
                 self.__generateAll)
             self.tsprocDirMenuActions.append(act)
@@ -457,8 +453,7 @@
         Private slot called by the menu aboutToShow signal.
         """
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             tsFiles = 0
             qmFiles = 0
             itmList = self.getSelectedItems()
@@ -498,8 +493,7 @@
         Private slot called by the multiMenu aboutToShow signal.
         """
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             tsFiles = 0
             qmFiles = 0
             itmList = self.getSelectedItems()
@@ -538,8 +532,7 @@
         Private slot called by the dirMenu aboutToShow signal.
         """
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             if self.pylupdateProcRunning:
                 for act in self.tsprocDirMenuActions:
                     act.setEnabled(False)
@@ -557,8 +550,7 @@
         Private slot called by the backMenu aboutToShow signal.
         """
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             if self.pylupdateProcRunning:
                 for act in self.tsprocBackMenuActions:
                     act.setEnabled(False)
@@ -938,7 +930,10 @@
             self.pylupdate = 'pylupdate4'
             if Utilities.isWindowsPlatform():
                 self.pylupdate = self.pylupdate + '.exe'
-        # TODO: add PyQt5
+        elif self.project.getProjectType() in ["PyQt5", "PyQt5C"]:
+            self.pylupdate = 'pylupdate5'
+            if Utilities.isWindowsPlatform():
+                self.pylupdate = self.pylupdate + '.exe'
         elif self.project.getProjectType() in ["PySide", "PySideC"]:
             self.pylupdate = Utilities.generatePySideToolPath('pyside-lupdate')
         else:
@@ -1076,8 +1071,7 @@
         args = []
         
         if self.project.getProjectType() in \
-                ["Qt4", "Qt4C", "E4Plugin", "PySide", "PySideC"]:
-            # TODO: add PyQt5
+                ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", "PySide", "PySideC"]:
             lrelease = os.path.join(
                     Utilities.getQtBinariesPath(),
                     Utilities.generateQtToolName("lrelease"))
--- a/Utilities/__init__.py	Mon Jun 24 19:42:54 2013 +0200
+++ b/Utilities/__init__.py	Tue Jun 25 18:50:45 2013 +0200
@@ -1499,7 +1499,6 @@
 # Qt utility functions below
 ################################################################################
 
-# TODO: add PyQt5 (both)
 def generatePySideToolPath(toolname):
     """
     Module function to generate the executable path for a PySide tool.

eric ide

mercurial