Project/ProjectTranslationsBrowser.py

branch
Py2 comp.
changeset 3060
5883ce99ee12
parent 3058
0a02c433f52d
parent 3038
7fe9a53280bd
child 3145
a9de05d4a22f
equal deleted inserted replaced
3058:0a02c433f52d 3060:5883ce99ee12
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

eric ide

mercurial