src/eric7/Project/ProjectTranslationsBrowser.py

branch
server
changeset 10635
dcec2e0c0036
parent 10439
21c28b0f9e41
child 10704
27d21e5163b8
equal deleted inserted replaced
10633:dda7e43934dc 10635:dcec2e0c0036
21 from eric7 import Preferences 21 from eric7 import Preferences
22 from eric7.EricGui import EricPixmapCache 22 from eric7.EricGui import EricPixmapCache
23 from eric7.EricGui.EricOverrideCursor import EricOverridenCursor 23 from eric7.EricGui.EricOverrideCursor import EricOverridenCursor
24 from eric7.EricWidgets import EricMessageBox 24 from eric7.EricWidgets import EricMessageBox
25 from eric7.EricWidgets.EricApplication import ericApp 25 from eric7.EricWidgets.EricApplication import ericApp
26 from eric7.SystemUtilities import OSUtilities, QtUtilities 26 from eric7.SystemUtilities import FileSystemUtilities, OSUtilities, QtUtilities
27 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog 27 from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
28 from eric7.UI.NotificationWidget import NotificationTypes 28 from eric7.UI.NotificationWidget import NotificationTypes
29 29
30 from .FileCategoryRepositoryItem import FileCategoryRepositoryItem 30 from .FileCategoryRepositoryItem import FileCategoryRepositoryItem
31 from .ProjectBaseBrowser import ProjectBaseBrowser 31 from .ProjectBaseBrowser import ProjectBaseBrowser
175 "PySide2", 175 "PySide2",
176 "PySide2C", 176 "PySide2C",
177 "PySide6", 177 "PySide6",
178 "PySide6C", 178 "PySide6C",
179 ]: 179 ]:
180 act = self.menu.addAction( 180 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()):
181 self.tr("Generate translation"), self.__generateSelected
182 )
183 self.tsMenuActions.append(act)
184 self.tsprocMenuActions.append(act)
185 act = self.menu.addAction(
186 self.tr("Generate translation (with obsolete)"),
187 self.__generateObsoleteSelected,
188 )
189 self.tsMenuActions.append(act)
190 self.tsprocMenuActions.append(act)
191 act = self.menu.addAction(
192 self.tr("Generate all translations"), self.__generateAll
193 )
194 self.tsprocMenuActions.append(act)
195 act = self.menu.addAction(
196 self.tr("Generate all translations (with obsolete)"),
197 self.__generateObsoleteAll,
198 )
199 self.tsprocMenuActions.append(act)
200 self.menu.addSeparator()
201 self.__qtLinguistAct = self.menu.addAction(
202 self.tr("Open in Qt-Linguist"), self._openItem
203 )
204 self.tsMenuActions.append(self.__qtLinguistAct)
205 act = self.menu.addAction(
206 self.tr("Open in Editor"), self.__openFileInEditor
207 )
208 self.tsMenuActions.append(act)
209 self.menu.addSeparator()
210 act = self.menu.addAction(
211 self.tr("Release translation"), self.__releaseSelected
212 )
213 self.tsMenuActions.append(act)
214 self.qmprocMenuActions.append(act)
215 act = self.menu.addAction(
216 self.tr("Release all translations"), self.__releaseAll
217 )
218 self.qmprocMenuActions.append(act)
219 self.menu.addSeparator()
220 act = self.menu.addAction(self.tr("Preview translation"), self.__TRPreview)
221 self.qmMenuActions.append(act)
222 act = self.menu.addAction(
223 self.tr("Preview all translations"), self.__TRPreviewAll
224 )
225 self.menu.addSeparator()
226 else:
227 if self.hooks["extractMessages"] is not None:
228 act = self.menu.addAction( 181 act = self.menu.addAction(
229 self.hooksMenuEntries.get( 182 self.tr("Open in Editor"), self.__openFileInEditor
230 "extractMessages", self.tr("Extract messages") 183 )
231 ), 184 self.tsMenuActions.append(act)
232 self.__extractMessages,
233 )
234 self.menuActions.append(act)
235 self.menu.addSeparator() 185 self.menu.addSeparator()
236 if self.hooks["generateSelected"] is not None: 186 else:
237 act = self.menu.addAction( 187 act = self.menu.addAction(
238 self.hooksMenuEntries.get( 188 self.tr("Generate translation"), self.__generateSelected
239 "generateSelected", self.tr("Generate translation")
240 ),
241 self.__generateSelected,
242 ) 189 )
243 self.tsMenuActions.append(act) 190 self.tsMenuActions.append(act)
244 self.tsprocMenuActions.append(act) 191 self.tsprocMenuActions.append(act)
245 if self.hooks["generateSelectedWithObsolete"] is not None:
246 act = self.menu.addAction( 192 act = self.menu.addAction(
247 self.hooksMenuEntries.get( 193 self.tr("Generate translation (with obsolete)"),
248 "generateSelectedWithObsolete",
249 self.tr("Generate translation (with obsolete)"),
250 ),
251 self.__generateObsoleteSelected, 194 self.__generateObsoleteSelected,
252 ) 195 )
253 self.tsMenuActions.append(act) 196 self.tsMenuActions.append(act)
254 self.tsprocMenuActions.append(act) 197 self.tsprocMenuActions.append(act)
255 if self.hooks["generateAll"] is not None:
256 act = self.menu.addAction( 198 act = self.menu.addAction(
257 self.hooksMenuEntries.get( 199 self.tr("Generate all translations"), self.__generateAll
258 "generateAll", self.tr("Generate all translations")
259 ),
260 self.__generateAll,
261 ) 200 )
262 self.tsprocMenuActions.append(act) 201 self.tsprocMenuActions.append(act)
263 if self.hooks["generateAllWithObsolete"] is not None:
264 act = self.menu.addAction( 202 act = self.menu.addAction(
265 self.hooksMenuEntries.get( 203 self.tr("Generate all translations (with obsolete)"),
266 "generateAllWithObsolete",
267 self.tr("Generate all translations (with obsolete)"),
268 ),
269 self.__generateObsoleteAll, 204 self.__generateObsoleteAll,
270 ) 205 )
271 self.tsprocMenuActions.append(act) 206 self.tsprocMenuActions.append(act)
272 self.menu.addSeparator() 207 self.menu.addSeparator()
273 if self.hooks["open"] is not None: 208 self.__qtLinguistAct = self.menu.addAction(
209 self.tr("Open in Qt-Linguist"), self._openItem
210 )
211 self.tsMenuActions.append(self.__qtLinguistAct)
274 act = self.menu.addAction( 212 act = self.menu.addAction(
275 self.hooksMenuEntries.get("open", self.tr("Open")), self._openItem 213 self.tr("Open in Editor"), self.__openFileInEditor
276 ) 214 )
277 self.tsMenuActions.append(act) 215 self.tsMenuActions.append(act)
278 act = self.menu.addAction( 216 self.menu.addSeparator()
279 self.tr("Open in Editor"), self.__openFileInEditor
280 )
281 self.tsMenuActions.append(act)
282 self.menu.addSeparator()
283 if self.hooks["releaseSelected"] is not None:
284 act = self.menu.addAction( 217 act = self.menu.addAction(
285 self.hooksMenuEntries.get( 218 self.tr("Release translation"), self.__releaseSelected
286 "releaseSelected", self.tr("Release translation")
287 ),
288 self.__releaseSelected,
289 ) 219 )
290 self.tsMenuActions.append(act) 220 self.tsMenuActions.append(act)
291 self.qmprocMenuActions.append(act) 221 self.qmprocMenuActions.append(act)
292 if self.hooks["releaseAll"] is not None:
293 act = self.menu.addAction( 222 act = self.menu.addAction(
294 self.hooksMenuEntries.get( 223 self.tr("Release all translations"), self.__releaseAll
295 "releaseAll", self.tr("Release all translations")
296 ),
297 self.__releaseAll,
298 ) 224 )
299 self.qmprocMenuActions.append(act) 225 self.qmprocMenuActions.append(act)
300 self.menu.addSeparator() 226 self.menu.addSeparator()
227 act = self.menu.addAction(
228 self.tr("Preview translation"), self.__TRPreview
229 )
230 self.qmMenuActions.append(act)
231 act = self.menu.addAction(
232 self.tr("Preview all translations"), self.__TRPreviewAll
233 )
234 self.menu.addSeparator()
235 else:
236 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()):
237 act = self.menu.addAction(
238 self.tr("Open in Editor"), self.__openFileInEditor
239 )
240 self.tsMenuActions.append(act)
241 self.menu.addSeparator()
242 else:
243 if self.hooks["extractMessages"] is not None:
244 act = self.menu.addAction(
245 self.hooksMenuEntries.get(
246 "extractMessages", self.tr("Extract messages")
247 ),
248 self.__extractMessages,
249 )
250 self.menuActions.append(act)
251 self.menu.addSeparator()
252 if self.hooks["generateSelected"] is not None:
253 act = self.menu.addAction(
254 self.hooksMenuEntries.get(
255 "generateSelected", self.tr("Generate translation")
256 ),
257 self.__generateSelected,
258 )
259 self.tsMenuActions.append(act)
260 self.tsprocMenuActions.append(act)
261 if self.hooks["generateSelectedWithObsolete"] is not None:
262 act = self.menu.addAction(
263 self.hooksMenuEntries.get(
264 "generateSelectedWithObsolete",
265 self.tr("Generate translation (with obsolete)"),
266 ),
267 self.__generateObsoleteSelected,
268 )
269 self.tsMenuActions.append(act)
270 self.tsprocMenuActions.append(act)
271 if self.hooks["generateAll"] is not None:
272 act = self.menu.addAction(
273 self.hooksMenuEntries.get(
274 "generateAll", self.tr("Generate all translations")
275 ),
276 self.__generateAll,
277 )
278 self.tsprocMenuActions.append(act)
279 if self.hooks["generateAllWithObsolete"] is not None:
280 act = self.menu.addAction(
281 self.hooksMenuEntries.get(
282 "generateAllWithObsolete",
283 self.tr("Generate all translations (with obsolete)"),
284 ),
285 self.__generateObsoleteAll,
286 )
287 self.tsprocMenuActions.append(act)
288 self.menu.addSeparator()
289 if self.hooks["open"] is not None:
290 act = self.menu.addAction(
291 self.hooksMenuEntries.get("open", self.tr("Open")),
292 self._openItem,
293 )
294 self.tsMenuActions.append(act)
295 act = self.menu.addAction(
296 self.tr("Open in Editor"), self.__openFileInEditor
297 )
298 self.tsMenuActions.append(act)
299 self.menu.addSeparator()
300 if self.hooks["releaseSelected"] is not None:
301 act = self.menu.addAction(
302 self.hooksMenuEntries.get(
303 "releaseSelected", self.tr("Release translation")
304 ),
305 self.__releaseSelected,
306 )
307 self.tsMenuActions.append(act)
308 self.qmprocMenuActions.append(act)
309 if self.hooks["releaseAll"] is not None:
310 act = self.menu.addAction(
311 self.hooksMenuEntries.get(
312 "releaseAll", self.tr("Release all translations")
313 ),
314 self.__releaseAll,
315 )
316 self.qmprocMenuActions.append(act)
317 self.menu.addSeparator()
301 act = self.menu.addAction( 318 act = self.menu.addAction(
302 self.tr("Remove from project"), self.__removeLanguageFile 319 self.tr("Remove from project"), self.__removeLanguageFile
303 ) 320 )
304 self.menuActions.append(act) 321 self.menuActions.append(act)
305 act = self.menu.addAction(self.tr("Delete"), self.__deleteLanguageFile) 322 act = self.menu.addAction(self.tr("Delete"), self.__deleteLanguageFile)
310 ) 327 )
311 self.menu.addAction( 328 self.menu.addAction(
312 self.tr("Add translation files..."), self.__addTranslationFiles 329 self.tr("Add translation files..."), self.__addTranslationFiles
313 ) 330 )
314 self.menu.addSeparator() 331 self.menu.addSeparator()
315 self.menu.addAction(self.tr("Show in File Manager"), self._showInFileManager) 332 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
333 self.menu.addAction(
334 self.tr("Show in File Manager"), self._showInFileManager
335 )
316 self.menu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) 336 self.menu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard)
317 self.menu.addSeparator() 337 self.menu.addSeparator()
318 self.menu.addAction(self.tr("Configure..."), self._configure) 338 self.menu.addAction(self.tr("Configure..."), self._configure)
319 339
320 self.backMenu = QMenu(self) 340 self.backMenu = QMenu(self)
321 if self.project.getProjectType() in [ 341 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
322 "PyQt5", 342 if self.project.getProjectType() in [
323 "PyQt5C", 343 "PyQt5",
324 "PyQt6", 344 "PyQt5C",
325 "PyQt6C", 345 "PyQt6",
326 "E7Plugin", 346 "PyQt6C",
327 "PySide2", 347 "E7Plugin",
328 "PySide2C", 348 "PySide2",
329 "PySide6", 349 "PySide2C",
330 "PySide6C", 350 "PySide6",
331 ]: 351 "PySide6C",
332 act = self.backMenu.addAction( 352 ]:
333 self.tr("Generate all translations"), self.__generateAll 353 act = self.backMenu.addAction(
334 ) 354 self.tr("Generate all translations"), self.__generateAll
335 self.tsprocBackMenuActions.append(act) 355 )
336 act = self.backMenu.addAction( 356 self.tsprocBackMenuActions.append(act)
337 self.tr("Generate all translations (with obsolete)"), 357 act = self.backMenu.addAction(
338 self.__generateObsoleteAll, 358 self.tr("Generate all translations (with obsolete)"),
339 ) 359 self.__generateObsoleteAll,
340 self.tsprocBackMenuActions.append(act) 360 )
341 act = self.backMenu.addAction( 361 self.tsprocBackMenuActions.append(act)
342 self.tr("Release all translations"), self.__releaseAll 362 act = self.backMenu.addAction(
343 ) 363 self.tr("Release all translations"), self.__releaseAll
344 self.qmprocBackMenuActions.append(act) 364 )
365 self.qmprocBackMenuActions.append(act)
366 self.backMenu.addSeparator()
367 act = self.backMenu.addAction(
368 self.tr("Preview all translations"), self.__TRPreview
369 )
370 else:
371 if self.hooks["extractMessages"] is not None:
372 act = self.backMenu.addAction(
373 self.hooksMenuEntries.get(
374 "extractMessages", self.tr("Extract messages")
375 ),
376 self.__extractMessages,
377 )
378 self.backMenu.addSeparator()
379 if self.hooks["generateAll"] is not None:
380 act = self.backMenu.addAction(
381 self.hooksMenuEntries.get(
382 "generateAll", self.tr("Generate all translations")
383 ),
384 self.__generateAll,
385 )
386 self.tsprocBackMenuActions.append(act)
387 if self.hooks["generateAllWithObsolete"] is not None:
388 act = self.backMenu.addAction(
389 self.hooksMenuEntries.get(
390 "generateAllWithObsolete",
391 self.tr("Generate all translations (with obsolete)"),
392 ),
393 self.__generateObsoleteAll,
394 )
395 self.tsprocBackMenuActions.append(act)
396 if self.hooks["releaseAll"] is not None:
397 act = self.backMenu.addAction(
398 self.hooksMenuEntries.get(
399 "releaseAll", self.tr("Release all translations")
400 ),
401 self.__releaseAll,
402 )
403 self.qmprocBackMenuActions.append(act)
345 self.backMenu.addSeparator() 404 self.backMenu.addSeparator()
346 act = self.backMenu.addAction(
347 self.tr("Preview all translations"), self.__TRPreview
348 )
349 else:
350 if self.hooks["extractMessages"] is not None:
351 act = self.backMenu.addAction(
352 self.hooksMenuEntries.get(
353 "extractMessages", self.tr("Extract messages")
354 ),
355 self.__extractMessages,
356 )
357 self.backMenu.addSeparator()
358 if self.hooks["generateAll"] is not None:
359 act = self.backMenu.addAction(
360 self.hooksMenuEntries.get(
361 "generateAll", self.tr("Generate all translations")
362 ),
363 self.__generateAll,
364 )
365 self.tsprocBackMenuActions.append(act)
366 if self.hooks["generateAllWithObsolete"] is not None:
367 act = self.backMenu.addAction(
368 self.hooksMenuEntries.get(
369 "generateAllWithObsolete",
370 self.tr("Generate all translations (with obsolete)"),
371 ),
372 self.__generateObsoleteAll,
373 )
374 self.tsprocBackMenuActions.append(act)
375 if self.hooks["releaseAll"] is not None:
376 act = self.backMenu.addAction(
377 self.hooksMenuEntries.get(
378 "releaseAll", self.tr("Release all translations")
379 ),
380 self.__releaseAll,
381 )
382 self.qmprocBackMenuActions.append(act)
383 self.backMenu.addSeparator()
384 self.__addTranslationBackAct = self.backMenu.addAction( 405 self.__addTranslationBackAct = self.backMenu.addAction(
385 self.tr("New translation..."), self.project.addLanguage 406 self.tr("New translation..."), self.project.addLanguage
386 ) 407 )
387 self.backMenu.addAction( 408 self.backMenu.addAction(
388 self.tr("Add translation files..."), self.__addTranslationFiles 409 self.tr("Add translation files..."), self.__addTranslationFiles
406 "PySide2", 427 "PySide2",
407 "PySide2C", 428 "PySide2C",
408 "PySide6", 429 "PySide6",
409 "PySide6C", 430 "PySide6C",
410 ]: 431 ]:
411 act = self.multiMenu.addAction( 432 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()):
412 self.tr("Generate translations"), self.__generateSelected
413 )
414 self.tsMultiMenuActions.append(act)
415 self.tsprocMultiMenuActions.append(act)
416 act = self.multiMenu.addAction(
417 self.tr("Generate translations (with obsolete)"),
418 self.__generateObsoleteSelected,
419 )
420 self.tsMultiMenuActions.append(act)
421 self.tsprocMultiMenuActions.append(act)
422 self.multiMenu.addSeparator()
423 self.__qtLinguistMultiAct = self.multiMenu.addAction(
424 self.tr("Open in Qt-Linguist"), self._openItem
425 )
426 self.tsMultiMenuActions.append(self.__qtLinguistMultiAct)
427 act = self.multiMenu.addAction(
428 self.tr("Open in Editor"), self.__openFileInEditor
429 )
430 self.tsMultiMenuActions.append(act)
431 self.multiMenu.addSeparator()
432 act = self.multiMenu.addAction(
433 self.tr("Release translations"), self.__releaseSelected
434 )
435 self.tsMultiMenuActions.append(act)
436 self.qmprocMultiMenuActions.append(act)
437 self.multiMenu.addSeparator()
438 act = self.multiMenu.addAction(
439 self.tr("Preview translations"), self.__TRPreview
440 )
441 self.qmMultiMenuActions.append(act)
442 else:
443 if self.hooks["extractMessages"] is not None:
444 act = self.multiMenu.addAction( 433 act = self.multiMenu.addAction(
445 self.hooksMenuEntries.get( 434 self.tr("Open in Editor"), self.__openFileInEditor
446 "extractMessages", self.tr("Extract messages") 435 )
447 ), 436 self.tsMultiMenuActions.append(act)
448 self.__extractMessages,
449 )
450 self.multiMenuActions.append(act)
451 self.multiMenu.addSeparator() 437 self.multiMenu.addSeparator()
452 if self.hooks["generateSelected"] is not None: 438 else:
453 act = self.multiMenu.addAction( 439 act = self.multiMenu.addAction(
454 self.hooksMenuEntries.get( 440 self.tr("Generate translations"), self.__generateSelected
455 "generateSelected", self.tr("Generate translations")
456 ),
457 self.__generateSelected,
458 ) 441 )
459 self.tsMultiMenuActions.append(act) 442 self.tsMultiMenuActions.append(act)
460 self.tsprocMultiMenuActions.append(act) 443 self.tsprocMultiMenuActions.append(act)
461 if self.hooks["generateSelectedWithObsolete"] is not None:
462 act = self.multiMenu.addAction( 444 act = self.multiMenu.addAction(
463 self.hooksMenuEntries.get( 445 self.tr("Generate translations (with obsolete)"),
464 "generateSelectedWithObsolete",
465 self.tr("Generate translations (with obsolete)"),
466 ),
467 self.__generateObsoleteSelected, 446 self.__generateObsoleteSelected,
468 ) 447 )
469 self.tsMultiMenuActions.append(act) 448 self.tsMultiMenuActions.append(act)
470 self.tsprocMultiMenuActions.append(act) 449 self.tsprocMultiMenuActions.append(act)
471 self.multiMenu.addSeparator() 450 self.multiMenu.addSeparator()
472 if self.hooks["open"] is not None: 451 self.__qtLinguistMultiAct = self.multiMenu.addAction(
452 self.tr("Open in Qt-Linguist"), self._openItem
453 )
454 self.tsMultiMenuActions.append(self.__qtLinguistMultiAct)
473 act = self.multiMenu.addAction( 455 act = self.multiMenu.addAction(
474 self.hooksMenuEntries.get("open", self.tr("Open")), self._openItem 456 self.tr("Open in Editor"), self.__openFileInEditor
475 ) 457 )
476 self.tsMultiMenuActions.append(act) 458 self.tsMultiMenuActions.append(act)
477 act = self.multiMenu.addAction( 459 self.multiMenu.addSeparator()
478 self.tr("Open in Editor"), self.__openFileInEditor
479 )
480 self.tsMultiMenuActions.append(act)
481 self.multiMenu.addSeparator()
482 if self.hooks["releaseSelected"] is not None:
483 act = self.multiMenu.addAction( 460 act = self.multiMenu.addAction(
484 self.hooksMenuEntries.get( 461 self.tr("Release translations"), self.__releaseSelected
485 "releaseSelected", self.tr("Release translations")
486 ),
487 self.__releaseSelected,
488 ) 462 )
489 self.tsMultiMenuActions.append(act) 463 self.tsMultiMenuActions.append(act)
490 self.qmprocMultiMenuActions.append(act) 464 self.qmprocMultiMenuActions.append(act)
465 self.multiMenu.addSeparator()
466 act = self.multiMenu.addAction(
467 self.tr("Preview translations"), self.__TRPreview
468 )
469 self.qmMultiMenuActions.append(act)
470 else:
471 if FileSystemUtilities.isRemoteFileName(self.project.getProjectPath()):
472 act = self.multiMenu.addAction(
473 self.tr("Open in Editor"), self.__openFileInEditor
474 )
475 self.tsMultiMenuActions.append(act)
476 self.multiMenu.addSeparator()
477 else:
478 if self.hooks["extractMessages"] is not None:
479 act = self.multiMenu.addAction(
480 self.hooksMenuEntries.get(
481 "extractMessages", self.tr("Extract messages")
482 ),
483 self.__extractMessages,
484 )
485 self.multiMenuActions.append(act)
486 self.multiMenu.addSeparator()
487 if self.hooks["generateSelected"] is not None:
488 act = self.multiMenu.addAction(
489 self.hooksMenuEntries.get(
490 "generateSelected", self.tr("Generate translations")
491 ),
492 self.__generateSelected,
493 )
494 self.tsMultiMenuActions.append(act)
495 self.tsprocMultiMenuActions.append(act)
496 if self.hooks["generateSelectedWithObsolete"] is not None:
497 act = self.multiMenu.addAction(
498 self.hooksMenuEntries.get(
499 "generateSelectedWithObsolete",
500 self.tr("Generate translations (with obsolete)"),
501 ),
502 self.__generateObsoleteSelected,
503 )
504 self.tsMultiMenuActions.append(act)
505 self.tsprocMultiMenuActions.append(act)
506 self.multiMenu.addSeparator()
507 if self.hooks["open"] is not None:
508 act = self.multiMenu.addAction(
509 self.hooksMenuEntries.get("open", self.tr("Open")),
510 self._openItem,
511 )
512 self.tsMultiMenuActions.append(act)
513 act = self.multiMenu.addAction(
514 self.tr("Open in Editor"), self.__openFileInEditor
515 )
516 self.tsMultiMenuActions.append(act)
517 self.multiMenu.addSeparator()
518 if self.hooks["releaseSelected"] is not None:
519 act = self.multiMenu.addAction(
520 self.hooksMenuEntries.get(
521 "releaseSelected", self.tr("Release translations")
522 ),
523 self.__releaseSelected,
524 )
525 self.tsMultiMenuActions.append(act)
526 self.qmprocMultiMenuActions.append(act)
491 self.multiMenu.addSeparator() 527 self.multiMenu.addSeparator()
492 act = self.multiMenu.addAction( 528 act = self.multiMenu.addAction(
493 self.tr("Remove from project"), self.__removeLanguageFile 529 self.tr("Remove from project"), self.__removeLanguageFile
494 ) 530 )
495 self.multiMenuActions.append(act) 531 self.multiMenuActions.append(act)
497 self.multiMenuActions.append(act) 533 self.multiMenuActions.append(act)
498 self.multiMenu.addSeparator() 534 self.multiMenu.addSeparator()
499 self.multiMenu.addAction(self.tr("Configure..."), self._configure) 535 self.multiMenu.addAction(self.tr("Configure..."), self._configure)
500 536
501 self.dirMenu = QMenu(self) 537 self.dirMenu = QMenu(self)
502 if self.project.getProjectType() in [ 538 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
503 "PyQt5", 539 if self.project.getProjectType() in [
504 "PyQt5C", 540 "PyQt5",
505 "PyQt6", 541 "PyQt5C",
506 "PyQt6C", 542 "PyQt6",
507 "E7Plugin", 543 "PyQt6C",
508 "PySide2", 544 "E7Plugin",
509 "PySide2C", 545 "PySide2",
510 "PySide6", 546 "PySide2C",
511 "PySide6C", 547 "PySide6",
512 ]: 548 "PySide6C",
513 act = self.dirMenu.addAction( 549 ]:
514 self.tr("Generate all translations"), self.__generateAll
515 )
516 self.tsprocDirMenuActions.append(act)
517 act = self.dirMenu.addAction(
518 self.tr("Generate all translations (with obsolete)"),
519 self.__generateObsoleteAll,
520 )
521 self.tsprocDirMenuActions.append(act)
522 act = self.dirMenu.addAction(
523 self.tr("Release all translations"), self.__releaseAll
524 )
525 self.qmprocDirMenuActions.append(act)
526 self.dirMenu.addSeparator()
527 act = self.dirMenu.addAction(
528 self.tr("Preview all translations"), self.__TRPreview
529 )
530 else:
531 if self.hooks["extractMessages"] is not None:
532 act = self.dirMenu.addAction( 550 act = self.dirMenu.addAction(
533 self.hooksMenuEntries.get( 551 self.tr("Generate all translations"), self.__generateAll
534 "extractMessages", self.tr("Extract messages") 552 )
535 ), 553 self.tsprocDirMenuActions.append(act)
536 self.__extractMessages, 554 act = self.dirMenu.addAction(
537 ) 555 self.tr("Generate all translations (with obsolete)"),
538 self.dirMenuActions.append(act) 556 self.__generateObsoleteAll,
557 )
558 self.tsprocDirMenuActions.append(act)
559 act = self.dirMenu.addAction(
560 self.tr("Release all translations"), self.__releaseAll
561 )
562 self.qmprocDirMenuActions.append(act)
539 self.dirMenu.addSeparator() 563 self.dirMenu.addSeparator()
540 if self.hooks["generateAll"] is not None:
541 act = self.dirMenu.addAction( 564 act = self.dirMenu.addAction(
542 self.hooksMenuEntries.get( 565 self.tr("Preview all translations"), self.__TRPreview
543 "generateAll", self.tr("Generate all translations") 566 )
544 ), 567 else:
545 self.__generateAll, 568 if self.hooks["extractMessages"] is not None:
546 ) 569 act = self.dirMenu.addAction(
547 self.tsprocDirMenuActions.append(act) 570 self.hooksMenuEntries.get(
548 if self.hooks["generateAllWithObsolete"] is not None: 571 "extractMessages", self.tr("Extract messages")
549 act = self.dirMenu.addAction( 572 ),
550 self.hooksMenuEntries.get( 573 self.__extractMessages,
551 "generateAllWithObsolete", 574 )
552 self.tr("Generate all translations (with obsolete)"), 575 self.dirMenuActions.append(act)
553 ), 576 self.dirMenu.addSeparator()
554 self.__generateObsoleteAll, 577 if self.hooks["generateAll"] is not None:
555 ) 578 act = self.dirMenu.addAction(
556 self.tsprocDirMenuActions.append(act) 579 self.hooksMenuEntries.get(
557 if self.hooks["releaseAll"] is not None: 580 "generateAll", self.tr("Generate all translations")
558 act = self.dirMenu.addAction( 581 ),
559 self.hooksMenuEntries.get( 582 self.__generateAll,
560 "releaseAll", self.tr("Release all translations") 583 )
561 ), 584 self.tsprocDirMenuActions.append(act)
562 self.__releaseAll, 585 if self.hooks["generateAllWithObsolete"] is not None:
563 ) 586 act = self.dirMenu.addAction(
564 self.qmprocDirMenuActions.append(act) 587 self.hooksMenuEntries.get(
588 "generateAllWithObsolete",
589 self.tr("Generate all translations (with obsolete)"),
590 ),
591 self.__generateObsoleteAll,
592 )
593 self.tsprocDirMenuActions.append(act)
594 if self.hooks["releaseAll"] is not None:
595 act = self.dirMenu.addAction(
596 self.hooksMenuEntries.get(
597 "releaseAll", self.tr("Release all translations")
598 ),
599 self.__releaseAll,
600 )
601 self.qmprocDirMenuActions.append(act)
565 self.dirMenu.addSeparator() 602 self.dirMenu.addSeparator()
566 act = self.dirMenu.addAction(self.tr("Delete"), self._deleteDirectory) 603 act = self.dirMenu.addAction(self.tr("Delete"), self._deleteDirectory)
567 self.dirMenuActions.append(act) 604 self.dirMenuActions.append(act)
568 self.dirMenu.addSeparator() 605 self.dirMenu.addSeparator()
569 self.__addTranslationDirAct = self.dirMenu.addAction( 606 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
570 self.tr("New translation..."), self.project.addLanguage 607 self.__addTranslationDirAct = self.dirMenu.addAction(
571 ) 608 self.tr("New translation..."), self.project.addLanguage
572 self.dirMenu.addAction( 609 )
573 self.tr("Add translation files..."), self.__addTranslationFiles 610 self.dirMenu.addAction(
574 ) 611 self.tr("Add translation files..."), self.__addTranslationFiles
575 self.dirMenu.addSeparator() 612 )
576 self.dirMenu.addAction(self.tr("Show in File Manager"), self._showInFileManager) 613 self.dirMenu.addSeparator()
614 self.dirMenu.addAction(
615 self.tr("Show in File Manager"), self._showInFileManager
616 )
577 self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard) 617 self.dirMenu.addAction(self.tr("Copy Path to Clipboard"), self._copyToClipboard)
578 self.dirMenu.addSeparator() 618 self.dirMenu.addSeparator()
579 self.dirMenu.addAction(self.tr("Configure..."), self._configure) 619 self.dirMenu.addAction(self.tr("Configure..."), self._configure)
580 620
581 self.dirMultiMenu = None 621 self.dirMultiMenu = None
653 for act in self.tsMenuActions + self.qmMenuActions: 693 for act in self.tsMenuActions + self.qmMenuActions:
654 act.setEnabled(False) 694 act.setEnabled(False)
655 elif tsFiles > 0: 695 elif tsFiles > 0:
656 for act in self.tsMenuActions: 696 for act in self.tsMenuActions:
657 act.setEnabled(True) 697 act.setEnabled(True)
658 self.__qtLinguistAct.setEnabled(QtUtilities.hasQtLinguist()) 698 if FileSystemUtilities.isPlainFileName(self.project.getProjectPath()):
659 self.__qtLinguistMultiAct.setEnabled(QtUtilities.hasQtLinguist()) 699 self.__qtLinguistAct.setEnabled(QtUtilities.hasQtLinguist())
700 self.__qtLinguistMultiAct.setEnabled(QtUtilities.hasQtLinguist())
660 for act in self.qmMenuActions: 701 for act in self.qmMenuActions:
661 act.setEnabled(False) 702 act.setEnabled(False)
662 elif qmFiles > 0: 703 elif qmFiles > 0:
663 for act in self.tsMenuActions: 704 for act in self.tsMenuActions:
664 act.setEnabled(False) 705 act.setEnabled(False)
725 766
726 def __showContextMenuDir(self): 767 def __showContextMenuDir(self):
727 """ 768 """
728 Private slot called by the dirMenu aboutToShow signal. 769 Private slot called by the dirMenu aboutToShow signal.
729 """ 770 """
730 if self.project.getProjectType() in [ 771 if (
731 "PyQt5", 772 FileSystemUtilities.isPlainFileName(self.project.getProjectPath())
732 "PyQt5C", 773 and self.project.getProjectType() in [
733 "PyQt6", 774 "PyQt5",
734 "PyQt6C", 775 "PyQt5C",
735 "E7Plugin", 776 "PyQt6",
736 "PySide2", 777 "PyQt6C",
737 "PySide2C", 778 "E7Plugin",
738 "PySide6", 779 "PySide2",
739 "PySide6C", 780 "PySide2C",
740 ]: 781 "PySide6",
782 "PySide6C",
783 ]
784 ):
741 if self.pylupdateProcRunning: 785 if self.pylupdateProcRunning:
742 for act in self.tsprocDirMenuActions: 786 for act in self.tsprocDirMenuActions:
743 act.setEnabled(False) 787 act.setEnabled(False)
744 if self.lreleaseProcRunning: 788 if self.lreleaseProcRunning:
745 for act in self.qmprocDirMenuActions: 789 for act in self.qmprocDirMenuActions:
754 798
755 def __showContextMenuBack(self): 799 def __showContextMenuBack(self):
756 """ 800 """
757 Private slot called by the backMenu aboutToShow signal. 801 Private slot called by the backMenu aboutToShow signal.
758 """ 802 """
759 if self.project.getProjectType() in [ 803 if (
760 "PyQt5", 804 FileSystemUtilities.isPlainFileName(self.project.getProjectPath())
761 "PyQt5C", 805 and self.project.getProjectType() in [
762 "PyQt6", 806 "PyQt5",
763 "PyQt6C", 807 "PyQt5C",
764 "E7Plugin", 808 "PyQt6",
765 "PySide2", 809 "PyQt6C",
766 "PySide2C", 810 "E7Plugin",
767 "PySide6", 811 "PySide2",
768 "PySide6C", 812 "PySide2C",
769 ]: 813 "PySide6",
814 "PySide6C",
815 ]
816 ):
770 if self.pylupdateProcRunning: 817 if self.pylupdateProcRunning:
771 for act in self.tsprocBackMenuActions: 818 for act in self.tsprocBackMenuActions:
772 act.setEnabled(False) 819 act.setEnabled(False)
773 if self.lreleaseProcRunning: 820 if self.lreleaseProcRunning:
774 for act in self.qmprocBackMenuActions: 821 for act in self.qmprocBackMenuActions:
793 for itm in itmList: 840 for itm in itmList:
794 if isinstance(itm, ProjectBrowserFileItem): 841 if isinstance(itm, ProjectBrowserFileItem):
795 # hook support 842 # hook support
796 if self.hooks["open"] is not None: 843 if self.hooks["open"] is not None:
797 self.hooks["open"](itm.fileName()) 844 self.hooks["open"](itm.fileName())
798 elif itm.isLinguistFile(): 845 elif (
846 itm.isLinguistFile()
847 and FileSystemUtilities.isPlainFileName(itm.fileName())
848 ):
799 if itm.fileExt() == ".ts": 849 if itm.fileExt() == ".ts":
800 self.linguistFile.emit(itm.fileName()) 850 self.linguistFile.emit(itm.fileName())
801 else: 851 else:
802 self.trpreview.emit([itm.fileName()]) 852 self.trpreview.emit([itm.fileName()])
803 else: 853 else:

eric ide

mercurial