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))) |