src/eric7/Preferences/ProgramsDialog.py

branch
eric7
changeset 9624
b47dfa7a137d
parent 9559
34fc53e6159d
child 9653
e67609152c5e
equal deleted inserted replaced
9623:9c1f429cb56b 9624:b47dfa7a137d
17 QDialogButtonBox, 17 QDialogButtonBox,
18 QHeaderView, 18 QHeaderView,
19 QTreeWidgetItem, 19 QTreeWidgetItem,
20 ) 20 )
21 21
22 from eric7 import Globals, Preferences, Utilities 22 from eric7 import Preferences
23 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor 23 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor
24 from eric7.EricWidgets.EricApplication import ericApp 24 from eric7.EricWidgets.EricApplication import ericApp
25 from eric7.SystemUtilities import (
26 FileSystemUtilities,
27 OSUtilities,
28 PythonUtilities,
29 QtUtilities,
30 )
25 31
26 from .Ui_ProgramsDialog import Ui_ProgramsDialog 32 from .Ui_ProgramsDialog import Ui_ProgramsDialog
27 33
28 34
29 class ProgramsDialog(QDialog, Ui_ProgramsDialog): 35 class ProgramsDialog(QDialog, Ui_ProgramsDialog):
90 96
91 with EricOverrideCursor(): 97 with EricOverrideCursor():
92 # 1. do the Qt programs 98 # 1. do the Qt programs
93 # 1a. Translation Converter 99 # 1a. Translation Converter
94 exe = ( 100 exe = (
95 Utilities.isWindowsPlatform() 101 OSUtilities.isWindowsPlatform()
96 and "{0}.exe".format(Utilities.generateQtToolName("lrelease")) 102 and "{0}.exe".format(QtUtilities.generateQtToolName("lrelease"))
97 or Utilities.generateQtToolName("lrelease") 103 or QtUtilities.generateQtToolName("lrelease")
98 ) 104 )
99 exe = os.path.join(Utilities.getQtBinariesPath(), exe) 105 exe = os.path.join(QtUtilities.getQtBinariesPath(), exe)
100 version = self.__createProgramEntry( 106 version = self.__createProgramEntry(
101 self.tr("Translation Converter (Qt)"), exe, "-version", "lrelease", -1 107 self.tr("Translation Converter (Qt)"), exe, "-version", "lrelease", -1
102 ) 108 )
103 # 1b. Qt Designer 109 # 1b. Qt Designer
104 if Utilities.isWindowsPlatform(): 110 if OSUtilities.isWindowsPlatform():
105 exe = os.path.join( 111 exe = os.path.join(
106 Utilities.getQtBinariesPath(), 112 QtUtilities.getQtBinariesPath(),
107 "{0}.exe".format(Utilities.generateQtToolName("designer")), 113 "{0}.exe".format(QtUtilities.generateQtToolName("designer")),
108 ) 114 )
109 elif Utilities.isMacPlatform(): 115 elif OSUtilities.isMacPlatform():
110 exe = Utilities.getQtMacBundle("designer") 116 exe = QtUtilities.getQtMacBundle("designer")
111 else: 117 else:
112 exe = os.path.join( 118 exe = os.path.join(
113 Utilities.getQtBinariesPath(), 119 QtUtilities.getQtBinariesPath(),
114 Utilities.generateQtToolName("designer"), 120 QtUtilities.generateQtToolName("designer"),
115 ) 121 )
116 self.__createProgramEntry(self.tr("Qt Designer"), exe, version=version) 122 self.__createProgramEntry(self.tr("Qt Designer"), exe, version=version)
117 # 1c. Qt Linguist 123 # 1c. Qt Linguist
118 if Utilities.isWindowsPlatform(): 124 if OSUtilities.isWindowsPlatform():
119 exe = os.path.join( 125 exe = os.path.join(
120 Utilities.getQtBinariesPath(), 126 QtUtilities.getQtBinariesPath(),
121 "{0}.exe".format(Utilities.generateQtToolName("linguist")), 127 "{0}.exe".format(QtUtilities.generateQtToolName("linguist")),
122 ) 128 )
123 elif Utilities.isMacPlatform(): 129 elif OSUtilities.isMacPlatform():
124 exe = Utilities.getQtMacBundle("linguist") 130 exe = QtUtilities.getQtMacBundle("linguist")
125 else: 131 else:
126 exe = os.path.join( 132 exe = os.path.join(
127 Utilities.getQtBinariesPath(), 133 QtUtilities.getQtBinariesPath(),
128 Utilities.generateQtToolName("linguist"), 134 QtUtilities.generateQtToolName("linguist"),
129 ) 135 )
130 self.__createProgramEntry(self.tr("Qt Linguist"), exe, version=version) 136 self.__createProgramEntry(self.tr("Qt Linguist"), exe, version=version)
131 # 1d. Qt Assistant 137 # 1d. Qt Assistant
132 if Utilities.isWindowsPlatform(): 138 if OSUtilities.isWindowsPlatform():
133 exe = os.path.join( 139 exe = os.path.join(
134 Utilities.getQtBinariesPath(), 140 QtUtilities.getQtBinariesPath(),
135 "{0}.exe".format(Utilities.generateQtToolName("assistant")), 141 "{0}.exe".format(QtUtilities.generateQtToolName("assistant")),
136 ) 142 )
137 elif Utilities.isMacPlatform(): 143 elif OSUtilities.isMacPlatform():
138 exe = Utilities.getQtMacBundle("assistant") 144 exe = QtUtilities.getQtMacBundle("assistant")
139 else: 145 else:
140 exe = os.path.join( 146 exe = os.path.join(
141 Utilities.getQtBinariesPath(), 147 QtUtilities.getQtBinariesPath(),
142 Utilities.generateQtToolName("assistant"), 148 QtUtilities.generateQtToolName("assistant"),
143 ) 149 )
144 self.__createProgramEntry(self.tr("Qt Assistant"), exe, version=version) 150 self.__createProgramEntry(self.tr("Qt Assistant"), exe, version=version)
145 151
146 # 2. do the PyQt programs 152 # 2. do the PyQt programs
147 # 2.1 do the PyQt5 programs 153 # 2.1 do the PyQt5 programs
148 # 2.1a. Translation Extractor PyQt5 154 # 2.1a. Translation Extractor PyQt5
149 self.__createProgramEntry( 155 self.__createProgramEntry(
150 self.tr("Translation Extractor (Python, PyQt5)"), 156 self.tr("Translation Extractor (Python, PyQt5)"),
151 Utilities.generatePyQtToolPath("pylupdate5"), 157 QtUtilities.generatePyQtToolPath("pylupdate5"),
152 "-version", 158 "-version",
153 "pylupdate", 159 "pylupdate",
154 -1, 160 -1,
155 ) 161 )
156 # 2.1b. Forms Compiler PyQt5 162 # 2.1b. Forms Compiler PyQt5
157 self.__createProgramEntry( 163 self.__createProgramEntry(
158 self.tr("Forms Compiler (Python, PyQt5)"), 164 self.tr("Forms Compiler (Python, PyQt5)"),
159 Utilities.generatePyQtToolPath("pyuic5", ["py3uic5"]), 165 QtUtilities.generatePyQtToolPath("pyuic5", ["py3uic5"]),
160 "--version", 166 "--version",
161 "Python User", 167 "Python User",
162 4, 168 4,
163 ) 169 )
164 # 2.1c. Resource Compiler PyQt5 170 # 2.1c. Resource Compiler PyQt5
165 self.__createProgramEntry( 171 self.__createProgramEntry(
166 self.tr("Resource Compiler (Python, PyQt5)"), 172 self.tr("Resource Compiler (Python, PyQt5)"),
167 Utilities.generatePyQtToolPath("pyrcc5"), 173 QtUtilities.generatePyQtToolPath("pyrcc5"),
168 "-version", 174 "-version",
169 "", 175 "",
170 -1, 176 -1,
171 versionRe="Resource Compiler|pyrcc5", 177 versionRe="Resource Compiler|pyrcc5",
172 ) 178 )
173 179
174 # 2.2 do the PyQt6 programs 180 # 2.2 do the PyQt6 programs
175 # 2.2a. Translation Extractor PyQt6 181 # 2.2a. Translation Extractor PyQt6
176 self.__createProgramEntry( 182 self.__createProgramEntry(
177 self.tr("Translation Extractor (Python, PyQt6)"), 183 self.tr("Translation Extractor (Python, PyQt6)"),
178 Utilities.generatePyQtToolPath("pylupdate6"), 184 QtUtilities.generatePyQtToolPath("pylupdate6"),
179 "--version", 185 "--version",
180 versionPosition=0, 186 versionPosition=0,
181 ) 187 )
182 # 2.2b. Forms Compiler PyQt6 188 # 2.2b. Forms Compiler PyQt6
183 self.__createProgramEntry( 189 self.__createProgramEntry(
184 self.tr("Forms Compiler (Python, PyQt6)"), 190 self.tr("Forms Compiler (Python, PyQt6)"),
185 Utilities.generatePyQtToolPath("pyuic6"), 191 QtUtilities.generatePyQtToolPath("pyuic6"),
186 "--version", 192 "--version",
187 versionPosition=0, 193 versionPosition=0,
188 ) 194 )
189 195
190 # 3. do the PySide programs 196 # 3. do the PySide programs
191 # 3.1 do the PySide2 programs 197 # 3.1 do the PySide2 programs
192 # 3.1a. Translation Extractor PySide2 198 # 3.1a. Translation Extractor PySide2
193 self.__createProgramEntry( 199 self.__createProgramEntry(
194 self.tr("Translation Extractor (Python, PySide2)"), 200 self.tr("Translation Extractor (Python, PySide2)"),
195 Utilities.generatePySideToolPath("pyside2-lupdate", variant=2), 201 QtUtilities.generatePySideToolPath("pyside2-lupdate", variant=2),
196 "-version", 202 "-version",
197 "", 203 "",
198 -1, 204 -1,
199 versionRe="lupdate", 205 versionRe="lupdate",
200 ) 206 )
201 # 3.1b. Forms Compiler PySide2 207 # 3.1b. Forms Compiler PySide2
202 self.__createProgramEntry( 208 self.__createProgramEntry(
203 self.tr("Forms Compiler (Python, PySide2)"), 209 self.tr("Forms Compiler (Python, PySide2)"),
204 Utilities.generatePySideToolPath("pyside2-uic", variant=2), 210 QtUtilities.generatePySideToolPath("pyside2-uic", variant=2),
205 "--version", 211 "--version",
206 "", 212 "",
207 -1, 213 -1,
208 versionRe="uic", 214 versionRe="uic",
209 ) 215 )
210 # 3.1c Resource Compiler PySide2 216 # 3.1c Resource Compiler PySide2
211 self.__createProgramEntry( 217 self.__createProgramEntry(
212 self.tr("Resource Compiler (Python, PySide2)"), 218 self.tr("Resource Compiler (Python, PySide2)"),
213 Utilities.generatePySideToolPath("pyside2-rcc", variant=2), 219 QtUtilities.generatePySideToolPath("pyside2-rcc", variant=2),
214 "-version", 220 "-version",
215 "", 221 "",
216 -1, 222 -1,
217 versionRe="rcc", 223 versionRe="rcc",
218 ) 224 )
219 # 3.2 do the PySide5 programs 225 # 3.2 do the PySide5 programs
220 # 3.2a. Translation Extractor PySide6 226 # 3.2a. Translation Extractor PySide6
221 self.__createProgramEntry( 227 self.__createProgramEntry(
222 self.tr("Translation Extractor (Python, PySide6)"), 228 self.tr("Translation Extractor (Python, PySide6)"),
223 Utilities.generatePySideToolPath("pyside6-lupdate", variant=6), 229 QtUtilities.generatePySideToolPath("pyside6-lupdate", variant=6),
224 "-version", 230 "-version",
225 "", 231 "",
226 -1, 232 -1,
227 versionRe="lupdate", 233 versionRe="lupdate",
228 ) 234 )
229 # 3.2b. Forms Compiler PySide6 235 # 3.2b. Forms Compiler PySide6
230 self.__createProgramEntry( 236 self.__createProgramEntry(
231 self.tr("Forms Compiler (Python, PySide6)"), 237 self.tr("Forms Compiler (Python, PySide6)"),
232 Utilities.generatePySideToolPath("pyside6-uic", variant=6), 238 QtUtilities.generatePySideToolPath("pyside6-uic", variant=6),
233 "--version", 239 "--version",
234 "", 240 "",
235 -1, 241 -1,
236 versionRe="uic", 242 versionRe="uic",
237 ) 243 )
238 # 3.2c Resource Compiler PySide6 244 # 3.2c Resource Compiler PySide6
239 self.__createProgramEntry( 245 self.__createProgramEntry(
240 self.tr("Resource Compiler (Python, PySide6)"), 246 self.tr("Resource Compiler (Python, PySide6)"),
241 Utilities.generatePySideToolPath("pyside6-rcc", variant=6), 247 QtUtilities.generatePySideToolPath("pyside6-rcc", variant=6),
242 "--version", 248 "--version",
243 "", 249 "",
244 -1, 250 -1,
245 versionRe="rcc", 251 versionRe="rcc",
246 ) 252 )
247 253
248 # 4. do the Conda program(s) 254 # 4. do the Conda program(s)
249 exe = Preferences.getConda("CondaExecutable") 255 exe = Preferences.getConda("CondaExecutable")
250 if not exe: 256 if not exe:
251 exe = "conda" 257 exe = "conda"
252 if Utilities.isWindowsPlatform(): 258 if OSUtilities.isWindowsPlatform():
253 exe += ".exe" 259 exe += ".exe"
254 self.__createProgramEntry( 260 self.__createProgramEntry(
255 self.tr("conda Manager"), exe, "--version", "conda", -1 261 self.tr("conda Manager"), exe, "--version", "conda", -1
256 ) 262 )
257 263
313 "MicroPython", 319 "MicroPython",
314 1, 320 1,
315 ) 321 )
316 self.__createProgramEntry( 322 self.__createProgramEntry(
317 self.tr("MicroPython - ESP Tool"), 323 self.tr("MicroPython - ESP Tool"),
318 Globals.getPythonExecutable(), 324 PythonUtilities.getPythonExecutable(),
319 "version", 325 "version",
320 "esptool", 326 "esptool",
321 -1, 327 -1,
322 exeModule=["-m", "esptool"], 328 exeModule=["-m", "esptool"],
323 ) 329 )
421 rememberedExe = exe 427 rememberedExe = exe
422 if not exe: 428 if not exe:
423 itm.setText(1, self.tr("(not configured)")) 429 itm.setText(1, self.tr("(not configured)"))
424 else: 430 else:
425 if os.path.isabs(exe): 431 if os.path.isabs(exe):
426 if not Utilities.isExecutable(exe): 432 if not FileSystemUtilities.isExecutable(exe):
427 exe = "" 433 exe = ""
428 else: 434 else:
429 exe = Utilities.getExecutablePath(exe) 435 exe = FileSystemUtilities.getExecutablePath(exe)
430 if exe: 436 if exe:
431 available = True 437 available = True
432 if versionCommand and versionPosition is not None: 438 if versionCommand and versionPosition is not None:
433 proc = QProcess() 439 proc = QProcess()
434 proc.setProcessChannelMode( 440 proc.setProcessChannelMode(

eric ide

mercurial