ProjectPyramid/Project.py

changeset 48
c313efdb01de
parent 44
989c961c33ab
child 54
71c83a661c83
child 56
c7adc68350dd
equal deleted inserted replaced
47:5c24b24944d0 48:c313efdb01de
321 menu.addSeparator() 321 menu.addSeparator()
322 menu.addAction(self.aboutPyramidAct) 322 menu.addAction(self.aboutPyramidAct)
323 323
324 self.__mainMenu = menu 324 self.__mainMenu = menu
325 return menu 325 return menu
326
327 def registerOpenHook(self):
328 """
329 Public method to register the open hook to open a translations file
330 in a translations editor.
331 """
332 if self.__hooksInstalled:
333 editor = self.__plugin.getPreferences("TranslationsEditor")
334 try:
335 if editor:
336 self.__translationsBrowser.addHookMethodAndMenuEntry("open",
337 self.openPOEditor,
338 self.trUtf8("Open with {0}").format(os.path.basename(editor)))
339 else:
340 self.__translationsBrowser.removeHookMethod("open")
341 except KeyError:
342 # ignore for older eric5 versions
343 pass
326 344
327 def projectOpenedHooks(self): 345 def projectOpenedHooks(self):
328 """ 346 """
329 Public method to add our hook methods. 347 Public method to add our hook methods.
330 """ 348 """
351 self.updateCatalogs, self.trUtf8("Update All Catalogs")) 369 self.updateCatalogs, self.trUtf8("Update All Catalogs"))
352 self.__translationsBrowser.addHookMethodAndMenuEntry("generateSelected", 370 self.__translationsBrowser.addHookMethodAndMenuEntry("generateSelected",
353 self.updateSelectedCatalogs, self.trUtf8("Update Selected Catalogs")) 371 self.updateSelectedCatalogs, self.trUtf8("Update Selected Catalogs"))
354 372
355 self.__hooksInstalled = True 373 self.__hooksInstalled = True
374
375 self.registerOpenHook()
356 376
357 def projectClosedHooks(self): 377 def projectClosedHooks(self):
358 """ 378 """
359 Public method to remove our hook methods. 379 Public method to remove our hook methods.
360 """ 380 """
367 self.__translationsBrowser.removeHookMethod("extractMessages") 387 self.__translationsBrowser.removeHookMethod("extractMessages")
368 self.__translationsBrowser.removeHookMethod("releaseAll") 388 self.__translationsBrowser.removeHookMethod("releaseAll")
369 self.__translationsBrowser.removeHookMethod("releaseSelected") 389 self.__translationsBrowser.removeHookMethod("releaseSelected")
370 self.__translationsBrowser.removeHookMethod("generateAll") 390 self.__translationsBrowser.removeHookMethod("generateAll")
371 self.__translationsBrowser.removeHookMethod("generateSelected") 391 self.__translationsBrowser.removeHookMethod("generateSelected")
392 try:
393 self.__translationsBrowser.removeHookMethod("open")
394 except KeyError:
395 # ignore for older eric5 versions
396 pass
372 self.__translationsBrowser = None 397 self.__translationsBrowser = None
373 398
374 self.__hooksInstalled = False 399 self.__hooksInstalled = False
375 400
376 def newForm(self, path): 401 def newForm(self, path):
1404 dia = PyramidDialog(title, 1429 dia = PyramidDialog(title,
1405 msgSuccess=self.trUtf8("\nMessage catalogs updated successfully.")) 1430 msgSuccess=self.trUtf8("\nMessage catalogs updated successfully."))
1406 res = dia.startBatchProcesses(argsLists, projectPath) 1431 res = dia.startBatchProcesses(argsLists, projectPath)
1407 if res: 1432 if res:
1408 dia.exec_() 1433 dia.exec_()
1434
1435 def openPOEditor(self, poFile):
1436 """
1437 Public method to edit the given file in an external .po editor.
1438
1439 @param poFile name of the .po file (string)
1440 """
1441 editor = self.__plugin.getPreferences("TranslationsEditor")
1442 if poFile.endswith(".po") and editor:
1443 try:
1444 wd = self.__projectPath()
1445 except PyramidNoProjectSelectedException:
1446 wd = ""
1447 started, pid = QProcess.startDetached(editor, [poFile], wd)
1448 if not started:
1449 E5MessageBox.critical(None,
1450 self.trUtf8('Process Generation Error'),
1451 self.trUtf8('The translations editor process ({0}) could not'
1452 ' be started.').format(os.path.basename(editor)))

eric ide

mercurial