ProjectDjango/Project.py

changeset 20
09e9084796de
parent 16
54c41e37792d
child 26
2dd206cd1aa2
equal deleted inserted replaced
19:0b6a6e49cc06 20:09e9084796de
697 697
698 ################################################################## 698 ##################################################################
699 ## methods below implement the various hook related functions 699 ## methods below implement the various hook related functions
700 ################################################################## 700 ##################################################################
701 701
702 def registerOpenHook(self):
703 """
704 Public method to register the open hook to open a translations file
705 in a translations editor.
706 """
707 if self.__hooksInstalled:
708 editor = self.__plugin.getPreferences("TranslationsEditor")
709 try:
710 if editor:
711 self.__translationsBrowser.addHookMethodAndMenuEntry("open",
712 self.openPOEditor,
713 self.trUtf8("Open with {0}").format(os.path.basename(editor)))
714 else:
715 self.__translationsBrowser.removeHookMethod("open")
716 except KeyError:
717 # ignore for older eric5 versions
718 pass
719
702 def projectOpenedHooks(self): 720 def projectOpenedHooks(self):
703 """ 721 """
704 Public method to add our hook methods. 722 Public method to add our hook methods.
705 """ 723 """
706 if self.__e5project.getProjectType() == "Django": 724 if self.__e5project.getProjectType() == "Django":
728 self.__translationsBrowser.addHookMethodAndMenuEntry("releaseSelected", 746 self.__translationsBrowser.addHookMethodAndMenuEntry("releaseSelected",
729 self.compileSelectedCatalogs, 747 self.compileSelectedCatalogs,
730 self.trUtf8("Compile selected catalogs")) 748 self.trUtf8("Compile selected catalogs"))
731 749
732 self.__hooksInstalled = True 750 self.__hooksInstalled = True
751
752 self.registerOpenHook()
733 753
734 def projectClosedHooks(self): 754 def projectClosedHooks(self):
735 """ 755 """
736 Public method to remove our hook methods. 756 Public method to remove our hook methods.
737 """ 757 """
745 self.__translationsBrowser.removeHookMethod("generateSelected") 765 self.__translationsBrowser.removeHookMethod("generateSelected")
746 self.__translationsBrowser.removeHookMethod("generateAllWithObsolete") 766 self.__translationsBrowser.removeHookMethod("generateAllWithObsolete")
747 self.__translationsBrowser.removeHookMethod("generateSelectedWithObsolete") 767 self.__translationsBrowser.removeHookMethod("generateSelectedWithObsolete")
748 self.__translationsBrowser.removeHookMethod("releaseAll") 768 self.__translationsBrowser.removeHookMethod("releaseAll")
749 self.__translationsBrowser.removeHookMethod("releaseSelected") 769 self.__translationsBrowser.removeHookMethod("releaseSelected")
770 try:
771 self.__translationsBrowser.removeHookMethod("open")
772 except KeyError:
773 # ignore for older eric5 versions
774 pass
750 self.__translationsBrowser = None 775 self.__translationsBrowser = None
751 776
752 self.__hooksInstalled = False 777 self.__hooksInstalled = False
753 778
754 def newForm(self, path): 779 def newForm(self, path):
2347 for entry in os.walk(self.__sitePath()): 2372 for entry in os.walk(self.__sitePath()):
2348 for fileName in entry[2]: 2373 for fileName in entry[2]:
2349 fullName = os.path.join(entry[0], fileName) 2374 fullName = os.path.join(entry[0], fileName)
2350 if fullName.endswith('.mo'): 2375 if fullName.endswith('.mo'):
2351 self.__e5project.appendFile(fullName) 2376 self.__e5project.appendFile(fullName)
2377
2378 def openPOEditor(self, poFile):
2379 """
2380 Public method to edit the given file in an external .po editor.
2381
2382 @param poFile name of the .po file (string)
2383 """
2384 editor = self.__plugin.getPreferences("TranslationsEditor")
2385 if poFile.endswith(".po") and editor:
2386 try:
2387 wd = self.__sitePath()
2388 except DjangoNoSiteSelectedException:
2389 wd = ""
2390 started, pid = QProcess.startDetached(editor, [poFile], wd)
2391 if not started:
2392 E5MessageBox.critical(None,
2393 self.trUtf8('Process Generation Error'),
2394 self.trUtf8('The translations editor process ({0}) could not'
2395 ' be started.').format(os.path.basename(editor)))

eric ide

mercurial