CxFreeze/CxfreezeConfigDialog.py

Tue, 10 Dec 2024 15:48:55 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:48:55 +0100
branch
eric7
changeset 149
8f00ab5d72a2
parent 145
c423d46df27e
permissions
-rw-r--r--

Updated copyright for 2025.

1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
149
8f00ab5d72a2 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 145
diff changeset
3 # Copyright (c) 2010 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to enter the parameters for cxfreeze.
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
10 import contextlib
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
11 import copy
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import os
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
13 import sys
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
15 from PyQt6.QtCore import QDir, QProcess, pyqtSlot
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
16 from PyQt6.QtWidgets import QDialog, QListWidgetItem
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
140
9e20ee9c7ca2 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
18 try:
9e20ee9c7ca2 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
19 from eric7.EricGui import EricPixmapCache
9e20ee9c7ca2 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
20 except ImportError:
9e20ee9c7ca2 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
21 from UI import PixmapCache as EricPixmapCache
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
22
140
9e20ee9c7ca2 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
23 from eric7.EricWidgets.EricDirFileDialog import EricDirFileDialog
9e20ee9c7ca2 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
24 from eric7.EricWidgets.EricPathPicker import EricPathPickerModes
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
26 try:
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
27 from eric7.SystemUtilities.OSUtilities import isMacPlatform, isWindowsPlatform
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
28 except ImportError:
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
29 # imports for eric < 23.1
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
30 from eric7.Globals import isMacPlatform, isWindowsPlatform
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
31 try:
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
32 from eric7.SystemUtilities.FileSystemUtilities import toNativeSeparators
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
33 except ImportError:
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
34 # imports for eric < 23.1
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
35 from eric7.Utilities import toNativeSeparators
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
36
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 from .Ui_CxfreezeConfigDialog import Ui_CxfreezeConfigDialog
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
39
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 class CxfreezeConfigDialog(QDialog, Ui_CxfreezeConfigDialog):
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Class implementing a dialog to enter the parameters for cxfreeze.
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
44
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
45 def __init__(self, project, exe, parms=None, parent=None):
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 Constructor
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
48
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
49 @param project reference to the project object
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
50 @type Project
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
51 @param exe name of the cxfreeze executable
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
52 @type str
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 @param parms parameters to set in the dialog
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
54 @type dict
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
55 @param parent parent widget of this dialog
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
56 @type QWidget
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 QDialog.__init__(self, parent)
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.setupUi(self)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
60
140
9e20ee9c7ca2 Adapted the import statements to the new structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 139
diff changeset
61 self.selectFileOrFolderButton.setIcon(EricPixmapCache.getIcon("open.png"))
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
62
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
63 self.targetDirPicker.setMode(EricPathPickerModes.DIRECTORY_MODE)
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
64 self.targetDirPicker.setWindowTitle(self.tr("Select target directory"))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
65
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
66 iconsI18N = self.tr("Icons")
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
67 allFilesI18N = self.tr("All files")
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
68 if isWindowsPlatform():
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
69 iconFilter = "{0} (*.ico);;{1} (*.*)".format(iconsI18N, allFilesI18N)
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
70 elif isMacPlatform():
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
71 iconFilter = "{0} (*.icns *.png);;{1} (*.*)".format(iconsI18N, allFilesI18N)
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
72 else:
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
73 iconFilter = "{0} (*.png);;{1} (*.*)".format(iconsI18N, allFilesI18N)
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
74 self.applicationIconPicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
75 self.applicationIconPicker.setWindowTitle(
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
76 self.tr("Select the application icon")
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
77 )
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
78 self.applicationIconPicker.setFilters(iconFilter)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
79
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
80 self.extListFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
81 self.extListFilePicker.setWindowTitle(self.tr("Select external list file"))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
82
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
83 self.__project = project
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.__initializeDefaults()
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
85
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 # get a copy of the defaults to store the user settings
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
87 self.__parameters = copy.deepcopy(self.defaults)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
88
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 # combine it with the values of parms
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 if parms is not None:
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
91 self.__parameters.update(parms)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
92
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
93 self.cxfreezeExecCombo.addItems(exe)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
94 # try to set the saved script path
131
86d810eea380 Implemented some code simplifications.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
95 with contextlib.suppress(ValueError):
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
96 idx = exe.index(self.__parameters["script"])
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
97 self.cxfreezeExecCombo.setCurrentIndex(idx)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
98
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 # initialize general tab
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
100 self.targetDirPicker.setText(self.__parameters["targetDirectory"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
101 self.targetNameEdit.setText(self.__parameters["targetName"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
102 self.basenameCombo.setEditText(self.__parameters["baseName"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
103 self.initscriptCombo.setEditText(self.__parameters["initScript"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
104 self.applicationIconPicker.setText(self.__parameters["applicationIcon"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
105 self.keeppathCheckBox.setChecked(self.__parameters["keepPath"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
106 self.compressCheckBox.setChecked(self.__parameters["compress"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
107 if self.__parameters["optimize"] == 0:
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 self.nooptimizeRadioButton.setChecked(True)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
109 elif self.__parameters["optimize"] == 1:
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self.optimizeRadioButton.setChecked(True)
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 else:
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.optimizeDocRadioButton.setChecked(True)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
113
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 # initialize advanced tab
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
115 self.defaultPathEdit.setText(os.pathsep.join(self.__parameters["defaultPath"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
116 self.includePathEdit.setText(os.pathsep.join(self.__parameters["includePath"]))
64
c878aac7d3f5 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
117 self.replacePathsEdit.setText(
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
118 os.pathsep.join(self.__parameters["replacePaths"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
119 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
120 self.includeModulesEdit.setText(",".join(self.__parameters["includeModules"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
121 self.excludeModulesEdit.setText(",".join(self.__parameters["excludeModules"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
122 self.extListFilePicker.setText(self.__parameters["extListFile"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
123
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
124 # initialize additional files tab
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
125 self.fileOrFolderList.addItems(self.__parameters["additionalFiles"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
126
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 def __initializeDefaults(self):
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 """
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
129 Private method to set the default values.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
130
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
131 These are needed later on to generate the command line parameters.
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 self.defaults = {
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 # general options
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
135 "targetDirectory": "",
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
136 "targetName": "",
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
137 "baseName": "Console",
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
138 "initScript": "Console",
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
139 "applicationIcon": "",
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
140 "script": "",
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
141 "keepPath": False,
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
142 "compress": False,
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
143 "optimize": 0, # 0, 1 or 2
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 # advanced options
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
145 "defaultPath": [],
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
146 "includePath": [],
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
147 "replacePaths": [],
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
148 "includeModules": [],
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
149 "excludeModules": [],
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
150 "extListFile": "",
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
151 # additional files tab
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
152 "additionalFiles": [],
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 }
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
154 # overwrite 'baseName' if OS is Windows
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
155 if sys.platform == "win32":
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
156 self.defaults["baseName"] = "Win32GUI"
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
157 # overwrite 'initScript' if version 3 interpreter
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
158 if self.__project.getProjectLanguage() == "Python3":
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
159 self.defaults["initScript"] = "Console3"
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
160
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 def generateParameters(self):
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 """
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
163 Public method that generates the command line parameters.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
164
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
165 It generates a list of strings to be used to set the QProcess arguments
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
166 for the cxfreeze call and a list containing the non default parameters.
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 The second list can be passed back upon object generation to overwrite
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 the default settings.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
169
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
170 @return a tuple of the command line parameters and non default
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
171 parameters
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
172 @rtype tuple of (list of str, dict)
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 parms = {}
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 args = []
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
176
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 # 1. the program name
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
178 args.append(self.cxfreezeExecCombo.currentText())
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
179
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 # 2. the commandline options
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 # 2.1 general options
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
182 if self.__parameters["targetDirectory"] != self.defaults["targetDirectory"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
183 parms["targetDirectory"] = self.__parameters["targetDirectory"]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
184 args.append("--target-dir={0}".format(self.__parameters["targetDirectory"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
185 if self.__parameters["targetName"] != self.defaults["targetName"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
186 parms["targetName"] = self.__parameters["targetName"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
187 args.append("--target-name={0}".format(self.__parameters["targetName"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
188 parms["baseName"] = self.__parameters["baseName"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
189 if self.__parameters["baseName"] != "":
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
190 args.append("--base-name={0}".format(self.__parameters["baseName"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
191 parms["initScript"] = self.__parameters["initScript"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
192 if self.__parameters["initScript"] != "":
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
193 args.append("--init-script={0}".format(self.__parameters["initScript"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
194 parms["applicationIcon"] = self.__parameters["applicationIcon"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
195 if self.__parameters["applicationIcon"] != self.defaults["applicationIcon"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
196 args.append("--icon={0}".format(self.__parameters["applicationIcon"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
197 parms["script"] = self.__parameters["script"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
198 if self.__parameters["keepPath"] != self.defaults["keepPath"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
199 parms["keepPath"] = self.__parameters["keepPath"]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
200 args.append("--no-copy-deps")
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
201 if self.__parameters["compress"] != self.defaults["compress"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
202 parms["compress"] = self.__parameters["compress"]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
203 args.append("--compress")
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
204 if self.__parameters["optimize"] != self.defaults["optimize"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
205 parms["optimize"] = self.__parameters["optimize"]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
206 if self.__parameters["optimize"] == 1:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
207 args.append("-O")
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
208 elif self.__parameters["optimize"] == 2:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
209 args.append("-OO")
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
210
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
211 # 2.2 advanced options
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
212 if self.__parameters["defaultPath"] != self.defaults["defaultPath"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
213 parms["defaultPath"] = self.__parameters["defaultPath"][:]
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
214 args.append(
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
215 "--default-path={0}".format(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
216 os.pathsep.join(self.__parameters["defaultPath"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
217 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
218 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
219 if self.__parameters["includePath"] != self.defaults["includePath"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
220 parms["includePath"] = self.__parameters["includePath"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
221 args.append(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
222 "--include-path={0}".format(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
223 os.pathsep.join(self.__parameters["includePath"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
224 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
225 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
226 if self.__parameters["replacePaths"] != self.defaults["replacePaths"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
227 parms["replacePaths"] = self.__parameters["replacePaths"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
228 args.append(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
229 "--replace-paths={0}".format(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
230 os.pathsep.join(self.__parameters["replacePaths"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
231 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
232 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
233 if self.__parameters["includeModules"] != self.defaults["includeModules"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
234 parms["includeModules"] = self.__parameters["includeModules"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
235 args.append(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
236 "--include-modules={0}".format(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
237 ",".join(self.__parameters["includeModules"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
238 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
239 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
240 if self.__parameters["excludeModules"] != self.defaults["excludeModules"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
241 parms["excludeModules"] = self.__parameters["excludeModules"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
242 args.append(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
243 "--exclude-modules={0}".format(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
244 ",".join(self.__parameters["excludeModules"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
245 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
246 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
247 if self.__parameters["extListFile"] != self.defaults["extListFile"]:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
248 parms["extListFile"] = self.__parameters["extListFile"]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
249 args.append("--ext-list-file={0}".format(self.__parameters["extListFile"]))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
250
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
251 # 2.3 additional files tab
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
252 if self.__parameters["additionalFiles"] != []:
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
253 parms["additionalFiles"] = self.__parameters["additionalFiles"][:]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
254
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 return (args, parms)
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
257 @pyqtSlot(str)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
258 def on_cxfreezeExecCombo_currentIndexChanged(self, text):
57
ddf3165e3d62 Some changes to the changes sent by Tobias.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 56
diff changeset
259 """
ddf3165e3d62 Some changes to the changes sent by Tobias.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 56
diff changeset
260 Private slot to handle the selection of a cxfreeze executable.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
261
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
262 @param text selected cxfreeze executable
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
263 @type str
57
ddf3165e3d62 Some changes to the changes sent by Tobias.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 56
diff changeset
264 """
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
265 # version specific setup
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
266 if isWindowsPlatform():
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
267 # remove "\Scripts\cx_Freeze.bat" from path
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
268 dirname = os.path.dirname(text)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
269 dirname = os.path.dirname(dirname)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
270
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
271 # first try the fast way
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
272 modpath = os.path.join(dirname, "Lib", "site-packages", "cx_Freeze")
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
273 if not os.path.exists(modpath):
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
274 # but if it failed search in the whole directory tree
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
275 modpath = None
112
031d64d92dc8 Adjusted the code style checking parameters and fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 109
diff changeset
276 for dirpath, dirnames, _ in os.walk(dirname):
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
277 if "cx_Freeze" in dirnames:
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
278 modpath = os.path.join(dirpath, "cx_Freeze")
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
279 break
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
280 else:
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
281 with open(text, "r") as f:
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
282 args = f.readline()
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
283 if not args:
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
284 return
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
285
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
286 args = args.strip("!#\n").split(" ")
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
287 program = args.pop(0)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
288
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
289 script = os.path.join(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
290 os.path.dirname(os.path.abspath(__file__)), "CxfreezeFindPath.py"
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
291 )
49
202045ed3992 Some little enhancements to Tobias' patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 47
diff changeset
292 if not os.path.exists(script):
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
293 return
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
294
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
295 args.append(script)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
296 process = QProcess()
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
297 process.start(program, args)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
298 process.waitForFinished(5000)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
299 # get a QByteArray of the output
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
300 cxPath = process.readAllStandardOutput()
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
301 modpath = str(cxPath, encoding="utf-8").strip("\n\r")
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
302 if not modpath.endswith("cx_Freeze"):
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
303 return
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
304
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
305 # populate combo boxes
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
306 if modpath:
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
307 d = QDir(os.path.join(modpath, "bases"))
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
308 basesList = d.entryList(QDir.Filter.Files)
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
309 if isWindowsPlatform():
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
310 # strip the final '.exe' from the bases
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
311 tmpBasesList = basesList[:]
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
312 basesList = []
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
313 for b in tmpBasesList:
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
314 base, ext = os.path.splitext(b)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
315 if ext == ".exe":
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
316 basesList.append(base)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
317 else:
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
318 basesList.append(b)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
319
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
320 basesList.insert(0, "")
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
321 currentText = self.basenameCombo.currentText()
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
322 self.basenameCombo.clear()
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
323 self.basenameCombo.addItems(basesList)
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
324 self.basenameCombo.setEditText(currentText)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
325
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
326 d = QDir(os.path.join(modpath, "initscripts"))
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
327 initList = d.entryList(["*.py"])
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
328 initList.insert(0, "")
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
329 currentText = self.initscriptCombo.currentText()
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
330 self.initscriptCombo.clear()
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
331 self.initscriptCombo.addItems([os.path.splitext(i)[0] for i in initList])
47
986f27beaad4 Py2 compatibility, freeze script based on project language, filedialog for icons, some PEP8.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 43
diff changeset
332 self.initscriptCombo.setEditText(currentText)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
333
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
334 @pyqtSlot(int)
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
335 def on_fileOrFolderList_currentRowChanged(self, row):
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
336 """
64
c878aac7d3f5 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
337 Private slot to handle the currentRowChanged signal of the
c878aac7d3f5 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
338 fileOrFolderList.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
339
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
340 @param row the current row
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
341 @type int
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
342 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
343 self.deleteSelectedButton.setEnabled(row != -1)
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
344 if row != -1:
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
345 self.fileOrFolderList.setCurrentRow(row)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
346
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
347 @pyqtSlot(QListWidgetItem)
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
348 def on_fileOrFolderList_itemDoubleClicked(self, itm):
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
349 """
64
c878aac7d3f5 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
350 Private slot to handle the itemDoubleClicked signal of the
c878aac7d3f5 Fixed code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 61
diff changeset
351 fileOrFolderList.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
352
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
353 @param itm the selected row
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
354 @type QListWidgetItem
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
355 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
356 self.fileOrFolderEdit.setText(itm.text())
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
357 row = self.fileOrFolderList.currentRow()
57
ddf3165e3d62 Some changes to the changes sent by Tobias.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 56
diff changeset
358 itm = self.fileOrFolderList.takeItem(row)
ddf3165e3d62 Some changes to the changes sent by Tobias.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 56
diff changeset
359 del itm
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
360
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
361 @pyqtSlot()
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
362 def on_addFileOrFolderButton_clicked(self):
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
363 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
364 Private slot to add the entered file or directory to the list view.
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
365 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
366 txt = self.fileOrFolderEdit.text()
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
367 if txt:
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
368 self.fileOrFolderList.addItem(txt)
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
369 self.fileOrFolderEdit.clear()
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
370 row = self.fileOrFolderList.currentRow()
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
371 self.on_fileOrFolderList_currentRowChanged(row)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
372
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
373 @pyqtSlot(str)
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
374 def on_fileOrFolderEdit_textChanged(self, txt):
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
375 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
376 Private slot to handle the textChanged signal of the directory edit.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
377
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
378 @param txt the text of the directory edit
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
379 @type str
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
380 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
381 self.addFileOrFolderButton.setEnabled(txt != "")
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
382
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
383 @pyqtSlot()
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
384 def on_deleteSelectedButton_clicked(self):
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
385 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
386 Private slot to delete the selected entry from the list view.
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
387 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
388 row = self.fileOrFolderList.currentRow()
57
ddf3165e3d62 Some changes to the changes sent by Tobias.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 56
diff changeset
389 itm = self.fileOrFolderList.takeItem(row)
ddf3165e3d62 Some changes to the changes sent by Tobias.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 56
diff changeset
390 del itm
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
391 row = self.fileOrFolderList.currentRow()
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
392 self.on_fileOrFolderList_currentRowChanged(row)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
393
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
394 @pyqtSlot()
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
395 def on_selectFileOrFolderButton_clicked(self):
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
396 """
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
397 Private slot to select files or folders.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
398
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
399 It displays a file and directory selection dialog to
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
400 select the files and directories which should be copied
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
401 into the distribution folder.
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
402 """
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
403 items = EricDirFileDialog.getOpenFileAndDirNames(
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
404 self, self.tr("Select files and folders"), self.__project.getProjectPath()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
405 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
406
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
407 for itm in items:
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
408 itm = self.__project.getRelativePath(itm)
142
9ceff8a10455 Adapted some import statements to eric 23.1 and newer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 140
diff changeset
409 self.fileOrFolderList.addItem(toNativeSeparators(itm))
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
410 row = self.fileOrFolderList.currentRow()
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
411 self.on_fileOrFolderList_currentRowChanged(row)
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
412
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 def accept(self):
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 """
102
78d1632d4b83 Fixed some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
415 Public method called by the Ok button.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
416
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 It saves the values in the parameters dictionary.
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 # get data of general tab
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
420 self.__parameters["targetDirectory"] = self.__project.getRelativePath(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
421 self.targetDirPicker.text()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
422 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
423 self.__parameters["targetName"] = self.targetNameEdit.text()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
424 self.__parameters["baseName"] = self.basenameCombo.currentText()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
425 self.__parameters["initScript"] = self.initscriptCombo.currentText()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
426 self.__parameters["applicationIcon"] = self.__project.getRelativePath(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
427 self.applicationIconPicker.text()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
428 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
429 self.__parameters["script"] = self.cxfreezeExecCombo.currentText()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
430 self.__parameters["keepPath"] = self.keeppathCheckBox.isChecked()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
431 self.__parameters["compress"] = self.compressCheckBox.isChecked()
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 if self.nooptimizeRadioButton.isChecked():
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
433 self.__parameters["optimize"] = 0
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 elif self.optimizeRadioButton.isChecked():
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
435 self.__parameters["optimize"] = 1
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 else:
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
437 self.__parameters["optimize"] = 2
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
438
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 # get data of advanced tab
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
440 self.__parameters["defaultPath"] = self.__splitIt(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
441 self.defaultPathEdit.text(), os.pathsep
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
442 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
443 self.__parameters["includePath"] = self.__splitIt(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
444 self.includePathEdit.text(), os.pathsep
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
445 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
446 self.__parameters["replacePaths"] = self.__splitIt(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
447 self.replacePathsEdit.text(), os.pathsep
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
448 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
449 self.__parameters["includeModules"] = self.__splitIt(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
450 self.includeModulesEdit.text(), ","
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
451 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
452 self.__parameters["excludeModules"] = self.__splitIt(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
453 self.excludeModulesEdit.text(), ","
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
454 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
455 self.__parameters["extListFile"] = self.__project.getRelativePath(
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
456 self.extListFilePicker.text()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
457 )
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
458
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
459 # get data of the additional files tab
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
460 additionalFiles = [
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
461 self.fileOrFolderList.item(x).text()
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
462 for x in range(self.fileOrFolderList.count())
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
463 ]
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
464 self.__parameters["additionalFiles"] = additionalFiles
56
c8a47a8536b0 filedialog to add distribution dependent files, e.g. *.ui, readme, which are copied after the freeze process
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 49
diff changeset
465
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 # call the accept slot of the base class
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467 QDialog.accept(self)
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
468
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 def __splitIt(self, s, sep):
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471 Private method to split a string observing various conditions.
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
472
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
473 @param s string to split
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
474 @type str
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
475 @param sep separator string
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
476 @type str
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 @return list of split values
134
7880b294d1d1 Ported the plug-in to PyQt6 for eric7.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 131
diff changeset
478 @rtype list of str
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 """
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 if s == "" or s is None:
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
481 return []
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
482
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
483 if s.endswith(sep):
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 s = s[:-1]
139
4df5e67b084b Reformatted source code with 'Black'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 136
diff changeset
485
1
0b6f3f5600da Ported the cx_freeze plug-in to eric5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
486 return s.split(sep)

eric ide

mercurial