Sun, 04 Dec 2022 11:58:37 +0100
Project Viewer
- removed the CORBA and Protobuf viewers to make them available as plugins
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
8881
54e42bc2437a
Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8412
diff
changeset
|
3 | # Copyright (c) 2007 - 2022 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
7198
684261ef2165
Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7192
diff
changeset
|
7 | Module implementing a dialog to generate code for a Qt5 dialog. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
10 | import contextlib |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
11 | import json |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
12 | import os |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8314
diff
changeset
|
14 | from PyQt6.QtCore import ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
15 | QMetaObject, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
16 | QProcess, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
17 | QProcessEnvironment, |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
18 | QRegularExpression, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
19 | QSortFilterProxyModel, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
20 | Qt, |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
21 | pyqtSlot, |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
22 | ) |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
23 | from PyQt6.QtGui import QBrush, QColor, QStandardItem, QStandardItemModel |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8314
diff
changeset
|
24 | from PyQt6.QtWidgets import QDialog, QDialogButtonBox |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
25 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
26 | from eric7 import Globals, Preferences |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
27 | from eric7.EricWidgets import EricMessageBox |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
28 | from eric7.EricWidgets.EricApplication import ericApp |
9448
ea215f7afab3
Fixed an issue importing the eric7config module.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9423
diff
changeset
|
29 | from eric7.Globals import getConfig |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
30 | from eric7.Utilities import ModuleParser |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
32 | from .NewDialogClassDialog import NewDialogClassDialog |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9448
diff
changeset
|
33 | from .Ui_CreateDialogCodeDialog import Ui_CreateDialogCodeDialog |
5736
000ea446ff4b
Prepared the code for Qt > 5.9.99.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
34 | |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
35 | pyqtSignatureRole = Qt.ItemDataRole.UserRole + 1 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
36 | pythonSignatureRole = Qt.ItemDataRole.UserRole + 2 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
37 | rubySignatureRole = Qt.ItemDataRole.UserRole + 3 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
38 | returnTypeRole = Qt.ItemDataRole.UserRole + 4 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
39 | parameterTypesListRole = Qt.ItemDataRole.UserRole + 5 |
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
40 | parameterNamesListRole = Qt.ItemDataRole.UserRole + 6 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
41 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | class CreateDialogCodeDialog(QDialog, Ui_CreateDialogCodeDialog): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
7198
684261ef2165
Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7192
diff
changeset
|
45 | Class implementing a dialog to generate code for a Qt5 dialog. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
47 | |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
48 | DialogClasses = { |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
49 | "QDialog", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
50 | "QWidget", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
51 | "QMainWindow", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
52 | "QWizard", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
53 | "QWizardPage", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
54 | "QDockWidget", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
55 | "QFrame", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
56 | "QGroupBox", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
57 | "QScrollArea", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
58 | "QMdiArea", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
59 | "QTabWidget", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
60 | "QToolBox", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
61 | "QStackedWidget", |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
62 | } |
1869
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
63 | Separator = 25 * "=" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
64 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
65 | def __init__(self, formName, project, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
68 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | @param formName name of the file containing the form (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | @param project reference to the project object |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | @param parent parent widget if the dialog (QWidget) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
73 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | self.setupUi(self) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
75 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
76 | self.okButton = self.buttonBox.button(QDialogButtonBox.StandardButton.Ok) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
77 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | self.slotsView.header().hide() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
79 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | self.project = project |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
81 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | self.formFile = formName |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | filename, ext = os.path.splitext(self.formFile) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
84 | self.srcFile = "{0}{1}".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
85 | filename, self.project.getDefaultSourceExtension() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
86 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
87 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | self.slotsModel = QStandardItemModel() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | self.proxyModel = QSortFilterProxyModel() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | self.proxyModel.setDynamicSortFilter(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | self.proxyModel.setSourceModel(self.slotsModel) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | self.slotsView.setModel(self.proxyModel) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
93 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | # initialize some member variables |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.__initError = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | self.__module = None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
97 | |
7050
b66cac9a6560
Project: added an option to the UIC parameters to specify the packages root directory relative to the project directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
98 | packagesRoot = self.project.getUicParameter("PackagesRoot") |
b66cac9a6560
Project: added an option to the UIC parameters to specify the packages root directory relative to the project directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
99 | if packagesRoot: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
100 | self.packagesPath = os.path.join( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
101 | self.project.getProjectPath(), packagesRoot |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
102 | ) |
7050
b66cac9a6560
Project: added an option to the UIC parameters to specify the packages root directory relative to the project directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
103 | else: |
b66cac9a6560
Project: added an option to the UIC parameters to specify the packages root directory relative to the project directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
104 | self.packagesPath = self.project.getProjectPath() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
105 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | if os.path.exists(self.srcFile): |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
107 | vm = ericApp().getObject("ViewManager") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | ed = vm.getOpenEditor(self.srcFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | if ed and not vm.checkDirty(ed): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | self.__initError = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
112 | |
8243
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8235
diff
changeset
|
113 | with contextlib.suppress(ImportError): |
1844
0388a36b5fcf
Fixed an issue in the dialog code creation dialog with scanning a Python source file not having the standard extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1819
diff
changeset
|
114 | splitExt = os.path.splitext(self.srcFile) |
8235
78e6d29eb773
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 3).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8228
diff
changeset
|
115 | exts = [splitExt[1]] if len(splitExt) == 2 else None |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
116 | self.__module = ModuleParser.readModule( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
117 | self.srcFile, extensions=exts, caching=False |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
118 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
119 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | if self.__module is not None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.filenameEdit.setText(self.srcFile) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
122 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | classesList = [] |
1869
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
124 | vagueClassesList = [] |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
125 | for cls in list(self.__module.classes.values()): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | if not set(cls.super).isdisjoint(CreateDialogCodeDialog.DialogClasses): |
1275
3db9193a528b
Fixed an issue with the Create Dialog Code dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1206
diff
changeset
|
127 | classesList.append(cls.name) |
1869
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
128 | else: |
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
129 | vagueClassesList.append(cls.name) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | classesList.sort() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | self.classNameCombo.addItems(classesList) |
1869
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
132 | if vagueClassesList: |
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
133 | if classesList: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
134 | self.classNameCombo.addItem(CreateDialogCodeDialog.Separator) |
1869
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
135 | self.classNameCombo.addItems(sorted(vagueClassesList)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
136 | |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
137 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
138 | os.path.exists(self.srcFile) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
139 | and self.__module is not None |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
140 | and self.classNameCombo.count() == 0 |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
141 | ): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.__initError = True |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
143 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
144 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
145 | self.tr("Create Dialog Code"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
146 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
147 | """The file <b>{0}</b> exists but does not contain""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
148 | """ any classes.""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
149 | ).format(self.srcFile), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
150 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
151 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | self.okButton.setEnabled(self.classNameCombo.count() > 0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
153 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | self.__updateSlotsModel() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
155 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | def initError(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | Public method to determine, if there was an initialzation error. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
159 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | @return flag indicating an initialzation error (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | return self.__initError |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
163 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
164 | def __runUicLoadUi(self, command): |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
165 | """ |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
166 | Private method to run the UicLoadUi.py script with the given command |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
167 | and return the output. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
168 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
169 | @param command uic command to be run |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
170 | @type str |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
171 | @return tuple of process output and error flag |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
172 | @rtype tuple of (str, bool) |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
173 | """ |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
174 | venvManager = ericApp().getObject("VirtualEnvManager") |
7907
7991ea245c20
Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
175 | projectType = self.project.getProjectType() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
176 | |
9056
af7c8c7b7c62
Added a few more API calls to the Project object to
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9016
diff
changeset
|
177 | venvName = self.project.getProjectVenv(resolveDebugger=False) |
7907
7991ea245c20
Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
178 | if not venvName: |
7991ea245c20
Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
179 | # no project specific environment, try a type specific one |
8336
d566c2970f39
Changed the E6Plugin project type to E7Plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8324
diff
changeset
|
180 | if projectType in ("PyQt5", "PySide2"): |
7907
7991ea245c20
Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
181 | venvName = Preferences.getQt("PyQtVenvName") |
8336
d566c2970f39
Changed the E6Plugin project type to E7Plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8324
diff
changeset
|
182 | elif projectType in ("PyQt6", "E7Plugin", "PySide6"): |
7907
7991ea245c20
Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
183 | venvName = Preferences.getQt("PyQt6VenvName") |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
184 | interpreter = venvManager.getVirtualenvInterpreter(venvName) |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
185 | execPath = venvManager.getVirtualenvExecPath(venvName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
186 | |
6661
19fcbb7be3da
CreateDialogCodeDialog: changed logic to always call the external UI loader in order to avoid clashes with eric classes and packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
187 | if not interpreter: |
9016
6f079c524e99
Changed occurrences of sys.executable with a method to get rid of the "w" on Windows and macOS systems (i.e. change pythonw to python).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8881
diff
changeset
|
188 | interpreter = Globals.getPythonExecutable() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
189 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
190 | env = QProcessEnvironment.systemEnvironment() |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
191 | if execPath: |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
192 | if env.contains("PATH"): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
193 | env.insert("PATH", os.pathsep.join([execPath, env.value("PATH")])) |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
194 | else: |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
195 | env.insert("PATH", execPath) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
196 | |
8336
d566c2970f39
Changed the E6Plugin project type to E7Plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8324
diff
changeset
|
197 | if projectType in ("PyQt5", "PySide2"): |
7907
7991ea245c20
Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
198 | loadUi = os.path.join(os.path.dirname(__file__), "UicLoadUi5.py") |
8336
d566c2970f39
Changed the E6Plugin project type to E7Plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8324
diff
changeset
|
199 | elif projectType in ("PyQt6", "E7Plugin", "PySide6"): |
7907
7991ea245c20
Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
200 | loadUi = os.path.join(os.path.dirname(__file__), "UicLoadUi6.py") |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
201 | args = [ |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
202 | loadUi, |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
203 | command, |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
204 | self.formFile, |
7050
b66cac9a6560
Project: added an option to the UIC parameters to specify the packages root directory relative to the project directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
205 | self.packagesPath, |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
206 | ] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
207 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
208 | uicText = "" |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
209 | ok = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
210 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
211 | proc = QProcess() |
7050
b66cac9a6560
Project: added an option to the UIC parameters to specify the packages root directory relative to the project directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
212 | proc.setWorkingDirectory(self.packagesPath) |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
213 | proc.setProcessEnvironment(env) |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
214 | proc.start(interpreter, args) |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
215 | started = proc.waitForStarted(5000) |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
216 | finished = proc.waitForFinished(30000) |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
217 | if started and finished: |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
218 | output = proc.readAllStandardOutput() |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
219 | outText = str(output, "utf-8", "replace") |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
220 | if proc.exitCode() == 0: |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
221 | ok = True |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
222 | uicText = outText.strip() |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
223 | else: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
224 | EricMessageBox.critical( |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
225 | self, |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
226 | self.tr("uic error"), |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
227 | self.tr( |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
228 | """<p>There was an error loading the form <b>{0}</b>""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
229 | """.</p><p>{1}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
230 | ).format(self.formFile, outText), |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
231 | ) |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
232 | else: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
233 | EricMessageBox.critical( |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
234 | self, |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
235 | self.tr("uic error"), |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
236 | self.tr( |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
237 | """<p>The project specific Python interpreter <b>{0}</b>""" |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
238 | """ could not be started or did not finish within 30""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
239 | """ seconds.</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
240 | ).format(interpreter), |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
241 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
242 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
243 | return uicText, ok |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
244 | |
6661
19fcbb7be3da
CreateDialogCodeDialog: changed logic to always call the external UI loader in order to avoid clashes with eric classes and packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
245 | def __objectName(self): |
6544
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6291
diff
changeset
|
246 | """ |
6661
19fcbb7be3da
CreateDialogCodeDialog: changed logic to always call the external UI loader in order to avoid clashes with eric classes and packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
247 | Private method to get the object name of a form. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
248 | |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
249 | @return object name |
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
250 | @rtype str |
6544
51996454f89f
CreateDialogCodeDialog: extended the logic to support projects loading custom widgets from outside the eric or project directories (via a virtual environment).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6291
diff
changeset
|
251 | """ |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
252 | objectName = "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
253 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
254 | output, ok = self.__runUicLoadUi("object_name") |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
255 | if ok and output: |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
256 | objectName = output |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
257 | |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
258 | return objectName |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
259 | |
6661
19fcbb7be3da
CreateDialogCodeDialog: changed logic to always call the external UI loader in order to avoid clashes with eric classes and packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
260 | def __className(self): |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
261 | """ |
6661
19fcbb7be3da
CreateDialogCodeDialog: changed logic to always call the external UI loader in order to avoid clashes with eric classes and packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
262 | Private method to get the class name of a form. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
263 | |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
264 | @return class name |
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
265 | @rtype str |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | """ |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
267 | className = "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
268 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
269 | output, ok = self.__runUicLoadUi("class_name") |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
270 | if ok and output: |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
271 | className = output |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
272 | |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
273 | return className |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
274 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | def __signatures(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | Private slot to get the signatures. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
278 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | @return list of signatures (list of strings) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | if self.__module is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | return [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
283 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | signatures = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | clsName = self.classNameCombo.currentText() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | if clsName: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | cls = self.__module.classes[clsName] |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
288 | for meth in list(cls.methods.values()): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | if meth.name.startswith("on_"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | if meth.pyqtSignature is not None: |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
291 | sig = ", ".join( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
292 | [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
293 | bytes(QMetaObject.normalizedType(t)).decode() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
294 | for t in meth.pyqtSignature.split(",") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
295 | ] |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
296 | ) |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
297 | signatures.append("{0}({1})".format(meth.name, sig)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | signatures.append(meth.name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | return signatures |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
301 | |
42
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
15
diff
changeset
|
302 | def __mapType(self, type_): |
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
15
diff
changeset
|
303 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
304 | Private method to map a type as reported by Qt's meta object to the |
42
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
15
diff
changeset
|
305 | correct Python type. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
306 | |
42
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
15
diff
changeset
|
307 | @param type_ type as reported by Qt (QByteArray) |
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
15
diff
changeset
|
308 | @return mapped Python type (string) |
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
15
diff
changeset
|
309 | """ |
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
15
diff
changeset
|
310 | mapped = bytes(type_).decode() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
311 | |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
312 | # I. always check for * |
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
313 | mapped = mapped.replace("*", "") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
314 | |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
315 | # 1. check for const |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
316 | mapped = mapped.replace("const ", "") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
317 | |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
318 | # 2. replace QString and QStringList |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
319 | mapped = mapped.replace("QStringList", "list").replace("QString", "str") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
320 | |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
321 | # 3. replace double by float |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
322 | mapped = mapped.replace("double", "float") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
323 | |
42
23b45a742e17
Fixed a bunch of issues including a workaround for a bug in the Python email package (s. EmailDialog.py).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
15
diff
changeset
|
324 | return mapped |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
325 | |
6661
19fcbb7be3da
CreateDialogCodeDialog: changed logic to always call the external UI loader in order to avoid clashes with eric classes and packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
326 | def __updateSlotsModel(self): |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
327 | """ |
6661
19fcbb7be3da
CreateDialogCodeDialog: changed logic to always call the external UI loader in order to avoid clashes with eric classes and packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
328 | Private slot to update the slots tree display. |
6547
77c817301ca1
CreateDialogCodeDialog: third attempt on getting this working with projects using a virtual environment different from the one used to run eric.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6544
diff
changeset
|
329 | """ |
6661
19fcbb7be3da
CreateDialogCodeDialog: changed logic to always call the external UI loader in order to avoid clashes with eric classes and packages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6645
diff
changeset
|
330 | self.filterEdit.clear() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
331 | |
6590
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
332 | output, ok = self.__runUicLoadUi("signatures") |
8cad6f50ff4c
CreateDialogCodeDialog: fixed an issue and applied some logic to enhance the form data loading via the external UicLoadUi.py script.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6548
diff
changeset
|
333 | if ok and output: |
9558
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
334 | try: |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
335 | objectsList = json.loads(output.strip()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
336 | |
9558
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
337 | signatureList = self.__signatures() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
338 | |
9558
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
339 | self.slotsModel.clear() |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
340 | self.slotsModel.setHorizontalHeaderLabels([""]) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
341 | for objectDict in objectsList: |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
342 | itm = QStandardItem( |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
343 | "{0} ({1})".format(objectDict["name"], objectDict["class_name"]) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
344 | ) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
345 | self.slotsModel.appendRow(itm) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
346 | for methodDict in objectDict["methods"]: |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
347 | itm2 = QStandardItem(methodDict["signature"]) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
348 | itm.appendRow(itm2) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
349 | |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
350 | if self.__module is not None and ( |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
351 | methodDict["methods"][0] in signatureList |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
352 | or methodDict["methods"][1] in signatureList |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
353 | ): |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
354 | itm2.setFlags(Qt.ItemFlag.ItemIsEnabled) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
355 | itm2.setCheckState(Qt.CheckState.Checked) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
356 | if ericApp().usesDarkPalette(): |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
357 | itm2.setForeground(QBrush(QColor("#75bfff"))) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
358 | else: |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
359 | itm2.setForeground(QBrush(Qt.GlobalColor.blue)) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
360 | continue |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
361 | |
9558
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
362 | itm2.setData(methodDict["pyqt_signature"], pyqtSignatureRole) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
363 | itm2.setData( |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
364 | methodDict["python_signature"], pythonSignatureRole |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
365 | ) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
366 | itm2.setData(methodDict["return_type"], returnTypeRole) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
367 | itm2.setData( |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
368 | methodDict["parameter_types"], parameterTypesListRole |
9559
34fc53e6159d
Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9558
diff
changeset
|
369 | ) |
9558
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
370 | itm2.setData( |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
371 | methodDict["parameter_names"], parameterNamesListRole |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
372 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
373 | |
9558
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
374 | itm2.setFlags( |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
375 | Qt.ItemFlag.ItemIsUserCheckable |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
376 | | Qt.ItemFlag.ItemIsEnabled |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
377 | | Qt.ItemFlag.ItemIsSelectable |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
378 | ) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
379 | itm2.setCheckState(Qt.CheckState.Unchecked) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
380 | |
9558
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
381 | self.slotsView.sortByColumn(0, Qt.SortOrder.AscendingOrder) |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
382 | except json.JSONDecodeError as err: |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
383 | EricMessageBox.critical( |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
384 | self, |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
385 | self.tr("Update Slots List"), |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
386 | self.tr( |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
387 | "<p>The update of the slots list failed because invalid data" |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
388 | " was received.</p><p>Error: {0}</p><p>Data: {1}</p>" |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
389 | ).format(str(err), output), |
6d6a0e5f65ca
Made the slot list update more resilient with respect to invalid data received by the slot signature extractor client.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
390 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
391 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
392 | def __generateCode(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
393 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
394 | Private slot to generate the code as requested by the user. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
395 | """ |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
396 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
397 | self.filenameEdit.text().endswith(".rb") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
398 | or self.project.getProjectLanguage() == "Ruby" |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
399 | ): |
8228
772103b14c18
Applied some more code simplifications suggested by the new Simplify checker (Y114: use logical or for multiple if).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8222
diff
changeset
|
400 | # Ruby code generation is not supported |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | pass |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | # assume Python (our global default) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | self.__generatePythonCode() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
405 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | def __generatePythonCode(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | Private slot to generate Python code as requested by the user. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | """ |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
410 | if self.project.getProjectLanguage() != "Python3": |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
411 | EricMessageBox.critical( |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
412 | self, |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
413 | self.tr("Code Generation"), |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
414 | self.tr( |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
415 | """<p>Code generation for project language""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
416 | """ "{0}" is not supported.</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
417 | ).format(self.project.getProjectLanguage()), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
418 | ) |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
419 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
420 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | # init some variables |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | sourceImpl = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | appendAtIndex = -1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | indentStr = " " |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | slotsCode = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
426 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | if self.__module is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | # new file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | try: |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
430 | if self.project.getProjectType() == "PySide2": |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
431 | tmplName = os.path.join( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
432 | getConfig("ericCodeTemplatesDir"), "impl_pyside2.py.tmpl" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
433 | ) |
7911
4621c9082a43
Added support for PySide6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7907
diff
changeset
|
434 | elif self.project.getProjectType() == "PySide6": |
4621c9082a43
Added support for PySide6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7907
diff
changeset
|
435 | tmplName = os.path.join( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
436 | getConfig("ericCodeTemplatesDir"), "impl_pyside6.py.tmpl" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
437 | ) |
8336
d566c2970f39
Changed the E6Plugin project type to E7Plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8324
diff
changeset
|
438 | elif self.project.getProjectType() == "PyQt5": |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
439 | tmplName = os.path.join( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
440 | getConfig("ericCodeTemplatesDir"), "impl_pyqt5.py.tmpl" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
441 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
442 | elif self.project.getProjectType() in ["PyQt6", "E7Plugin"]: |
7907
7991ea245c20
Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
443 | tmplName = os.path.join( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
444 | getConfig("ericCodeTemplatesDir"), "impl_pyqt6.py.tmpl" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
445 | ) |
1139 | 446 | else: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
447 | EricMessageBox.critical( |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
448 | self, |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
449 | self.tr("Code Generation"), |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
450 | self.tr( |
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
451 | """<p>No code template file available for""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
452 | """ project type "{0}".</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
453 | ).format(self.project.getProjectType()), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
454 | ) |
7635
0cdead130a81
Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7494
diff
changeset
|
455 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
456 | with open(tmplName, "r", encoding="utf-8") as tmplFile: |
7785
9978016560ec
Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7775
diff
changeset
|
457 | template = tmplFile.read() |
7836
2f0d208b8137
Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
458 | except OSError as why: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
459 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
460 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
461 | self.tr("Code Generation"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
462 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
463 | """<p>Could not open the code template file""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
464 | """ "{0}".</p><p>Reason: {1}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
465 | ).format(tmplName, str(why)), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
466 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
467 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
468 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
469 | objName = self.__objectName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
470 | if objName: |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
471 | template = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
472 | template.replace( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
473 | "$FORMFILE$", |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
474 | os.path.splitext(os.path.basename(self.formFile))[0], |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
475 | ) |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
476 | .replace("$FORMCLASS$", objName) |
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
477 | .replace("$CLASSNAME$", self.classNameCombo.currentText()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | .replace("$SUPERCLASS$", self.__className()) |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
479 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
480 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
481 | sourceImpl = template.splitlines(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
482 | appendAtIndex = -1 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
483 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
484 | # determine indent string |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
485 | for line in sourceImpl: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
486 | if line.lstrip().startswith("def __init__"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
487 | indentStr = line.replace(line.lstrip(), "") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
488 | break |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
489 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
490 | # extend existing file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
491 | try: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
492 | with open(self.srcFile, "r", encoding="utf-8") as srcFile: |
7785
9978016560ec
Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7775
diff
changeset
|
493 | sourceImpl = srcFile.readlines() |
245
de5c4effc747
Fixed some issues related to Python's universal newline support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
124
diff
changeset
|
494 | if not sourceImpl[-1].endswith("\n"): |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
495 | sourceImpl[-1] = "{0}{1}".format(sourceImpl[-1], "\n") |
7836
2f0d208b8137
Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
496 | except OSError as why: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
497 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
498 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
499 | self.tr("Code Generation"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
500 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
501 | """<p>Could not open the source file "{0}".</p>""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
502 | """<p>Reason: {1}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
503 | ).format(self.srcFile, str(why)), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
504 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
505 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
506 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
507 | cls = self.__module.classes[self.classNameCombo.currentText()] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
508 | if cls.endlineno == len(sourceImpl) or cls.endlineno == -1: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
509 | appendAtIndex = -1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
510 | # delete empty lines at end |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | while not sourceImpl[-1].strip(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | del sourceImpl[-1] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
513 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
514 | appendAtIndex = cls.endlineno - 1 |
1132
f8275b31dbe5
Fixed the dialog code creation code to respect PEP-8 rules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
515 | while not sourceImpl[appendAtIndex].strip(): |
f8275b31dbe5
Fixed the dialog code creation code to respect PEP-8 rules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
516 | appendAtIndex -= 1 |
f8275b31dbe5
Fixed the dialog code creation code to respect PEP-8 rules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
517 | appendAtIndex += 1 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
518 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
519 | # determine indent string |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
520 | for line in sourceImpl[cls.lineno : cls.endlineno + 1]: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | if line.lstrip().startswith("def __init__"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
522 | indentStr = line.replace(line.lstrip(), "") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | break |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
524 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | # do the coding stuff |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
526 | pyqtSignatureFormat = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
527 | "@Slot({0})" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
528 | if self.project.getProjectType() in ("PySide2", "PySide6") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
529 | else "@pyqtSlot({0})" |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
530 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
531 | for row in range(self.slotsModel.rowCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
532 | topItem = self.slotsModel.item(row) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
533 | for childRow in range(topItem.rowCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
534 | child = topItem.child(childRow) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
535 | if child.checkState() == Qt.CheckState.Checked and ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
536 | child.flags() & Qt.ItemFlag.ItemIsUserCheckable |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
537 | == Qt.ItemFlag.ItemIsUserCheckable |
7265
0665c4d509c9
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
538 | ): |
9423
f30b9e9819cc
Changed the 'Create Dialog Code Dialog' to adhere to the formatting rules of the 'Black' tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
539 | slotsCode.append("\n") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
540 | slotsCode.append( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
541 | "{0}{1}\n".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
542 | indentStr, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
543 | pyqtSignatureFormat.format(child.data(pyqtSignatureRole)), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
544 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
545 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
546 | slotsCode.append( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
547 | "{0}def {1}:\n".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
548 | indentStr, child.data(pythonSignatureRole) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
549 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
550 | ) |
4485
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
551 | indentStr2 = indentStr * 2 |
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
552 | slotsCode.append('{0}"""\n'.format(indentStr2)) |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
553 | slotsCode.append( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
554 | "{0}Slot documentation goes here.\n".format(indentStr2) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
555 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
556 | if child.data(returnTypeRole) or child.data(parameterTypesListRole): |
9423
f30b9e9819cc
Changed the 'Create Dialog Code Dialog' to adhere to the formatting rules of the 'Black' tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
557 | slotsCode.append("\n") |
4485
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
558 | if child.data(parameterTypesListRole): |
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
559 | for name, type_ in zip( |
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
560 | child.data(parameterNamesListRole), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
561 | child.data(parameterTypesListRole), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
562 | ): |
4485
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
563 | slotsCode.append( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
564 | "{0}@param {1} DESCRIPTION\n".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
565 | indentStr2, name |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
566 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
567 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
568 | slotsCode.append( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
569 | "{0}@type {1}\n".format(indentStr2, type_) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
570 | ) |
4485
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
571 | if child.data(returnTypeRole): |
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
572 | slotsCode.append( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
573 | "{0}@returns DESCRIPTION\n".format(indentStr2) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
574 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
575 | slotsCode.append( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
576 | "{0}@rtype {1}\n".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
577 | indentStr2, child.data(returnTypeRole) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
578 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
579 | ) |
4485
28743e3251ce
Improved the dialog code generation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4332
diff
changeset
|
580 | slotsCode.append('{0}"""\n'.format(indentStr2)) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
581 | slotsCode.append( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
582 | "{0}# {1}: not implemented yet\n".format(indentStr2, "TODO") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
583 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
584 | slotsCode.append( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
585 | "{0}raise NotImplementedError\n".format(indentStr2) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
586 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
587 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
588 | if appendAtIndex == -1: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
589 | sourceImpl.extend(slotsCode) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
590 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
591 | sourceImpl[appendAtIndex:appendAtIndex] = slotsCode |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
592 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
593 | # write the new code |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
594 | newline = None if self.project.useSystemEol() else self.project.getEolString() |
7785
9978016560ec
Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7775
diff
changeset
|
595 | fn = self.filenameEdit.text() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
596 | try: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
597 | with open(fn, "w", encoding="utf-8", newline=newline) as srcFile: |
7785
9978016560ec
Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7775
diff
changeset
|
598 | srcFile.write("".join(sourceImpl)) |
7836
2f0d208b8137
Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
599 | except OSError as why: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8336
diff
changeset
|
600 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
601 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
602 | self.tr("Code Generation"), |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
603 | self.tr( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
604 | """<p>Could not write the source file "{0}".</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
605 | """<p>Reason: {1}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
606 | ).format(fn, str(why)), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
607 | ) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
608 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
609 | |
7785
9978016560ec
Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7775
diff
changeset
|
610 | self.project.appendFile(fn) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
611 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
612 | @pyqtSlot(int) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
613 | def on_classNameCombo_activated(self, index): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
614 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
615 | Private slot to handle the activated signal of the classname combo. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
616 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
617 | @param index index of the activated item (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
618 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
619 | if self.classNameCombo.currentText() == CreateDialogCodeDialog.Separator: |
1869
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
620 | self.okButton.setEnabled(False) |
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
621 | self.filterEdit.clear() |
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
622 | self.slotsModel.clear() |
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
623 | self.slotsModel.setHorizontalHeaderLabels([""]) |
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
624 | else: |
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
625 | self.okButton.setEnabled(True) |
3e34d5c362d9
Enhanced the dialog code generation dialog by presenting classes not directly derived from QWidget, QDialog, QMainWindow or QWizard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1862
diff
changeset
|
626 | self.__updateSlotsModel() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
627 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
628 | def on_filterEdit_textChanged(self, text): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
629 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
630 | Private slot called, when thext of the filter edit has changed. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
631 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
632 | @param text changed text (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
633 | """ |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
634 | rx = QRegularExpression( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
635 | text, QRegularExpression.PatternOption.CaseInsensitiveOption |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
636 | ) |
7775
4a1db75550bd
Changed code to not use deprecated 'QRegExp' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7759
diff
changeset
|
637 | self.proxyModel.setFilterRegularExpression(rx) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
638 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
639 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
640 | def on_newButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
641 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
642 | Private slot called to enter the data for a new dialog class. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
643 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
644 | path, file = os.path.split(self.srcFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
645 | objName = self.__objectName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
646 | if objName: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
647 | dlg = NewDialogClassDialog(objName, file, path, self) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
648 | if dlg.exec() == QDialog.DialogCode.Accepted: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
649 | className, fileName = dlg.getData() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
650 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
651 | self.classNameCombo.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
652 | self.classNameCombo.addItem(className) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
653 | self.srcFile = fileName |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
654 | self.filenameEdit.setText(self.srcFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
655 | self.__module = None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
656 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
657 | self.okButton.setEnabled(self.classNameCombo.count() > 0) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
658 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
659 | def on_buttonBox_clicked(self, button): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
660 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
661 | Private slot to handle the buttonBox clicked signal. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
662 | |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
663 | @param button reference to the button that was clicked |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
664 | (QAbstractButton) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
665 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
666 | if button == self.okButton: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
667 | self.__generateCode() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
668 | self.accept() |