62 Constructor |
62 Constructor |
63 |
63 |
64 @param project reference to the project object |
64 @param project reference to the project object |
65 @param parent parent widget of this browser (QWidget) |
65 @param parent parent widget of this browser (QWidget) |
66 """ |
66 """ |
67 ProjectBaseBrowser.__init__(self, project, |
67 ProjectBaseBrowser.__init__(self, project, |
68 ProjectBrowserTranslationType, parent) |
68 ProjectBrowserTranslationType, parent) |
69 self.isTranslationsBrowser = True |
69 self.isTranslationsBrowser = True |
70 |
70 |
71 self.selectedItemsFilter = \ |
71 self.selectedItemsFilter = \ |
72 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem] |
72 [ProjectBrowserFileItem, ProjectBrowserSimpleDirectoryItem] |
624 """ |
624 """ |
625 itm = self.model().item(self.currentIndex()) |
625 itm = self.model().item(self.currentIndex()) |
626 if isinstance(itm, ProjectBrowserFileItem): |
626 if isinstance(itm, ProjectBrowserFileItem): |
627 dn = os.path.dirname(itm.fileName()) |
627 dn = os.path.dirname(itm.fileName()) |
628 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \ |
628 elif isinstance(itm, ProjectBrowserSimpleDirectoryItem) or \ |
629 isinstance(itm, ProjectBrowserDirectoryItem): |
629 isinstance(itm, ProjectBrowserDirectoryItem): |
630 dn = itm.dirName() |
630 dn = itm.dirName() |
631 else: |
631 else: |
632 dn = None |
632 dn = None |
633 self.project.addFiles('translation', dn) |
633 self.project.addFiles('translation', dn) |
634 |
634 |
714 fn = itm.fileName() |
714 fn = itm.fileName() |
715 if fn not in fileNames: |
715 if fn not in fileNames: |
716 fileNames.append(os.path.join(self.project.ppath, fn)) |
716 fileNames.append(os.path.join(self.project.ppath, fn)) |
717 else: |
717 else: |
718 trfiles = sorted(self.project.pdata["TRANSLATIONS"][:]) |
718 trfiles = sorted(self.project.pdata["TRANSLATIONS"][:]) |
719 fileNames.extend([os.path.join(self.project.ppath, trfile) \ |
719 fileNames.extend([os.path.join(self.project.ppath, trfile) |
720 for trfile in trfiles \ |
720 for trfile in trfiles |
721 if trfile.endswith('.qm')]) |
721 if trfile.endswith('.qm')]) |
722 self.trpreview[list, bool].emit(fileNames, True) |
722 self.trpreview[list, bool].emit(fileNames, True) |
723 |
723 |
724 def __TRPreviewAll(self): |
724 def __TRPreviewAll(self): |
725 """ |
725 """ |
745 """ |
745 """ |
746 path, ext = os.path.splitext(self.project.pfile) |
746 path, ext = os.path.splitext(self.project.pfile) |
747 pfile = '{0}_e4x.pro'.format(path) |
747 pfile = '{0}_e4x.pro'.format(path) |
748 |
748 |
749 # only consider files satisfying the filter criteria |
749 # only consider files satisfying the filter criteria |
750 _sources = [s for s in self.project.pdata["SOURCES"] \ |
750 _sources = [s for s in self.project.pdata["SOURCES"] |
751 if os.path.splitext(s)[1] in filter] |
751 if os.path.splitext(s)[1] in filter] |
752 sources = [] |
752 sources = [] |
753 for s in _sources: |
753 for s in _sources: |
754 addIt = True |
754 addIt = True |
755 for transExcept in self.project.pdata["TRANSLATIONEXCEPTIONS"]: |
755 for transExcept in self.project.pdata["TRANSLATIONEXCEPTIONS"]: |
769 break |
769 break |
770 if addIt: |
770 if addIt: |
771 forms.append(f) |
771 forms.append(f) |
772 |
772 |
773 if langs: |
773 if langs: |
774 langs = [self.project.getRelativePath(lang.fileName()) \ |
774 langs = [self.project.getRelativePath(lang.fileName()) |
775 for lang in langs if lang.fileName().endswith('.ts')] |
775 for lang in langs if lang.fileName().endswith('.ts')] |
776 else: |
776 else: |
777 try: |
777 try: |
778 pattern = self.project.pdata["TRANSLATIONPATTERN"][0]\ |
778 pattern = self.project.pdata["TRANSLATIONPATTERN"][0]\ |
779 .replace("%language%", "*") |
779 .replace("%language%", "*") |
780 langs = [lang for lang in self.project.pdata["TRANSLATIONS"] \ |
780 langs = [lang for lang in self.project.pdata["TRANSLATIONS"] |
781 if fnmatch.fnmatch(lang, pattern)] |
781 if fnmatch.fnmatch(lang, pattern)] |
782 except IndexError: |
782 except IndexError: |
783 langs = [] |
783 langs = [] |
784 if not langs: |
784 if not langs: |
785 E5MessageBox.warning( |
785 E5MessageBox.warning( |
1004 self.project.pdata["TRANSLATIONS"]) |
1004 self.project.pdata["TRANSLATIONS"]) |
1005 return |
1005 return |
1006 else: |
1006 else: |
1007 if noobsolete: |
1007 if noobsolete: |
1008 if self.hooks["generateSelected"] is not None: |
1008 if self.hooks["generateSelected"] is not None: |
1009 l = [self.project.getRelativePath(lang.fileName()) \ |
1009 li = [self.project.getRelativePath(lang.fileName()) |
1010 for lang in langs] |
1010 for lang in langs] |
1011 self.hooks["generateSelected"](l) |
1011 self.hooks["generateSelected"](li) |
1012 return |
1012 return |
1013 else: |
1013 else: |
1014 if self.hooks["generateSelectedWithObsolete"] is not None: |
1014 if self.hooks["generateSelectedWithObsolete"] is not None: |
1015 l = [self.project.getRelativePath(lang.fileName()) \ |
1015 li = [self.project.getRelativePath(lang.fileName()) |
1016 for lang in langs] |
1016 for lang in langs] |
1017 self.hooks["generateSelectedWithObsolete"](l) |
1017 self.hooks["generateSelectedWithObsolete"](li) |
1018 return |
1018 return |
1019 |
1019 |
1020 # generate a minimal temporary projectfile suitable for pylupdate |
1020 # generate a minimal temporary projectfile suitable for pylupdate |
1021 self.__tmpProjects = [] |
1021 self.__tmpProjects = [] |
1022 if self.project.pdata["PROGLANGUAGE"][0] in \ |
1022 if self.project.pdata["PROGLANGUAGE"][0] in \ |
1186 if self.hooks["releaseAll"] is not None: |
1186 if self.hooks["releaseAll"] is not None: |
1187 self.hooks["releaseAll"](self.project.pdata["TRANSLATIONS"]) |
1187 self.hooks["releaseAll"](self.project.pdata["TRANSLATIONS"]) |
1188 return |
1188 return |
1189 else: |
1189 else: |
1190 if self.hooks["releaseSelected"] is not None: |
1190 if self.hooks["releaseSelected"] is not None: |
1191 l = [self.project.getRelativePath(lang.fileName()) \ |
1191 li = [self.project.getRelativePath(lang.fileName()) |
1192 for lang in langs] |
1192 for lang in langs] |
1193 self.hooks["releaseSelected"](l) |
1193 self.hooks["releaseSelected"](li) |
1194 return |
1194 return |
1195 |
1195 |
1196 # generate a minimal temporary projectfile suitable for lrelease |
1196 # generate a minimal temporary projectfile suitable for lrelease |
1197 self.__tmpProjects = [] |
1197 self.__tmpProjects = [] |
1198 if self.project.pdata["PROGLANGUAGE"][0] in \ |
1198 if self.project.pdata["PROGLANGUAGE"][0] in \ |
1205 |
1205 |
1206 if self.project.getProjectType() in \ |
1206 if self.project.getProjectType() in \ |
1207 ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", |
1207 ["Qt4", "Qt4C", "PyQt5", "PyQt5C", "E4Plugin", |
1208 "PySide", "PySideC"]: |
1208 "PySide", "PySideC"]: |
1209 lrelease = os.path.join( |
1209 lrelease = os.path.join( |
1210 Utilities.getQtBinariesPath(), |
1210 Utilities.getQtBinariesPath(), |
1211 Utilities.generateQtToolName("lrelease")) |
1211 Utilities.generateQtToolName("lrelease")) |
1212 else: |
1212 else: |
1213 return |
1213 return |
1214 if Utilities.isWindowsPlatform(): |
1214 if Utilities.isWindowsPlatform(): |
1215 lrelease = lrelease + '.exe' |
1215 lrelease = lrelease + '.exe' |
1216 |
1216 |