eric6/Project/CreateDialogCodeDialog.py

branch
maintenance
changeset 8043
0acf98cd089a
parent 7924
8a96736d465e
parent 7923
91e843545d9a
child 8176
31965986ecd1
--- a/eric6/Project/CreateDialogCodeDialog.py	Sun Jan 17 13:53:08 2021 +0100
+++ b/eric6/Project/CreateDialogCodeDialog.py	Mon Feb 01 10:38:16 2021 +0100
@@ -27,6 +27,8 @@
 
 from eric6config import getConfig
 
+import Preferences
+
 
 pyqtSignatureRole = Qt.UserRole + 1
 pythonSignatureRole = Qt.UserRole + 2
@@ -159,8 +161,16 @@
         @return tuple of process output and error flag
         @rtype tuple of (str, bool)
         """
+        venvManager = e5App().getObject("VirtualEnvManager")
+        projectType = self.project.getProjectType()
+        
         venvName = self.project.getDebugProperty("VIRTUALENV")
-        venvManager = e5App().getObject("VirtualEnvManager")
+        if not venvName:
+            # no project specific environment, try a type specific one
+            if projectType in ("PyQt5", "E6Plugin", "PySide2"):
+                venvName = Preferences.getQt("PyQtVenvName")
+            elif projectType in ("PyQt6", "PySide6"):
+                venvName = Preferences.getQt("PyQt6VenvName")
         interpreter = venvManager.getVirtualenvInterpreter(venvName)
         execPath = venvManager.getVirtualenvExecPath(venvName)
         
@@ -176,7 +186,10 @@
             else:
                 env.insert("PATH", execPath)
         
-        loadUi = os.path.join(os.path.dirname(__file__), "UicLoadUi.py")
+        if projectType in ("PyQt5", "E6Plugin", "PySide2"):
+            loadUi = os.path.join(os.path.dirname(__file__), "UicLoadUi5.py")
+        elif projectType in ("PyQt6", "PySide6"):
+            loadUi = os.path.join(os.path.dirname(__file__), "UicLoadUi6.py")
         args = [
             loadUi,
             command,
@@ -407,11 +420,19 @@
                     tmplName = os.path.join(
                         getConfig('ericCodeTemplatesDir'),
                         "impl_pyside2.py.tmpl")
+                elif self.project.getProjectType() == "PySide6":
+                    tmplName = os.path.join(
+                        getConfig('ericCodeTemplatesDir'),
+                        "impl_pyside6.py.tmpl")
                 elif self.project.getProjectType() in [
                         "PyQt5", "E6Plugin"]:
                     tmplName = os.path.join(
                         getConfig('ericCodeTemplatesDir'),
                         "impl_pyqt5.py.tmpl")
+                elif self.project.getProjectType() == "PyQt6":
+                    tmplName = os.path.join(
+                        getConfig('ericCodeTemplatesDir'),
+                        "impl_pyqt6.py.tmpl")
                 else:
                     E5MessageBox.critical(
                         self,
@@ -489,7 +510,7 @@
                     break
         
         # do the coding stuff
-        if self.project.getProjectType() in ("PySide2",):
+        if self.project.getProjectType() in ("PySide2", "PySide6"):
             pyqtSignatureFormat = '@Slot({0})'
         else:
             pyqtSignatureFormat = '@pyqtSlot({0})'

eric ide

mercurial