- changed to the new style header eric7 release-10.4.0

Mon, 28 Oct 2024 17:35:47 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 28 Oct 2024 17:35:47 +0100
branch
eric7
changeset 169
0405f4f83719
parent 168
fee59283137b
child 170
1d6b6427116b

- changed to the new style header
- ensured proper parent relationship of modal dialogs
- included compiled form files

.hgignore file | annotate | diff | comparison | revisions
ChangeLog file | annotate | diff | comparison | revisions
PKGLIST file | annotate | diff | comparison | revisions
PluginProjectPyramid.py file | annotate | diff | comparison | revisions
PluginProjectPyramid.zip file | annotate | diff | comparison | revisions
PluginPyramid.epj file | annotate | diff | comparison | revisions
ProjectPyramid/ConfigurationPage/Ui_PyramidPage.py file | annotate | diff | comparison | revisions
ProjectPyramid/Project.py file | annotate | diff | comparison | revisions
ProjectPyramid/Ui_CreateParametersDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/Ui_DistributionTypeSelectionDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/Ui_FormSelectionDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/Ui_MigrateSummaryDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/Ui_PyramidDialog.py file | annotate | diff | comparison | revisions
ProjectPyramid/Ui_PyramidRoutesDialog.py file | annotate | diff | comparison | revisions
--- a/.hgignore	Sat Dec 23 17:16:21 2023 +0100
+++ b/.hgignore	Mon Oct 28 17:35:47 2024 +0100
@@ -1,5 +1,4 @@
 glob:.eric7project
-glob:.eric6project
 glob:.ropeproject
 glob:.jedi
 glob:.directory
@@ -13,4 +12,3 @@
 glob:tmp
 glob:__pycache__
 glob:**.DS_Store
-glob:Ui_*.py
--- a/ChangeLog	Sat Dec 23 17:16:21 2023 +0100
+++ b/ChangeLog	Mon Oct 28 17:35:47 2024 +0100
@@ -1,5 +1,10 @@
 ChangeLog
 ---------
+Version 10.4.0
+- changed to the new style header
+- ensured proper parent relationship of modal dialogs
+- included compiled form files
+
 Version 10.3.0
 - adapted some import statements to eric 23.1 and newer
 
--- a/PKGLIST	Sat Dec 23 17:16:21 2023 +0100
+++ b/PKGLIST	Mon Oct 28 17:35:47 2024 +0100
@@ -43,6 +43,7 @@
 ProjectPyramid/APIs/ZODBUri-2.5.0.bas
 ProjectPyramid/ConfigurationPage/PyramidPage.py
 ProjectPyramid/ConfigurationPage/PyramidPage.ui
+ProjectPyramid/ConfigurationPage/Ui_PyramidPage.py
 ProjectPyramid/ConfigurationPage/__init__.py
 ProjectPyramid/CreateParametersDialog.py
 ProjectPyramid/CreateParametersDialog.ui
@@ -58,6 +59,12 @@
 ProjectPyramid/PyramidDialog.ui
 ProjectPyramid/PyramidRoutesDialog.py
 ProjectPyramid/PyramidRoutesDialog.ui
+ProjectPyramid/Ui_CreateParametersDialog.py
+ProjectPyramid/Ui_DistributionTypeSelectionDialog.py
+ProjectPyramid/Ui_FormSelectionDialog.py
+ProjectPyramid/Ui_MigrateSummaryDialog.py
+ProjectPyramid/Ui_PyramidDialog.py
+ProjectPyramid/Ui_PyramidRoutesDialog.py
 ProjectPyramid/__init__.py
 ProjectPyramid/i18n/pyramid_de.qm
 ProjectPyramid/i18n/pyramid_en.qm
--- a/PluginProjectPyramid.py	Sat Dec 23 17:16:21 2023 +0100
+++ b/PluginProjectPyramid.py	Mon Oct 28 17:35:47 2024 +0100
@@ -25,17 +25,20 @@
 from ProjectPyramid.Project import Project
 
 # Start-of-Header
-name = "Pyramid Project Plugin"
-author = "Detlev Offenbach <detlev@die-offenbachs.de>"
-autoactivate = True
-deactivateable = True
-version = "10.3.0"
-className = "ProjectPyramidPlugin"
-packageName = "ProjectPyramid"
-shortDescription = "Project support for Pyramid projects."
-longDescription = """This plugin implements project support for Pyramid projects."""
-needsRestart = False
-pyqtApi = 2
+__header__ = {
+    "name": "Pyramid Project Plugin",
+    "author": "Detlev Offenbach <detlev@die-offenbachs.de>",
+    "autoactivate": True,
+    "deactivateable": True,
+    "version": "10.4.0",
+    "className": "ProjectPyramidPlugin",
+    "packageName": "ProjectPyramid",
+    "shortDescription": "Project support for Pyramid projects.",
+    "longDescription": "This plugin implements project support for Pyramid projects.",
+    "needsRestart": False,
+    "hasCompiledForms": True,
+    "pyqtApi": 2,
+}
 # End-of-Header
 
 error = ""
Binary file PluginProjectPyramid.zip has changed
--- a/PluginPyramid.epj	Sat Dec 23 17:16:21 2023 +0100
+++ b/PluginPyramid.epj	Mon Oct 28 17:35:47 2024 +0100
@@ -1,7 +1,7 @@
 {
   "header": {
     "comment": "eric project file for project PluginPyramid",
-    "copyright": "Copyright (C) 2023 Detlev Offenbach, detlev@die-offenbachs.de"
+    "copyright": "Copyright (C) 2024 Detlev Offenbach, detlev@die-offenbachs.de"
   },
   "project": {
     "AUTHOR": "Detlev Offenbach",
@@ -188,7 +188,6 @@
       "Makefile": "OTHERS",
       "README": "OTHERS",
       "README.*": "OTHERS",
-      "Ui_*.py": "__IGNORE__",
       "makefile": "OTHERS"
     },
     "FORMS": [
@@ -278,13 +277,14 @@
     "OTHERTOOLSPARMS": {
       "Black": {
         "exclude": "/(\\.direnv|\\.eggs|\\.git|\\.hg|\\.ipynb_checkpoints|\\.mypy_cache|\\.nox|\\.pytest_cache|\\.ruff_cache|\\.tox|\\.svn|\\.venv|\\.vscode|__pypackages__|_build|buck-out|build|dist|venv)/",
-        "extend-exclude": "",
+        "extend-exclude": "Ui_.*\\.py",
         "force-exclude": "",
         "line-length": 88,
         "skip-magic-trailing-comma": false,
         "skip-string-normalization": false,
         "source": "project",
         "target-version": [
+          "py313",
           "py312",
           "py311",
           "py310",
@@ -326,6 +326,7 @@
     "SOURCES": [
       "PluginProjectPyramid.py",
       "ProjectPyramid/ConfigurationPage/PyramidPage.py",
+      "ProjectPyramid/ConfigurationPage/Ui_PyramidPage.py",
       "ProjectPyramid/ConfigurationPage/__init__.py",
       "ProjectPyramid/CreateParametersDialog.py",
       "ProjectPyramid/DistributionTypeSelectionDialog.py",
@@ -334,6 +335,12 @@
       "ProjectPyramid/Project.py",
       "ProjectPyramid/PyramidDialog.py",
       "ProjectPyramid/PyramidRoutesDialog.py",
+      "ProjectPyramid/Ui_CreateParametersDialog.py",
+      "ProjectPyramid/Ui_DistributionTypeSelectionDialog.py",
+      "ProjectPyramid/Ui_FormSelectionDialog.py",
+      "ProjectPyramid/Ui_MigrateSummaryDialog.py",
+      "ProjectPyramid/Ui_PyramidDialog.py",
+      "ProjectPyramid/Ui_PyramidRoutesDialog.py",
       "ProjectPyramid/__init__.py",
       "__init__.py"
     ],
@@ -404,4 +411,4 @@
     "VCSOTHERDATA": {},
     "VERSION": ""
   }
-}
\ No newline at end of file
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectPyramid/ConfigurationPage/Ui_PyramidPage.py	Mon Oct 28 17:35:47 2024 +0100
@@ -0,0 +1,153 @@
+# Form implementation generated from reading ui file 'ProjectPyramid/ConfigurationPage/PyramidPage.ui'
+#
+# Created by: PyQt6 UI code generator 6.7.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_PyramidPage(object):
+    def setupUi(self, PyramidPage):
+        PyramidPage.setObjectName("PyramidPage")
+        PyramidPage.resize(528, 745)
+        self.verticalLayout_3 = QtWidgets.QVBoxLayout(PyramidPage)
+        self.verticalLayout_3.setObjectName("verticalLayout_3")
+        self.headerLabel = QtWidgets.QLabel(parent=PyramidPage)
+        self.headerLabel.setObjectName("headerLabel")
+        self.verticalLayout_3.addWidget(self.headerLabel)
+        self.line15 = QtWidgets.QFrame(parent=PyramidPage)
+        self.line15.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+        self.line15.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
+        self.line15.setFrameShape(QtWidgets.QFrame.Shape.HLine)
+        self.line15.setObjectName("line15")
+        self.verticalLayout_3.addWidget(self.line15)
+        self.pyramidConsoleGroup = QtWidgets.QGroupBox(parent=PyramidPage)
+        self.pyramidConsoleGroup.setObjectName("pyramidConsoleGroup")
+        self.gridLayout = QtWidgets.QGridLayout(self.pyramidConsoleGroup)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(parent=self.pyramidConsoleGroup)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.consoleCommandCombo = QtWidgets.QComboBox(parent=self.pyramidConsoleGroup)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.consoleCommandCombo.sizePolicy().hasHeightForWidth())
+        self.consoleCommandCombo.setSizePolicy(sizePolicy)
+        self.consoleCommandCombo.setEditable(True)
+        self.consoleCommandCombo.setObjectName("consoleCommandCombo")
+        self.gridLayout.addWidget(self.consoleCommandCombo, 0, 1, 1, 1)
+        self.label_5 = QtWidgets.QLabel(parent=self.pyramidConsoleGroup)
+        self.label_5.setWordWrap(True)
+        self.label_5.setObjectName("label_5")
+        self.gridLayout.addWidget(self.label_5, 1, 0, 1, 2)
+        self.verticalLayout_3.addWidget(self.pyramidConsoleGroup)
+        self.pyramidBrowserGroup = QtWidgets.QGroupBox(parent=PyramidPage)
+        self.pyramidBrowserGroup.setObjectName("pyramidBrowserGroup")
+        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.pyramidBrowserGroup)
+        self.verticalLayout_5.setObjectName("verticalLayout_5")
+        self.externalBrowserCheckBox = QtWidgets.QCheckBox(parent=self.pyramidBrowserGroup)
+        self.externalBrowserCheckBox.setObjectName("externalBrowserCheckBox")
+        self.verticalLayout_5.addWidget(self.externalBrowserCheckBox)
+        self.verticalLayout_3.addWidget(self.pyramidBrowserGroup)
+        self.python3Group = QtWidgets.QGroupBox(parent=PyramidPage)
+        self.python3Group.setObjectName("python3Group")
+        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.python3Group)
+        self.verticalLayout_2.setObjectName("verticalLayout_2")
+        self.pyramidVirtualEnvironmentPy3Group = QtWidgets.QGroupBox(parent=self.python3Group)
+        self.pyramidVirtualEnvironmentPy3Group.setObjectName("pyramidVirtualEnvironmentPy3Group")
+        self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.pyramidVirtualEnvironmentPy3Group)
+        self.verticalLayout_6.setObjectName("verticalLayout_6")
+        self.label_13 = QtWidgets.QLabel(parent=self.pyramidVirtualEnvironmentPy3Group)
+        self.label_13.setWordWrap(True)
+        self.label_13.setObjectName("label_13")
+        self.verticalLayout_6.addWidget(self.label_13)
+        self.py3VenvNameComboBox = QtWidgets.QComboBox(parent=self.pyramidVirtualEnvironmentPy3Group)
+        self.py3VenvNameComboBox.setObjectName("py3VenvNameComboBox")
+        self.verticalLayout_6.addWidget(self.py3VenvNameComboBox)
+        self.verticalLayout_2.addWidget(self.pyramidVirtualEnvironmentPy3Group)
+        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
+        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+        self.label_9 = QtWidgets.QLabel(parent=self.python3Group)
+        self.label_9.setObjectName("label_9")
+        self.horizontalLayout_3.addWidget(self.label_9)
+        self.py3ShellCombo = QtWidgets.QComboBox(parent=self.python3Group)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.py3ShellCombo.sizePolicy().hasHeightForWidth())
+        self.py3ShellCombo.setSizePolicy(sizePolicy)
+        self.py3ShellCombo.setObjectName("py3ShellCombo")
+        self.horizontalLayout_3.addWidget(self.py3ShellCombo)
+        self.verticalLayout_2.addLayout(self.horizontalLayout_3)
+        self.verticalLayout_3.addWidget(self.python3Group)
+        self.pyramidDocumenattionGroup = QtWidgets.QGroupBox(parent=PyramidPage)
+        self.pyramidDocumenattionGroup.setObjectName("pyramidDocumenattionGroup")
+        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.pyramidDocumenattionGroup)
+        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+        self.label_6 = QtWidgets.QLabel(parent=self.pyramidDocumenattionGroup)
+        self.label_6.setObjectName("label_6")
+        self.horizontalLayout_2.addWidget(self.label_6)
+        self.urlEdit = QtWidgets.QLineEdit(parent=self.pyramidDocumenattionGroup)
+        self.urlEdit.setObjectName("urlEdit")
+        self.horizontalLayout_2.addWidget(self.urlEdit)
+        self.urlResetButton = QtWidgets.QToolButton(parent=self.pyramidDocumenattionGroup)
+        self.urlResetButton.setObjectName("urlResetButton")
+        self.horizontalLayout_2.addWidget(self.urlResetButton)
+        self.verticalLayout_3.addWidget(self.pyramidDocumenattionGroup)
+        self.TranslationsGroup = QtWidgets.QGroupBox(parent=PyramidPage)
+        self.TranslationsGroup.setObjectName("TranslationsGroup")
+        self.verticalLayout = QtWidgets.QVBoxLayout(self.TranslationsGroup)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.label_10 = QtWidgets.QLabel(parent=self.TranslationsGroup)
+        self.label_10.setMinimumSize(QtCore.QSize(0, 40))
+        self.label_10.setWordWrap(True)
+        self.label_10.setObjectName("label_10")
+        self.verticalLayout.addWidget(self.label_10)
+        self.translationsEditorPicker = EricPathPicker(parent=self.TranslationsGroup)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Preferred)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.translationsEditorPicker.sizePolicy().hasHeightForWidth())
+        self.translationsEditorPicker.setSizePolicy(sizePolicy)
+        self.translationsEditorPicker.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
+        self.translationsEditorPicker.setObjectName("translationsEditorPicker")
+        self.verticalLayout.addWidget(self.translationsEditorPicker)
+        self.verticalLayout_3.addWidget(self.TranslationsGroup)
+        spacerItem = QtWidgets.QSpacerItem(20, 274, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
+        self.verticalLayout_3.addItem(spacerItem)
+
+        self.retranslateUi(PyramidPage)
+        QtCore.QMetaObject.connectSlotsByName(PyramidPage)
+        PyramidPage.setTabOrder(self.consoleCommandCombo, self.externalBrowserCheckBox)
+        PyramidPage.setTabOrder(self.externalBrowserCheckBox, self.py3VenvNameComboBox)
+        PyramidPage.setTabOrder(self.py3VenvNameComboBox, self.py3ShellCombo)
+        PyramidPage.setTabOrder(self.py3ShellCombo, self.urlEdit)
+        PyramidPage.setTabOrder(self.urlEdit, self.urlResetButton)
+
+    def retranslateUi(self, PyramidPage):
+        _translate = QtCore.QCoreApplication.translate
+        self.headerLabel.setText(_translate("PyramidPage", "<b>Configure Pyramid</b>"))
+        self.pyramidConsoleGroup.setTitle(_translate("PyramidPage", "Console Command"))
+        self.label.setText(_translate("PyramidPage", "Console Command:"))
+        self.consoleCommandCombo.setToolTip(_translate("PyramidPage", "Enter the console command"))
+        self.label_5.setText(_translate("PyramidPage", "<b>Note:</b> The console command for a console, that is spawning (i.e. exits before the console window is closed), should be prefixed by an \'@\' character."))
+        self.pyramidBrowserGroup.setTitle(_translate("PyramidPage", "Web-Browser"))
+        self.externalBrowserCheckBox.setToolTip(_translate("PyramidPage", "Select to use an external web-browser"))
+        self.externalBrowserCheckBox.setText(_translate("PyramidPage", "Use external web-browser"))
+        self.python3Group.setTitle(_translate("PyramidPage", "Python 3"))
+        self.pyramidVirtualEnvironmentPy3Group.setTitle(_translate("PyramidPage", "Pyramid Virtual Environment"))
+        self.label_13.setText(_translate("PyramidPage", "Select the Virtual Environment to be used with Pyramid"))
+        self.label_9.setText(_translate("PyramidPage", "Pyramid Python Console:"))
+        self.py3ShellCombo.setToolTip(_translate("PyramidPage", "Select the Python console type"))
+        self.pyramidDocumenattionGroup.setTitle(_translate("PyramidPage", "Pyramid Documentation"))
+        self.label_6.setText(_translate("PyramidPage", "URL:"))
+        self.urlEdit.setToolTip(_translate("PyramidPage", "Enter the URL of the Pyramid documentation"))
+        self.urlResetButton.setToolTip(_translate("PyramidPage", "Press to reset the URL to the default URL"))
+        self.TranslationsGroup.setTitle(_translate("PyramidPage", "Translations Editor"))
+        self.label_10.setText(_translate("PyramidPage", "Enter the path of an editor to use to do the translations. Leave empty to disable this feature."))
+        self.translationsEditorPicker.setToolTip(_translate("PyramidPage", "Enter the path of the translations editor"))
+from eric7.EricWidgets.EricPathPicker import EricPathPicker
--- a/ProjectPyramid/Project.py	Sat Dec 23 17:16:21 2023 +0100
+++ b/ProjectPyramid/Project.py	Mon Oct 28 17:35:47 2024 +0100
@@ -728,7 +728,7 @@
         """
         from .FormSelectionDialog import FormSelectionDialog
 
-        dlg = FormSelectionDialog()
+        dlg = FormSelectionDialog(parent=self.__ui)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             template = dlg.getTemplateText()
 
@@ -1065,6 +1065,7 @@
             ).format(version, url),
             modal=True,
             buttons=EricMessageBox.Ok,
+            parent=self.__ui,
         )
         msgBox.setIconPixmap(
             EricPixmapCache.getPixmap(
@@ -1159,7 +1160,7 @@
         """
         from .CreateParametersDialog import CreateParametersDialog
 
-        dlg = CreateParametersDialog(self.__ui)
+        dlg = CreateParametersDialog(parent=self.__ui)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             template, version, overwrite, contextData = dlg.getData()
 
@@ -1586,7 +1587,7 @@
             )
             return
 
-        dlg = DistributionTypeSelectionDialog(self, projectPath, self.__ui)
+        dlg = DistributionTypeSelectionDialog(self, projectPath, parent=self.__ui)
         if dlg.exec() == QDialog.DialogCode.Accepted:
             formats = dlg.getFormats()
             cmd = self.getPyramidCommand(
@@ -1601,6 +1602,7 @@
             dia = PyramidDialog(
                 title,
                 msgSuccess=self.tr("Python distribution file built successfully."),
+                parent=self.__ui,
             )
             res = dia.startProcess(cmd, args, projectPath)
             if res:
@@ -1645,7 +1647,7 @@
         args.append("development.ini")
         args.append(url)
 
-        dia = PyramidDialog(title, fixed=True, linewrap=False)
+        dia = PyramidDialog(title, fixed=True, linewrap=False, parent=self.__ui)
         res = dia.startProcess(cmd, args, projectPath)
         if res:
             dia.exec()
@@ -1670,7 +1672,7 @@
             )
             return
 
-        dia = PyramidRoutesDialog(self)
+        dia = PyramidRoutesDialog(self, parent=self.__ui)
         res = dia.start(projectPath)
         if res:
             dia.exec()
@@ -1699,7 +1701,7 @@
         args = []
         args.append("development.ini")
 
-        dia = PyramidDialog(title, fixed=True, linewrap=False)
+        dia = PyramidDialog(title, fixed=True, linewrap=False, parent=self.__ui)
         res = dia.startProcess(cmd, args, projectPath)
         if res:
             dia.exec()
@@ -1825,7 +1827,9 @@
         args.append("extract_messages")
 
         dia = PyramidDialog(
-            title, msgSuccess=self.tr("\nMessages extracted successfully.")
+            title,
+            msgSuccess=self.tr("\nMessages extracted successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(cmd, args, projectPath)
         if res:
@@ -1861,7 +1865,9 @@
         args.append(code)
 
         dia = PyramidDialog(
-            title, msgSuccess=self.tr("\nMessage catalog initialized successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalog initialized successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(cmd, args, projectPath)
         if res:
@@ -1899,7 +1905,9 @@
         args.append("compile_catalog")
 
         dia = PyramidDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs compiled successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs compiled successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(cmd, args, projectPath)
         if res:
@@ -1952,7 +1960,9 @@
             return
 
         dia = PyramidDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs compiled successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs compiled successfully."),
+            parent=self.__ui,
         )
         res = dia.startBatchProcesses(argsLists, projectPath)
         if res:
@@ -1991,7 +2001,9 @@
         args.append("update_catalog")
 
         dia = PyramidDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs updated successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs updated successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(cmd, args, projectPath)
         if res:
@@ -2038,7 +2050,9 @@
             return
 
         dia = PyramidDialog(
-            title, msgSuccess=self.tr("\nMessage catalogs updated successfully.")
+            title,
+            msgSuccess=self.tr("\nMessage catalogs updated successfully."),
+            parent=self.__ui,
         )
         res = dia.startBatchProcesses(argsLists, projectPath)
         if res:
@@ -2142,7 +2156,9 @@
         args.append("development.ini")
 
         dia = PyramidDialog(
-            title, msgSuccess=self.tr("Database initialized successfully.")
+            title,
+            msgSuccess=self.tr("Database initialized successfully."),
+            parent=self.__ui,
         )
         res = dia.startProcess(cmd, args, projectPath)
         if res:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectPyramid/Ui_CreateParametersDialog.py	Mon Oct 28 17:35:47 2024 +0100
@@ -0,0 +1,100 @@
+# Form implementation generated from reading ui file 'ProjectPyramid/CreateParametersDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.7.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_CreateParametersDialog(object):
+    def setupUi(self, CreateParametersDialog):
+        CreateParametersDialog.setObjectName("CreateParametersDialog")
+        CreateParametersDialog.resize(450, 281)
+        CreateParametersDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(CreateParametersDialog)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.gridLayout_2 = QtWidgets.QGridLayout()
+        self.gridLayout_2.setObjectName("gridLayout_2")
+        self.label = QtWidgets.QLabel(parent=CreateParametersDialog)
+        self.label.setObjectName("label")
+        self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
+        self.templateCombo = QtWidgets.QComboBox(parent=CreateParametersDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.templateCombo.sizePolicy().hasHeightForWidth())
+        self.templateCombo.setSizePolicy(sizePolicy)
+        self.templateCombo.setEditable(True)
+        self.templateCombo.setObjectName("templateCombo")
+        self.gridLayout_2.addWidget(self.templateCombo, 0, 1, 1, 1)
+        self.label_2 = QtWidgets.QLabel(parent=CreateParametersDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout_2.addWidget(self.label_2, 1, 0, 1, 1)
+        self.versionEdit = QtWidgets.QLineEdit(parent=CreateParametersDialog)
+        self.versionEdit.setClearButtonEnabled(True)
+        self.versionEdit.setObjectName("versionEdit")
+        self.gridLayout_2.addWidget(self.versionEdit, 1, 1, 1, 1)
+        self.verticalLayout.addLayout(self.gridLayout_2)
+        self.starterGroupBox = QtWidgets.QGroupBox(parent=CreateParametersDialog)
+        self.starterGroupBox.setObjectName("starterGroupBox")
+        self.gridLayout = QtWidgets.QGridLayout(self.starterGroupBox)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label_3 = QtWidgets.QLabel(parent=self.starterGroupBox)
+        self.label_3.setObjectName("label_3")
+        self.gridLayout.addWidget(self.label_3, 0, 0, 1, 1)
+        self.projectEdit = QtWidgets.QLineEdit(parent=self.starterGroupBox)
+        self.projectEdit.setClearButtonEnabled(True)
+        self.projectEdit.setObjectName("projectEdit")
+        self.gridLayout.addWidget(self.projectEdit, 0, 1, 1, 1)
+        self.label_4 = QtWidgets.QLabel(parent=self.starterGroupBox)
+        self.label_4.setObjectName("label_4")
+        self.gridLayout.addWidget(self.label_4, 1, 0, 1, 1)
+        self.templateLanguageCombo = QtWidgets.QComboBox(parent=self.starterGroupBox)
+        self.templateLanguageCombo.setObjectName("templateLanguageCombo")
+        self.gridLayout.addWidget(self.templateLanguageCombo, 1, 1, 1, 1)
+        self.label_5 = QtWidgets.QLabel(parent=self.starterGroupBox)
+        self.label_5.setObjectName("label_5")
+        self.gridLayout.addWidget(self.label_5, 2, 0, 1, 1)
+        self.backendCombo = QtWidgets.QComboBox(parent=self.starterGroupBox)
+        self.backendCombo.setObjectName("backendCombo")
+        self.gridLayout.addWidget(self.backendCombo, 2, 1, 1, 1)
+        self.verticalLayout.addWidget(self.starterGroupBox)
+        self.overwriteCheckBox = QtWidgets.QCheckBox(parent=CreateParametersDialog)
+        self.overwriteCheckBox.setObjectName("overwriteCheckBox")
+        self.verticalLayout.addWidget(self.overwriteCheckBox)
+        self.buttonBox = QtWidgets.QDialogButtonBox(parent=CreateParametersDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+        self.label.setBuddy(self.templateCombo)
+
+        self.retranslateUi(CreateParametersDialog)
+        self.buttonBox.accepted.connect(CreateParametersDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(CreateParametersDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(CreateParametersDialog)
+        CreateParametersDialog.setTabOrder(self.templateCombo, self.versionEdit)
+        CreateParametersDialog.setTabOrder(self.versionEdit, self.projectEdit)
+        CreateParametersDialog.setTabOrder(self.projectEdit, self.templateLanguageCombo)
+        CreateParametersDialog.setTabOrder(self.templateLanguageCombo, self.backendCombo)
+        CreateParametersDialog.setTabOrder(self.backendCombo, self.overwriteCheckBox)
+
+    def retranslateUi(self, CreateParametersDialog):
+        _translate = QtCore.QCoreApplication.translate
+        CreateParametersDialog.setWindowTitle(_translate("CreateParametersDialog", "Create Parameters"))
+        self.label.setText(_translate("CreateParametersDialog", "Template:"))
+        self.templateCombo.setToolTip(_translate("CreateParametersDialog", "Enter the template to be used"))
+        self.label_2.setText(_translate("CreateParametersDialog", "Template Version:"))
+        self.versionEdit.setToolTip(_translate("CreateParametersDialog", "Enter an optional branch, tag or commit"))
+        self.starterGroupBox.setTitle(_translate("CreateParametersDialog", "CookieCutter Starter Parameters"))
+        self.label_3.setText(_translate("CreateParametersDialog", "Project Name:"))
+        self.projectEdit.setToolTip(_translate("CreateParametersDialog", "Enter the name of the Pyramid project"))
+        self.label_4.setText(_translate("CreateParametersDialog", "Template Language:"))
+        self.templateLanguageCombo.setToolTip(_translate("CreateParametersDialog", "Select the templating language"))
+        self.label_5.setText(_translate("CreateParametersDialog", "Backend:"))
+        self.backendCombo.setToolTip(_translate("CreateParametersDialog", "Select the database backend"))
+        self.overwriteCheckBox.setToolTip(_translate("CreateParametersDialog", "Select to overwrite existing files"))
+        self.overwriteCheckBox.setText(_translate("CreateParametersDialog", "Overwrite existing files"))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectPyramid/Ui_DistributionTypeSelectionDialog.py	Mon Oct 28 17:35:47 2024 +0100
@@ -0,0 +1,43 @@
+# Form implementation generated from reading ui file 'ProjectPyramid/DistributionTypeSelectionDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.7.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_DistributionTypeSelectionDialog(object):
+    def setupUi(self, DistributionTypeSelectionDialog):
+        DistributionTypeSelectionDialog.setObjectName("DistributionTypeSelectionDialog")
+        DistributionTypeSelectionDialog.resize(400, 300)
+        DistributionTypeSelectionDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(DistributionTypeSelectionDialog)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.label = QtWidgets.QLabel(parent=DistributionTypeSelectionDialog)
+        self.label.setObjectName("label")
+        self.verticalLayout.addWidget(self.label)
+        self.formatsList = QtWidgets.QListWidget(parent=DistributionTypeSelectionDialog)
+        self.formatsList.setAlternatingRowColors(True)
+        self.formatsList.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.NoSelection)
+        self.formatsList.setObjectName("formatsList")
+        self.verticalLayout.addWidget(self.formatsList)
+        self.buttonBox = QtWidgets.QDialogButtonBox(parent=DistributionTypeSelectionDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(DistributionTypeSelectionDialog)
+        self.buttonBox.accepted.connect(DistributionTypeSelectionDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(DistributionTypeSelectionDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(DistributionTypeSelectionDialog)
+        DistributionTypeSelectionDialog.setTabOrder(self.formatsList, self.buttonBox)
+
+    def retranslateUi(self, DistributionTypeSelectionDialog):
+        _translate = QtCore.QCoreApplication.translate
+        DistributionTypeSelectionDialog.setWindowTitle(_translate("DistributionTypeSelectionDialog", "Distribution Type"))
+        self.label.setText(_translate("DistributionTypeSelectionDialog", "Select the distribution file formats below:"))
+        self.formatsList.setToolTip(_translate("DistributionTypeSelectionDialog", "Check the distribution file formats that should be generated"))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectPyramid/Ui_FormSelectionDialog.py	Mon Oct 28 17:35:47 2024 +0100
@@ -0,0 +1,57 @@
+# Form implementation generated from reading ui file 'ProjectPyramid/FormSelectionDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.7.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_FormSelectionDialog(object):
+    def setupUi(self, FormSelectionDialog):
+        FormSelectionDialog.setObjectName("FormSelectionDialog")
+        FormSelectionDialog.resize(600, 450)
+        FormSelectionDialog.setSizeGripEnabled(True)
+        self.gridLayout = QtWidgets.QGridLayout(FormSelectionDialog)
+        self.gridLayout.setObjectName("gridLayout")
+        self.label = QtWidgets.QLabel(parent=FormSelectionDialog)
+        self.label.setObjectName("label")
+        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
+        self.typeCombo = QtWidgets.QComboBox(parent=FormSelectionDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.typeCombo.sizePolicy().hasHeightForWidth())
+        self.typeCombo.setSizePolicy(sizePolicy)
+        self.typeCombo.setObjectName("typeCombo")
+        self.gridLayout.addWidget(self.typeCombo, 0, 1, 1, 1)
+        self.label_2 = QtWidgets.QLabel(parent=FormSelectionDialog)
+        self.label_2.setObjectName("label_2")
+        self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+        self.preview = QtWidgets.QTextEdit(parent=FormSelectionDialog)
+        self.preview.setReadOnly(True)
+        self.preview.setObjectName("preview")
+        self.gridLayout.addWidget(self.preview, 2, 0, 1, 2)
+        self.buttonBox = QtWidgets.QDialogButtonBox(parent=FormSelectionDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
+        self.buttonBox.setObjectName("buttonBox")
+        self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 2)
+        self.label.setBuddy(self.typeCombo)
+
+        self.retranslateUi(FormSelectionDialog)
+        self.buttonBox.accepted.connect(FormSelectionDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(FormSelectionDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(FormSelectionDialog)
+        FormSelectionDialog.setTabOrder(self.typeCombo, self.preview)
+        FormSelectionDialog.setTabOrder(self.preview, self.buttonBox)
+
+    def retranslateUi(self, FormSelectionDialog):
+        _translate = QtCore.QCoreApplication.translate
+        FormSelectionDialog.setWindowTitle(_translate("FormSelectionDialog", "Template Type Selection"))
+        self.label.setText(_translate("FormSelectionDialog", "Template &Type:"))
+        self.typeCombo.setToolTip(_translate("FormSelectionDialog", "Select the template type"))
+        self.label_2.setText(_translate("FormSelectionDialog", "Preview:"))
+        self.preview.setToolTip(_translate("FormSelectionDialog", "Shows the text of the selected template"))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectPyramid/Ui_MigrateSummaryDialog.py	Mon Oct 28 17:35:47 2024 +0100
@@ -0,0 +1,52 @@
+# Form implementation generated from reading ui file 'ProjectPyramid/MigrateSummaryDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.7.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_MigrateSummaryDialog(object):
+    def setupUi(self, MigrateSummaryDialog):
+        MigrateSummaryDialog.setObjectName("MigrateSummaryDialog")
+        MigrateSummaryDialog.resize(800, 500)
+        MigrateSummaryDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(MigrateSummaryDialog)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.summaryWidget = QtWidgets.QTreeWidget(parent=MigrateSummaryDialog)
+        self.summaryWidget.setAlternatingRowColors(True)
+        self.summaryWidget.setRootIsDecorated(False)
+        self.summaryWidget.setItemsExpandable(False)
+        self.summaryWidget.setObjectName("summaryWidget")
+        self.verticalLayout.addWidget(self.summaryWidget)
+        self.horizontalLayout = QtWidgets.QHBoxLayout()
+        self.horizontalLayout.setObjectName("horizontalLayout")
+        self.upDownButton = QtWidgets.QPushButton(parent=MigrateSummaryDialog)
+        self.upDownButton.setObjectName("upDownButton")
+        self.horizontalLayout.addWidget(self.upDownButton)
+        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.horizontalLayout.addItem(spacerItem)
+        self.buttonBox = QtWidgets.QDialogButtonBox(parent=MigrateSummaryDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Close)
+        self.buttonBox.setObjectName("buttonBox")
+        self.horizontalLayout.addWidget(self.buttonBox)
+        self.verticalLayout.addLayout(self.horizontalLayout)
+
+        self.retranslateUi(MigrateSummaryDialog)
+        self.buttonBox.accepted.connect(MigrateSummaryDialog.accept) # type: ignore
+        self.buttonBox.rejected.connect(MigrateSummaryDialog.reject) # type: ignore
+        QtCore.QMetaObject.connectSlotsByName(MigrateSummaryDialog)
+
+    def retranslateUi(self, MigrateSummaryDialog):
+        _translate = QtCore.QCoreApplication.translate
+        MigrateSummaryDialog.setWindowTitle(_translate("MigrateSummaryDialog", "Migrations Summary"))
+        self.summaryWidget.headerItem().setText(0, _translate("MigrateSummaryDialog", "Old Revision"))
+        self.summaryWidget.headerItem().setText(1, _translate("MigrateSummaryDialog", "New Revision"))
+        self.summaryWidget.headerItem().setText(2, _translate("MigrateSummaryDialog", "Message"))
+        self.summaryWidget.headerItem().setText(3, _translate("MigrateSummaryDialog", "Labels"))
+        self.upDownButton.setToolTip(_translate("MigrateSummaryDialog", "Press to upgrade or downgrade the database to the selected migration"))
+        self.upDownButton.setText(_translate("MigrateSummaryDialog", "Upgrade"))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectPyramid/Ui_PyramidDialog.py	Mon Oct 28 17:35:47 2024 +0100
@@ -0,0 +1,99 @@
+# Form implementation generated from reading ui file 'ProjectPyramid/PyramidDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.7.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_PyramidDialog(object):
+    def setupUi(self, PyramidDialog):
+        PyramidDialog.setObjectName("PyramidDialog")
+        PyramidDialog.resize(650, 550)
+        PyramidDialog.setSizeGripEnabled(True)
+        self.vboxlayout = QtWidgets.QVBoxLayout(PyramidDialog)
+        self.vboxlayout.setContentsMargins(11, 11, 11, 11)
+        self.vboxlayout.setSpacing(6)
+        self.vboxlayout.setObjectName("vboxlayout")
+        self.outputGroup = QtWidgets.QGroupBox(parent=PyramidDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(2)
+        sizePolicy.setHeightForWidth(self.outputGroup.sizePolicy().hasHeightForWidth())
+        self.outputGroup.setSizePolicy(sizePolicy)
+        self.outputGroup.setObjectName("outputGroup")
+        self.vboxlayout1 = QtWidgets.QVBoxLayout(self.outputGroup)
+        self.vboxlayout1.setContentsMargins(11, 11, 11, 11)
+        self.vboxlayout1.setSpacing(6)
+        self.vboxlayout1.setObjectName("vboxlayout1")
+        self.resultbox = QtWidgets.QTextEdit(parent=self.outputGroup)
+        self.resultbox.setReadOnly(True)
+        self.resultbox.setAcceptRichText(False)
+        self.resultbox.setObjectName("resultbox")
+        self.vboxlayout1.addWidget(self.resultbox)
+        self.vboxlayout.addWidget(self.outputGroup)
+        self.errorGroup = QtWidgets.QGroupBox(parent=PyramidDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(1)
+        sizePolicy.setHeightForWidth(self.errorGroup.sizePolicy().hasHeightForWidth())
+        self.errorGroup.setSizePolicy(sizePolicy)
+        self.errorGroup.setObjectName("errorGroup")
+        self.vboxlayout2 = QtWidgets.QVBoxLayout(self.errorGroup)
+        self.vboxlayout2.setContentsMargins(11, 11, 11, 11)
+        self.vboxlayout2.setSpacing(6)
+        self.vboxlayout2.setObjectName("vboxlayout2")
+        self.errors = QtWidgets.QTextEdit(parent=self.errorGroup)
+        self.errors.setReadOnly(True)
+        self.errors.setAcceptRichText(False)
+        self.errors.setObjectName("errors")
+        self.vboxlayout2.addWidget(self.errors)
+        self.vboxlayout.addWidget(self.errorGroup)
+        self.inputGroup = QtWidgets.QGroupBox(parent=PyramidDialog)
+        self.inputGroup.setObjectName("inputGroup")
+        self.gridlayout = QtWidgets.QGridLayout(self.inputGroup)
+        self.gridlayout.setContentsMargins(11, 11, 11, 11)
+        self.gridlayout.setSpacing(6)
+        self.gridlayout.setObjectName("gridlayout")
+        spacerItem = QtWidgets.QSpacerItem(327, 29, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.gridlayout.addItem(spacerItem, 1, 1, 1, 1)
+        self.sendButton = QtWidgets.QPushButton(parent=self.inputGroup)
+        self.sendButton.setObjectName("sendButton")
+        self.gridlayout.addWidget(self.sendButton, 1, 2, 1, 1)
+        self.input = QtWidgets.QLineEdit(parent=self.inputGroup)
+        self.input.setObjectName("input")
+        self.gridlayout.addWidget(self.input, 0, 0, 1, 3)
+        self.passwordCheckBox = QtWidgets.QCheckBox(parent=self.inputGroup)
+        self.passwordCheckBox.setObjectName("passwordCheckBox")
+        self.gridlayout.addWidget(self.passwordCheckBox, 1, 0, 1, 1)
+        self.vboxlayout.addWidget(self.inputGroup)
+        self.buttonBox = QtWidgets.QDialogButtonBox(parent=PyramidDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Close)
+        self.buttonBox.setObjectName("buttonBox")
+        self.vboxlayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(PyramidDialog)
+        QtCore.QMetaObject.connectSlotsByName(PyramidDialog)
+        PyramidDialog.setTabOrder(self.resultbox, self.errors)
+        PyramidDialog.setTabOrder(self.errors, self.input)
+        PyramidDialog.setTabOrder(self.input, self.passwordCheckBox)
+        PyramidDialog.setTabOrder(self.passwordCheckBox, self.sendButton)
+        PyramidDialog.setTabOrder(self.sendButton, self.buttonBox)
+
+    def retranslateUi(self, PyramidDialog):
+        _translate = QtCore.QCoreApplication.translate
+        PyramidDialog.setWindowTitle(_translate("PyramidDialog", "Pyramid"))
+        self.outputGroup.setTitle(_translate("PyramidDialog", "Output"))
+        self.errorGroup.setTitle(_translate("PyramidDialog", "Errors"))
+        self.inputGroup.setTitle(_translate("PyramidDialog", "Input"))
+        self.sendButton.setToolTip(_translate("PyramidDialog", "Press to send the input to the Pyramid process"))
+        self.sendButton.setText(_translate("PyramidDialog", "&Send"))
+        self.sendButton.setShortcut(_translate("PyramidDialog", "Alt+S"))
+        self.input.setToolTip(_translate("PyramidDialog", "Enter data to be sent to the Pyramid process"))
+        self.passwordCheckBox.setToolTip(_translate("PyramidDialog", "Select to switch the input field to password mode"))
+        self.passwordCheckBox.setText(_translate("PyramidDialog", "&Password Mode"))
+        self.passwordCheckBox.setShortcut(_translate("PyramidDialog", "Alt+P"))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ProjectPyramid/Ui_PyramidRoutesDialog.py	Mon Oct 28 17:35:47 2024 +0100
@@ -0,0 +1,99 @@
+# Form implementation generated from reading ui file 'ProjectPyramid/PyramidRoutesDialog.ui'
+#
+# Created by: PyQt6 UI code generator 6.7.1
+#
+# WARNING: Any manual changes made to this file will be lost when pyuic6 is
+# run again.  Do not edit this file unless you know what you are doing.
+
+
+from PyQt6 import QtCore, QtGui, QtWidgets
+
+
+class Ui_PyramidRoutesDialog(object):
+    def setupUi(self, PyramidRoutesDialog):
+        PyramidRoutesDialog.setObjectName("PyramidRoutesDialog")
+        PyramidRoutesDialog.resize(650, 550)
+        PyramidRoutesDialog.setSizeGripEnabled(True)
+        self.verticalLayout = QtWidgets.QVBoxLayout(PyramidRoutesDialog)
+        self.verticalLayout.setContentsMargins(11, 11, 11, 11)
+        self.verticalLayout.setSpacing(6)
+        self.verticalLayout.setObjectName("verticalLayout")
+        self.routes = QtWidgets.QTreeWidget(parent=PyramidRoutesDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(2)
+        sizePolicy.setHeightForWidth(self.routes.sizePolicy().hasHeightForWidth())
+        self.routes.setSizePolicy(sizePolicy)
+        self.routes.setAlternatingRowColors(True)
+        self.routes.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.NoSelection)
+        self.routes.setRootIsDecorated(False)
+        self.routes.setItemsExpandable(False)
+        self.routes.setExpandsOnDoubleClick(False)
+        self.routes.setObjectName("routes")
+        self.verticalLayout.addWidget(self.routes)
+        self.errorGroup = QtWidgets.QGroupBox(parent=PyramidRoutesDialog)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(1)
+        sizePolicy.setHeightForWidth(self.errorGroup.sizePolicy().hasHeightForWidth())
+        self.errorGroup.setSizePolicy(sizePolicy)
+        self.errorGroup.setObjectName("errorGroup")
+        self.vboxlayout = QtWidgets.QVBoxLayout(self.errorGroup)
+        self.vboxlayout.setContentsMargins(11, 11, 11, 11)
+        self.vboxlayout.setSpacing(6)
+        self.vboxlayout.setObjectName("vboxlayout")
+        self.errors = QtWidgets.QTextEdit(parent=self.errorGroup)
+        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(1)
+        sizePolicy.setHeightForWidth(self.errors.sizePolicy().hasHeightForWidth())
+        self.errors.setSizePolicy(sizePolicy)
+        self.errors.setReadOnly(True)
+        self.errors.setAcceptRichText(False)
+        self.errors.setObjectName("errors")
+        self.vboxlayout.addWidget(self.errors)
+        self.verticalLayout.addWidget(self.errorGroup)
+        self.inputGroup = QtWidgets.QGroupBox(parent=PyramidRoutesDialog)
+        self.inputGroup.setObjectName("inputGroup")
+        self.gridlayout = QtWidgets.QGridLayout(self.inputGroup)
+        self.gridlayout.setContentsMargins(11, 11, 11, 11)
+        self.gridlayout.setSpacing(6)
+        self.gridlayout.setObjectName("gridlayout")
+        spacerItem = QtWidgets.QSpacerItem(327, 29, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
+        self.gridlayout.addItem(spacerItem, 1, 1, 1, 1)
+        self.sendButton = QtWidgets.QPushButton(parent=self.inputGroup)
+        self.sendButton.setObjectName("sendButton")
+        self.gridlayout.addWidget(self.sendButton, 1, 2, 1, 1)
+        self.input = QtWidgets.QLineEdit(parent=self.inputGroup)
+        self.input.setObjectName("input")
+        self.gridlayout.addWidget(self.input, 0, 0, 1, 3)
+        self.passwordCheckBox = QtWidgets.QCheckBox(parent=self.inputGroup)
+        self.passwordCheckBox.setObjectName("passwordCheckBox")
+        self.gridlayout.addWidget(self.passwordCheckBox, 1, 0, 1, 1)
+        self.verticalLayout.addWidget(self.inputGroup)
+        self.buttonBox = QtWidgets.QDialogButtonBox(parent=PyramidRoutesDialog)
+        self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
+        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Close)
+        self.buttonBox.setObjectName("buttonBox")
+        self.verticalLayout.addWidget(self.buttonBox)
+
+        self.retranslateUi(PyramidRoutesDialog)
+        QtCore.QMetaObject.connectSlotsByName(PyramidRoutesDialog)
+        PyramidRoutesDialog.setTabOrder(self.routes, self.errors)
+        PyramidRoutesDialog.setTabOrder(self.errors, self.input)
+        PyramidRoutesDialog.setTabOrder(self.input, self.passwordCheckBox)
+        PyramidRoutesDialog.setTabOrder(self.passwordCheckBox, self.sendButton)
+        PyramidRoutesDialog.setTabOrder(self.sendButton, self.buttonBox)
+
+    def retranslateUi(self, PyramidRoutesDialog):
+        _translate = QtCore.QCoreApplication.translate
+        PyramidRoutesDialog.setWindowTitle(_translate("PyramidRoutesDialog", "Pyramid"))
+        self.errorGroup.setTitle(_translate("PyramidRoutesDialog", "Errors"))
+        self.inputGroup.setTitle(_translate("PyramidRoutesDialog", "Input"))
+        self.sendButton.setToolTip(_translate("PyramidRoutesDialog", "Press to send the input to the Pyramid process"))
+        self.sendButton.setText(_translate("PyramidRoutesDialog", "&Send"))
+        self.sendButton.setShortcut(_translate("PyramidRoutesDialog", "Alt+S"))
+        self.input.setToolTip(_translate("PyramidRoutesDialog", "Enter data to be sent to the Pyramid process"))
+        self.passwordCheckBox.setToolTip(_translate("PyramidRoutesDialog", "Select to switch the input field to password mode"))
+        self.passwordCheckBox.setText(_translate("PyramidRoutesDialog", "&Password Mode"))
+        self.passwordCheckBox.setShortcut(_translate("PyramidRoutesDialog", "Alt+P"))

eric ide

mercurial