Sun, 29 Jun 2014 20:13:56 +0200
Started porting eric5 to PyQt5.
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 | |
3160
209a07d7e401
Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3110
diff
changeset
|
3 | # Copyright (c) 2007 - 2014 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 | """ |
2297
e8a46f81517c
Adjusted some display strings to be independant of the Qt version (Qt4/Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2223
diff
changeset
|
7 | Module implementing a dialog to generate code for a Qt4/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 | |
3145
a9de05d4a22f
# __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3142
diff
changeset
|
10 | from __future__ import unicode_literals |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2492
diff
changeset
|
11 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import os |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
14 | from PyQt5.QtCore import QMetaObject, QByteArray, QRegExp, Qt, pyqtSlot, \ |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
15 | QMetaMethod, qVersion, QSortFilterProxyModel |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
16 | from PyQt5.QtGui import QStandardItemModel, QBrush, QStandardItem |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
17 | from PyQt5.QtWidgets import QWidget, QDialog, QDialogButtonBox, QAction |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
18 | from PyQt5 import uic |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
19 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
53
diff
changeset
|
21 | from E5Gui.E5Application import e5App |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
22 | from E5Gui import E5MessageBox |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
24 | from .Ui_CreateDialogCodeDialog import Ui_CreateDialogCodeDialog |
3110
af7a8dda4c32
Corrected a not working import in the dialog creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3038
diff
changeset
|
25 | from .NewDialogClassDialog import NewDialogClassDialog |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
15
f6ccc31d6e72
Started to rename stuff for eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
27 | from eric5config import getConfig |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
29 | pyqtSignatureRole = Qt.UserRole + 1 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | pythonSignatureRole = Qt.UserRole + 2 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
31 | rubySignatureRole = Qt.UserRole + 3 |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
32 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | class CreateDialogCodeDialog(QDialog, Ui_CreateDialogCodeDialog): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
2297
e8a46f81517c
Adjusted some display strings to be independant of the Qt version (Qt4/Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2223
diff
changeset
|
36 | Class implementing a dialog to generate code for a Qt4/Qt5 dialog. |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
38 | DialogClasses = { |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
39 | "QDialog", "QWidget", "QMainWindow", "QWizard", "QWizardPage", |
2492
91ab554e3465
Added support for more widgets in the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2408
diff
changeset
|
40 | "QDockWidget", "QFrame", "QGroupBox", "QScrollArea", "QMdiArea", |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
41 | "QTabWidget", "QToolBox", "QStackedWidget" |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
42 | } |
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
|
43 | Separator = 25 * "=" |
1275
3db9193a528b
Fixed an issue with the Create Dialog Code dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1206
diff
changeset
|
44 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
45 | def __init__(self, formName, project, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | @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
|
50 | @param project reference to the project object |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | @param parent parent widget if the dialog (QWidget) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | """ |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2492
diff
changeset
|
53 | super(CreateDialogCodeDialog, self).__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.setupUi(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | self.okButton = self.buttonBox.button(QDialogButtonBox.Ok) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.slotsView.header().hide() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | self.project = project |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | self.formFile = formName |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | filename, ext = os.path.splitext(self.formFile) |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
64 | self.srcFile = '{0}{1}'.format( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
65 | filename, self.project.getDefaultSourceExtension()) |
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 | self.slotsModel = QStandardItemModel() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | self.proxyModel = QSortFilterProxyModel() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.proxyModel.setDynamicSortFilter(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | self.proxyModel.setSourceModel(self.slotsModel) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | self.slotsView.setModel(self.proxyModel) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | # initialize some member variables |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | self.__initError = False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.__module = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | if os.path.exists(self.srcFile): |
53
c3eb7cc1ff8b
Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
45
diff
changeset
|
78 | vm = e5App().getObject("ViewManager") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | ed = vm.getOpenEditor(self.srcFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | if ed and not vm.checkDirty(ed): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | self.__initError = True |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
1016
72b6b0778e06
Fixed an issue in the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
84 | try: |
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
|
85 | splitExt = os.path.splitext(self.srcFile) |
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
|
86 | if len(splitExt) == 2: |
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
|
87 | exts = [splitExt[1]] |
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
|
88 | else: |
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
|
89 | exts = None |
2408
dc3a7c9d8f6e
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
90 | from Utilities import ModuleParser |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
91 | self.__module = ModuleParser.readModule( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
92 | self.srcFile, extensions=exts, caching=False) |
1016
72b6b0778e06
Fixed an issue in the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
93 | except ImportError: |
72b6b0778e06
Fixed an issue in the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
94 | pass |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | if self.__module is not None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | self.filenameEdit.setText(self.srcFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | 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
|
100 | vagueClassesList = [] |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
101 | for cls in list(self.__module.classes.values()): |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
102 | if not set(cls.super).isdisjoint( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
103 | CreateDialogCodeDialog.DialogClasses): |
1275
3db9193a528b
Fixed an issue with the Create Dialog Code dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1206
diff
changeset
|
104 | 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
|
105 | 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
|
106 | vagueClassesList.append(cls.name) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | classesList.sort() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | 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
|
109 | 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
|
110 | if classesList: |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
111 | self.classNameCombo.addItem( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
112 | 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
|
113 | self.classNameCombo.addItems(sorted(vagueClassesList)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | |
1016
72b6b0778e06
Fixed an issue in the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
115 | if os.path.exists(self.srcFile) and \ |
72b6b0778e06
Fixed an issue in the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
116 | self.__module is not None and \ |
72b6b0778e06
Fixed an issue in the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
117 | self.classNameCombo.count() == 0: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | self.__initError = True |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
119 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
120 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
121 | 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
|
122 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
123 | """The file <b>{0}</b> exists but does not contain""" |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
124 | """ any classes.""").format(self.srcFile)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | self.okButton.setEnabled(self.classNameCombo.count() > 0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | self.__updateSlotsModel() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | def initError(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | Public method to determine, if there was an initialzation error. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | @return flag indicating an initialzation error (boolean) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | return self.__initError |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | def __objectName(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | Private method to get the object name of the dialog. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | @return object name (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | dlg = uic.loadUi(self.formFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | return dlg.objectName() |
1206
1c9aa6215e7d
Added code to cover more failure situations of PyQt4 uic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1148
diff
changeset
|
147 | except (AttributeError, ImportError) as err: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
148 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
149 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
150 | self.tr("uic error"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
151 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
152 | """<p>There was an error loading the form <b>{0}</b>""" |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
153 | """.</p><p>{1}</p>""").format(self.formFile, str(err))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | return "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | def __className(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 | Private method to get the class name of the dialog. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | @return class name (sting) |
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 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | dlg = uic.loadUi(self.formFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | return dlg.metaObject().className() |
1206
1c9aa6215e7d
Added code to cover more failure situations of PyQt4 uic.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1148
diff
changeset
|
165 | except (AttributeError, ImportError) as err: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
166 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
167 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
168 | self.tr("uic error"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
169 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
170 | """<p>There was an error loading the form <b>{0}</b>""" |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
171 | """.</p><p>{1}</p>""").format(self.formFile, str(err))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | return "" |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | def __signatures(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | Private slot to get the signatures. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | @return list of signatures (list of strings) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | if self.__module is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | return [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | signatures = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | clsName = self.classNameCombo.currentText() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | if clsName: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | 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
|
187 | for meth in list(cls.methods.values()): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | if meth.name.startswith("on_"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | 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
|
190 | sig = ", ".join( |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
191 | [bytes(QMetaObject.normalizedType(t)).decode() |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
192 | for t in meth.pyqtSignature.split(",")]) |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
193 | signatures.append("{0}({1})".format(meth.name, sig)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | signatures.append(meth.name) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | return signatures |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | |
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
|
198 | 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
|
199 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
200 | 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
|
201 | correct Python 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
|
202 | |
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
|
203 | @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
|
204 | @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
|
205 | """ |
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
|
206 | mapped = bytes(type_).decode() |
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
|
207 | |
1139 | 208 | if self.project.getProjectLanguage() != "Python2" or \ |
209 | self.project.getProjectType == "PySide": | |
210 | # 1. check for const | |
211 | mapped = mapped.replace("const ", "") | |
212 | ||
213 | # 2. check fpr * | |
214 | mapped = mapped.replace("*", "") | |
215 | ||
216 | # 3. replace QString and QStringList | |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
217 | mapped = mapped.replace("QStringList", "list")\ |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
218 | .replace("QString", "str") |
1139 | 219 | |
220 | # 4. replace double by float | |
221 | mapped = mapped.replace("double", "float") | |
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
|
222 | |
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
|
223 | return mapped |
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
|
224 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | def __updateSlotsModel(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | Private slot to update the slots tree display. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | self.filterEdit.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | try: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | dlg = uic.loadUi(self.formFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | objects = dlg.findChildren(QWidget) + dlg.findChildren(QAction) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | signatureList = self.__signatures() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | self.slotsModel.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | self.slotsModel.setHorizontalHeaderLabels([""]) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | for obj in objects: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | name = obj.objectName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | if not name: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | continue |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | metaObject = obj.metaObject() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | className = metaObject.className() |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
246 | itm = QStandardItem("{0} ({1})".format(name, className)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | self.slotsModel.appendRow(itm) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | for index in range(metaObject.methodCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | metaMethod = metaObject.method(index) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | if metaMethod.methodType() == QMetaMethod.Signal: |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
251 | if qVersion() >= "5.0.0": |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
252 | itm2 = QStandardItem("on_{0}_{1}".format( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
253 | name, |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
254 | bytes(metaMethod.methodSignature()).decode())) |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
255 | else: |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
256 | itm2 = QStandardItem("on_{0}_{1}".format( |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
257 | name, metaMethod.signature())) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | itm.appendRow(itm2) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | if self.__module is not None: |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
260 | if qVersion() >= "5.0.0": |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
261 | method = "on_{0}_{1}".format( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
262 | name, |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
263 | bytes(metaMethod.methodSignature()) |
3038
7fe9a53280bd
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
264 | .decode().split("(")[0]) |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
265 | else: |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
266 | method = "on_{0}_{1}".format( |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
267 | name, metaMethod.signature().split("(")[0]) |
3030
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
268 | method2 = "{0}({1})".format( |
4a0a82ddd9d2
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
269 | method, ", ".join( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
270 | [self.__mapType(t) |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
271 | for t in metaMethod.parameterTypes()])) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
273 | if method2 in signatureList or \ |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
274 | method in signatureList: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | itm2.setFlags(Qt.ItemFlags(Qt.ItemIsEnabled)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | itm2.setCheckState(Qt.Checked) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | itm2.setForeground(QBrush(Qt.blue)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | continue |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | pyqtSignature = \ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
281 | ", ".join([self.__mapType(t) |
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
|
282 | for t in metaMethod.parameterTypes()]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | parameterNames = metaMethod.parameterNames() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | if parameterNames: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | for index in range(len(parameterNames)): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | if not parameterNames[index]: |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
288 | parameterNames[index] = \ |
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
289 | QByteArray("p{0:d}".format(index)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | methNamesSig = \ |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
291 | ", ".join( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
292 | [bytes(n).decode() for n in parameterNames]) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | if methNamesSig: |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
295 | if qVersion() >= "5.0.0": |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
296 | pythonSignature = \ |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
297 | "on_{0}_{1}(self, {2})".format( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
298 | name, |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
299 | bytes(metaMethod.methodSignature()) |
3038
7fe9a53280bd
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
300 | .decode().split("(")[0], |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
301 | methNamesSig) |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
302 | else: |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
303 | pythonSignature = \ |
3038
7fe9a53280bd
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
304 | "on_{0}_{1}(self, {2})".format( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
305 | name, |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
306 | metaMethod.signature().split("(")[0], |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
307 | methNamesSig) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | else: |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
309 | if qVersion() >= "5.0.0": |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
310 | pythonSignature = "on_{0}_{1}(self)".format( |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
311 | name, |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
312 | bytes(metaMethod.methodSignature()) |
3038
7fe9a53280bd
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
313 | .decode().split("(")[0]) |
2094
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
314 | else: |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
315 | pythonSignature = "on_{0}_{1}(self)".format( |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
316 | name, |
88620e11c67c
Made the seventh set of Qt5 compatibility changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1870
diff
changeset
|
317 | metaMethod.signature().split("(")[0]) |
7
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
318 | itm2.setData(pyqtSignature, pyqtSignatureRole) |
c679fb30c8f3
Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6
diff
changeset
|
319 | itm2.setData(pythonSignature, pythonSignatureRole) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | |
564
b3d966393ba9
Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
537
diff
changeset
|
321 | itm2.setFlags(Qt.ItemFlags( |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
322 | Qt.ItemIsUserCheckable | |
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
323 | Qt.ItemIsEnabled | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | Qt.ItemIsSelectable) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | ) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | itm2.setCheckState(Qt.Unchecked) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | self.slotsView.sortByColumn(0, Qt.AscendingOrder) |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
329 | except (AttributeError, ImportError) as err: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
330 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
331 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
332 | self.tr("uic error"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
333 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
334 | """<p>There was an error loading the form <b>{0}</b>""" |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
335 | """.</p><p>{1}</p>""").format(self.formFile, str(err))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | def __generateCode(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | 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
|
340 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | # first decide on extension |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | if self.filenameEdit.text().endswith(".py") or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | self.filenameEdit.text().endswith(".pyw"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | self.__generatePythonCode() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | elif self.filenameEdit.text().endswith(".rb"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | pass |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | # second decide on project language |
1137
1a37887aefa7
Fixed a little error in the code generation dialog.
detlev@die-offenbachs.de
parents:
1132
diff
changeset
|
348 | elif self.project.getProjectLanguage() in ["Python2", "Python3"]: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | self.__generatePythonCode() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | elif self.project.getProjectLanguage() == "Ruby": |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | pass |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | # assume Python (our global default) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | self.__generatePythonCode() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | def __generatePythonCode(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | 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
|
359 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | # init some variables |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | sourceImpl = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | appendAtIndex = -1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | indentStr = " " |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | slotsCode = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
366 | if self.__module is None: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | # new file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | try: |
1139 | 369 | if self.project.getProjectLanguage() == "Python2": |
370 | if self.project.getProjectType() == "PySide": | |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
371 | tmplName = os.path.join( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
372 | getConfig('ericCodeTemplatesDir'), |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
373 | "impl_pyside.py2.tmpl") |
2741
d0d7836d0c01
Added PyQt5 support to the project resources and translations viewers and the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2737
diff
changeset
|
374 | elif self.project.getProjectType() == "PyQt5": |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
375 | tmplName = os.path.join( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
376 | getConfig('ericCodeTemplatesDir'), |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
377 | "impl_pyqt5.py2.tmpl") |
1139 | 378 | else: |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
379 | tmplName = os.path.join( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
380 | getConfig('ericCodeTemplatesDir'), |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
381 | "impl_pyqt.py2.tmpl") |
1139 | 382 | else: |
1862
b1498278335f
Added dialog code generation capability for PySide and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1844
diff
changeset
|
383 | if self.project.getProjectType() == "PySide": |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
384 | tmplName = os.path.join( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
385 | getConfig('ericCodeTemplatesDir'), |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
386 | "impl_pyside.py.tmpl") |
2741
d0d7836d0c01
Added PyQt5 support to the project resources and translations viewers and the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2737
diff
changeset
|
387 | elif self.project.getProjectType() == "PyQt5": |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
388 | tmplName = os.path.join( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
389 | getConfig('ericCodeTemplatesDir'), |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
390 | "impl_pyqt5.py.tmpl") |
1862
b1498278335f
Added dialog code generation capability for PySide and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1844
diff
changeset
|
391 | else: |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
392 | tmplName = os.path.join( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
393 | getConfig('ericCodeTemplatesDir'), |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
394 | "impl_pyqt.py.tmpl") |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
395 | tmplFile = open(tmplName, 'r', encoding="utf-8") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
396 | template = tmplFile.read() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
397 | tmplFile.close() |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
398 | except IOError as why: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
399 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
400 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
401 | 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
|
402 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
403 | """<p>Could not open the code template file""" |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
404 | """ "{0}".</p><p>Reason: {1}</p>""") |
3038
7fe9a53280bd
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
405 | .format(tmplName, str(why))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
406 | return |
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 | objName = self.__objectName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | if objName: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | template = template\ |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
411 | .replace( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
412 | "$FORMFILE$", |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
413 | os.path.splitext(os.path.basename(self.formFile))[0])\ |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | .replace("$FORMCLASS$", objName)\ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | .replace("$CLASSNAME$", self.classNameCombo.currentText())\ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | .replace("$SUPERCLASS$", self.__className()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | sourceImpl = template.splitlines(True) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
419 | appendAtIndex = -1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | # determine indent string |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
422 | for line in sourceImpl: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | if line.lstrip().startswith("def __init__"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | indentStr = line.replace(line.lstrip(), "") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | break |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
427 | # extend existing file |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | try: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
429 | srcFile = open(self.srcFile, 'r', encoding="utf-8") |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
430 | sourceImpl = srcFile.readlines() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
431 | srcFile.close() |
245
de5c4effc747
Fixed some issues related to Python's universal newline support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
124
diff
changeset
|
432 | if not sourceImpl[-1].endswith("\n"): |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
433 | sourceImpl[-1] = "{0}{1}".format(sourceImpl[-1], "\n") |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
434 | except IOError as why: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
435 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
436 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
437 | 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
|
438 | self.tr( |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
439 | """<p>Could not open the source file "{0}".</p>""" |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
440 | """<p>Reason: {1}</p>""") |
3038
7fe9a53280bd
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
441 | .format(self.srcFile, str(why))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
442 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
443 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
444 | cls = self.__module.classes[self.classNameCombo.currentText()] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
445 | if cls.endlineno == len(sourceImpl) or cls.endlineno == -1: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
446 | appendAtIndex = -1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
447 | # delete empty lines at end |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
448 | while not sourceImpl[-1].strip(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
449 | del sourceImpl[-1] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
450 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
451 | 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
|
452 | 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
|
453 | appendAtIndex -= 1 |
f8275b31dbe5
Fixed the dialog code creation code to respect PEP-8 rules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1131
diff
changeset
|
454 | appendAtIndex += 1 |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
455 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
456 | # determine indent string |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
457 | 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
|
458 | if line.lstrip().startswith("def __init__"): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
459 | indentStr = line.replace(line.lstrip(), "") |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
460 | break |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
461 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
462 | # do the coding stuff |
1139 | 463 | if self.project.getProjectLanguage() == "Python2": |
464 | if self.project.getProjectType() == "PySide": | |
465 | pyqtSignatureFormat = '@Slot({0})' | |
2741
d0d7836d0c01
Added PyQt5 support to the project resources and translations viewers and the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2737
diff
changeset
|
466 | elif self.project.getProjectType() == "PyQt5": |
d0d7836d0c01
Added PyQt5 support to the project resources and translations viewers and the code creation dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2737
diff
changeset
|
467 | pyqtSignatureFormat = '@pyqtSlot({0})' |
1139 | 468 | else: |
469 | pyqtSignatureFormat = '@pyqtSignature("{0}")' | |
470 | else: | |
1862
b1498278335f
Added dialog code generation capability for PySide and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1844
diff
changeset
|
471 | if self.project.getProjectType() == "PySide": |
b1498278335f
Added dialog code generation capability for PySide and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1844
diff
changeset
|
472 | pyqtSignatureFormat = '@Slot({0})' |
b1498278335f
Added dialog code generation capability for PySide and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1844
diff
changeset
|
473 | else: |
b1498278335f
Added dialog code generation capability for PySide and Python3.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1844
diff
changeset
|
474 | pyqtSignatureFormat = '@pyqtSlot({0})' |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
475 | for row in range(self.slotsModel.rowCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
476 | topItem = self.slotsModel.item(row) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
477 | for childRow in range(topItem.rowCount()): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
478 | child = topItem.child(childRow) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
479 | if child.checkState() and \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
480 | child.flags() & Qt.ItemFlags(Qt.ItemIsUserCheckable): |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
481 | slotsCode.append('{0}\n'.format(indentStr)) |
1139 | 482 | slotsCode.append('{0}{1}\n'.format( |
1148
ddc482ded355
Corrected a PEP-8 related issue.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1139
diff
changeset
|
483 | indentStr, |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
484 | pyqtSignatureFormat.format( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
485 | child.data(pyqtSignatureRole)))) |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
486 | slotsCode.append('{0}def {1}:\n'.format( |
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
487 | indentStr, child.data(pythonSignatureRole))) |
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
488 | slotsCode.append('{0}"""\n'.format(indentStr * 2)) |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
489 | slotsCode.append( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
490 | '{0}Slot documentation goes here.\n'.format( |
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
491 | indentStr * 2)) |
427
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
492 | slotsCode.append('{0}"""\n'.format(indentStr * 2)) |
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
493 | slotsCode.append('{0}# {1}: not implemented yet\n'.format( |
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
494 | indentStr * 2, "TODO")) |
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
495 | slotsCode.append('{0}raise NotImplementedError\n'.format( |
6af5d12cfecb
Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
253
diff
changeset
|
496 | indentStr * 2)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
497 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
498 | if appendAtIndex == -1: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
499 | sourceImpl.extend(slotsCode) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
500 | else: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
501 | sourceImpl[appendAtIndex:appendAtIndex] = slotsCode |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
502 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
503 | # write the new code |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
504 | try: |
253
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
505 | if self.project.useSystemEol(): |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
506 | newline = None |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
507 | else: |
3ccdf551bde7
Changed code to improve development on multiple platforms.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
245
diff
changeset
|
508 | newline = self.project.getEolString() |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
509 | srcFile = open(self.filenameEdit.text(), 'w', encoding="utf-8", |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
510 | newline=newline) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
511 | srcFile.write("".join(sourceImpl)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
512 | srcFile.close() |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
513 | except IOError as why: |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
514 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2995
diff
changeset
|
515 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
516 | 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
|
517 | self.tr("""<p>Could not write the source file "{0}".</p>""" |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
518 | """<p>Reason: {1}</p>""") |
3038
7fe9a53280bd
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3034
diff
changeset
|
519 | .format(self.filenameEdit.text(), str(why))) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
520 | return |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
521 | |
6
52e8c820d0dd
Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
522 | self.project.appendFile(self.filenameEdit.text()) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
523 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
524 | @pyqtSlot(int) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
525 | def on_classNameCombo_activated(self, index): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
526 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
527 | Private slot to handle the activated signal of the classname combo. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
528 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
529 | @param index index of the activated item (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
530 | """ |
3034
7ce719013078
Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3030
diff
changeset
|
531 | if (self.classNameCombo.currentText() == |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
532 | 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
|
533 | 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
|
534 | 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
|
535 | 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
|
536 | 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
|
537 | 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
|
538 | 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
|
539 | self.__updateSlotsModel() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
540 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
541 | def on_filterEdit_textChanged(self, text): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
542 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
543 | Private slot called, when thext of the filter edit has changed. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
544 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
545 | @param text changed text (string) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
546 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
547 | re = QRegExp(text, Qt.CaseInsensitive, QRegExp.RegExp2) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
548 | self.proxyModel.setFilterRegExp(re) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
549 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
550 | @pyqtSlot() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
551 | def on_newButton_clicked(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
552 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
553 | 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
|
554 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
555 | path, file = os.path.split(self.srcFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
556 | objName = self.__objectName() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
557 | if objName: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
558 | dlg = NewDialogClassDialog(objName, file, path, self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
559 | if dlg.exec_() == QDialog.Accepted: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
560 | className, fileName = dlg.getData() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
561 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
562 | self.classNameCombo.clear() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
563 | self.classNameCombo.addItem(className) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
564 | self.srcFile = fileName |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
565 | self.filenameEdit.setText(self.srcFile) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
566 | self.__module = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
567 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
568 | self.okButton.setEnabled(self.classNameCombo.count() > 0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
569 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
570 | def on_buttonBox_clicked(self, button): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
571 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
572 | Private slot to handle the buttonBox clicked signal. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
573 | |
2995
63d874899b8b
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2741
diff
changeset
|
574 | @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
|
575 | (QAbstractButton) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
576 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
577 | if button == self.okButton: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
578 | 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
|
579 | self.accept() |