100 self.tsprocBackMenuActions = [] |
100 self.tsprocBackMenuActions = [] |
101 self.qmprocBackMenuActions = [] |
101 self.qmprocBackMenuActions = [] |
102 |
102 |
103 self.menu = QMenu(self) |
103 self.menu = QMenu(self) |
104 if self.project.getProjectType() in [ |
104 if self.project.getProjectType() in [ |
105 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
105 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
106 "PySide", "PySideC", "PySide2", "PySideC2" |
|
107 ]: |
106 ]: |
108 act = self.menu.addAction( |
107 act = self.menu.addAction( |
109 self.tr('Generate translation'), self.__generateSelected) |
108 self.tr('Generate translation'), self.__generateSelected) |
110 self.tsMenuActions.append(act) |
109 self.tsMenuActions.append(act) |
111 self.tsprocMenuActions.append(act) |
110 self.tsprocMenuActions.append(act) |
228 self.menu.addSeparator() |
227 self.menu.addSeparator() |
229 self.menu.addAction(self.tr('Configure...'), self._configure) |
228 self.menu.addAction(self.tr('Configure...'), self._configure) |
230 |
229 |
231 self.backMenu = QMenu(self) |
230 self.backMenu = QMenu(self) |
232 if self.project.getProjectType() in [ |
231 if self.project.getProjectType() in [ |
233 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
232 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
234 "PySide", "PySideC", "PySide2", "PySideC2" |
|
235 ]: |
233 ]: |
236 act = self.backMenu.addAction( |
234 act = self.backMenu.addAction( |
237 self.tr('Generate all translations'), |
235 self.tr('Generate all translations'), |
238 self.__generateAll) |
236 self.__generateAll) |
239 self.tsprocBackMenuActions.append(act) |
237 self.tsprocBackMenuActions.append(act) |
290 self.backMenu.setEnabled(False) |
288 self.backMenu.setEnabled(False) |
291 |
289 |
292 # create the menu for multiple selected files |
290 # create the menu for multiple selected files |
293 self.multiMenu = QMenu(self) |
291 self.multiMenu = QMenu(self) |
294 if self.project.getProjectType() in [ |
292 if self.project.getProjectType() in [ |
295 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
293 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
296 "PySide", "PySideC", "PySide2", "PySideC2" |
|
297 ]: |
294 ]: |
298 act = self.multiMenu.addAction( |
295 act = self.multiMenu.addAction( |
299 self.tr('Generate translations'), |
296 self.tr('Generate translations'), |
300 self.__generateSelected) |
297 self.__generateSelected) |
301 self.tsMultiMenuActions.append(act) |
298 self.tsMultiMenuActions.append(act) |
375 self.multiMenu.addSeparator() |
372 self.multiMenu.addSeparator() |
376 self.multiMenu.addAction(self.tr('Configure...'), self._configure) |
373 self.multiMenu.addAction(self.tr('Configure...'), self._configure) |
377 |
374 |
378 self.dirMenu = QMenu(self) |
375 self.dirMenu = QMenu(self) |
379 if self.project.getProjectType() in [ |
376 if self.project.getProjectType() in [ |
380 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
377 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
381 "PySide", "PySideC", "PySide2", "PySideC2" |
|
382 ]: |
378 ]: |
383 act = self.dirMenu.addAction( |
379 act = self.dirMenu.addAction( |
384 self.tr('Generate all translations'), |
380 self.tr('Generate all translations'), |
385 self.__generateAll) |
381 self.__generateAll) |
386 self.tsprocDirMenuActions.append(act) |
382 self.tsprocDirMenuActions.append(act) |
494 def __showContextMenu(self): |
490 def __showContextMenu(self): |
495 """ |
491 """ |
496 Private slot called by the menu aboutToShow signal. |
492 Private slot called by the menu aboutToShow signal. |
497 """ |
493 """ |
498 if self.project.getProjectType() in [ |
494 if self.project.getProjectType() in [ |
499 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
495 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
500 "PySide", "PySideC", "PySide2", "PySideC2" |
|
501 ]: |
496 ]: |
502 tsFiles = 0 |
497 tsFiles = 0 |
503 qmFiles = 0 |
498 qmFiles = 0 |
504 itmList = self.getSelectedItems() |
499 itmList = self.getSelectedItems() |
505 for itm in itmList[:]: |
500 for itm in itmList[:]: |
539 def __showContextMenuMulti(self): |
534 def __showContextMenuMulti(self): |
540 """ |
535 """ |
541 Private slot called by the multiMenu aboutToShow signal. |
536 Private slot called by the multiMenu aboutToShow signal. |
542 """ |
537 """ |
543 if self.project.getProjectType() in [ |
538 if self.project.getProjectType() in [ |
544 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
539 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
545 "PySide", "PySideC", "PySide2", "PySideC2" |
|
546 ]: |
540 ]: |
547 tsFiles = 0 |
541 tsFiles = 0 |
548 qmFiles = 0 |
542 qmFiles = 0 |
549 itmList = self.getSelectedItems() |
543 itmList = self.getSelectedItems() |
550 for itm in itmList[:]: |
544 for itm in itmList[:]: |
582 def __showContextMenuDir(self): |
576 def __showContextMenuDir(self): |
583 """ |
577 """ |
584 Private slot called by the dirMenu aboutToShow signal. |
578 Private slot called by the dirMenu aboutToShow signal. |
585 """ |
579 """ |
586 if self.project.getProjectType() in [ |
580 if self.project.getProjectType() in [ |
587 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
581 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
588 "PySide", "PySideC", "PySide2", "PySideC2" |
|
589 ]: |
582 ]: |
590 if self.pylupdateProcRunning: |
583 if self.pylupdateProcRunning: |
591 for act in self.tsprocDirMenuActions: |
584 for act in self.tsprocDirMenuActions: |
592 act.setEnabled(False) |
585 act.setEnabled(False) |
593 if self.lreleaseProcRunning: |
586 if self.lreleaseProcRunning: |
603 def __showContextMenuBack(self): |
596 def __showContextMenuBack(self): |
604 """ |
597 """ |
605 Private slot called by the backMenu aboutToShow signal. |
598 Private slot called by the backMenu aboutToShow signal. |
606 """ |
599 """ |
607 if self.project.getProjectType() in [ |
600 if self.project.getProjectType() in [ |
608 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
601 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
609 "PySide", "PySideC", "PySide2", "PySideC2" |
|
610 ]: |
602 ]: |
611 if self.pylupdateProcRunning: |
603 if self.pylupdateProcRunning: |
612 for act in self.tsprocBackMenuActions: |
604 for act in self.tsprocBackMenuActions: |
613 act.setEnabled(False) |
605 act.setEnabled(False) |
614 if self.lreleaseProcRunning: |
606 if self.lreleaseProcRunning: |
878 self.appendStdout.emit(s) |
870 self.appendStdout.emit(s) |
879 |
871 |
880 def __readStderrLupdate(self, proc): |
872 def __readStderrLupdate(self, proc): |
881 """ |
873 """ |
882 Private slot to handle the readyReadStandardError signal of the |
874 Private slot to handle the readyReadStandardError signal of the |
883 pylupdate4/pylupdate5/pyside-lupdate/pyside2-lupdate process. |
875 pylupdate5/pyside2-lupdate process. |
884 |
876 |
885 @param proc reference to the process |
877 @param proc reference to the process |
886 @type QProcess |
878 @type QProcess |
887 """ |
879 """ |
888 self.__readStderr(proc, '{0}: '.format(self.pylupdate)) |
880 self.__readStderr(proc, '{0}: '.format(self.pylupdate)) |
977 # all done |
969 # all done |
978 self.pylupdateProcRunning = False |
970 self.pylupdateProcRunning = False |
979 |
971 |
980 def __generateTSFile(self, noobsolete=False, generateAll=True): |
972 def __generateTSFile(self, noobsolete=False, generateAll=True): |
981 """ |
973 """ |
982 Private method used to run pylupdate4/pylupdate5/pyside-lupdate to |
974 Private method used to run pylupdate5/pyside2-lupdate to |
983 generate the .ts files. |
975 generate the .ts files. |
984 |
976 |
985 @param noobsolete flag indicating whether obsolete entries should be |
977 @param noobsolete flag indicating whether obsolete entries should be |
986 kept (boolean) |
978 kept (boolean) |
987 @param generateAll flag indicating whether all translations should be |
979 @param generateAll flag indicating whether all translations should be |
1019 return |
1011 return |
1020 |
1012 |
1021 # generate a minimal temporary projectfile suitable for pylupdate |
1013 # generate a minimal temporary projectfile suitable for pylupdate |
1022 self.__tmpProjects = [] |
1014 self.__tmpProjects = [] |
1023 if self.project.getProjectLanguage() in [ |
1015 if self.project.getProjectLanguage() in [ |
1024 "Python", "Python2", "Python3" |
1016 "Python", "Python3" |
1025 ]: |
1017 ]: |
1026 ok = self.__writeTempProjectFile(langs, [".py"]) |
1018 ok = self.__writeTempProjectFile(langs, [".py"]) |
1027 else: |
1019 else: |
1028 ok = False |
1020 ok = False |
1029 if not ok: |
1021 if not ok: |
1030 return |
1022 return |
1031 |
1023 |
1032 if self.project.getProjectType() in ["Qt4", "Qt4C"]: |
1024 if self.project.getProjectType() in ["PyQt5", "PyQt5C"]: |
1033 self.pylupdate = Utilities.generatePyQtToolPath('pylupdate4') |
|
1034 elif self.project.getProjectType() in ["PyQt5", "PyQt5C"]: |
|
1035 self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5') |
1025 self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5') |
1036 elif self.project.getProjectType() in ["E6Plugin"]: |
1026 elif self.project.getProjectType() in ["E6Plugin"]: |
1037 self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5') |
1027 self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5') |
1038 elif self.project.getProjectType() in ["PySide", "PySideC"]: |
|
1039 self.pylupdate = Utilities.generatePySideToolPath( |
|
1040 'pyside-lupdate', "1") |
|
1041 elif self.project.getProjectType() in ["PySide2", "PySide2C"]: |
1028 elif self.project.getProjectType() in ["PySide2", "PySide2C"]: |
1042 self.pylupdate = Utilities.generatePySideToolPath( |
1029 self.pylupdate = Utilities.generatePySideToolPath( |
1043 'pyside2-lupdate', "2") |
1030 'pyside2-lupdate') |
1044 else: |
1031 else: |
1045 return |
1032 return |
1046 |
1033 |
1047 self.__pylupdateProcesses = [] |
1034 self.__pylupdateProcesses = [] |
1048 for tempProjectFile in self.__tmpProjects[:]: |
1035 for tempProjectFile in self.__tmpProjects[:]: |
1195 for lang in langs] |
1182 for lang in langs] |
1196 self.hooks["releaseSelected"](li) |
1183 self.hooks["releaseSelected"](li) |
1197 return |
1184 return |
1198 |
1185 |
1199 if self.project.getProjectType() in [ |
1186 if self.project.getProjectType() in [ |
1200 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", |
1187 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C" |
1201 "PySide", "PySideC", "PySide2", "PySideC2" |
|
1202 ]: |
1188 ]: |
1203 lrelease = os.path.join( |
1189 lrelease = os.path.join( |
1204 Utilities.getQtBinariesPath(), |
1190 Utilities.getQtBinariesPath(), |
1205 Utilities.generateQtToolName("lrelease")) |
1191 Utilities.generateQtToolName("lrelease")) |
1206 else: |
1192 else: |