src/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py

Mon, 24 Oct 2022 14:23:39 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 24 Oct 2022 14:23:39 +0200
branch
eric7
changeset 9429
b2db3a67525c
parent 9413
80c06d472826
child 9473
3f23dbf37dbe
permissions
-rw-r--r--

Translator
- added the command line switch `--no-multimedia` to forcefully disable the pronounce function of the translator widget (in case Qt aborts the application start process)

6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8514
diff changeset
3 # Copyright (c) 2014 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the translator widget.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9429
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
10 import sys
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
11
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
12 from PyQt6.QtCore import pyqtSlot, QTemporaryFile
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
13 from PyQt6.QtWidgets import QWidget
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
14
9429
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
15 if "--no-multimedia" in sys.argv:
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
16 MULTIMEDIA_AVAILABLE = False
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
17 else:
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
18 try:
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
19 from PyQt6.QtMultimedia import QMediaFormat, QMediaPlayer, QAudioOutput
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
20
9429
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
21 MULTIMEDIA_AVAILABLE = True
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
22 except ImportError:
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
23 MULTIMEDIA_AVAILABLE = False
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
25 from eric7.EricWidgets import EricMessageBox
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
26 from eric7.EricWidgets.EricApplication import ericApp
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 from .Ui_TranslatorWidget import Ui_TranslatorWidget
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 from .TranslatorLanguagesDb import TranslatorLanguagesDb
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 from . import TranslatorEngines
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
33 from eric7.EricGui import EricPixmapCache
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 class TranslatorWidget(QWidget, Ui_TranslatorWidget):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 Class implementing the translator widget.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
40
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 def __init__(self, plugin, translator, parent=None):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
44
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
45 @param plugin reference to the plugin object
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
46 @type TranslatorPlugin
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
47 @param translator reference to the translator object
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
48 @type Translator
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
49 @param parent reference to the parent widget
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
50 @type QWidget
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
52 super().__init__(parent)
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.setupUi(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
54
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.__plugin = plugin
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__translator = translator
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
57
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 self.__languages = TranslatorLanguagesDb(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
59
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.__translatorRequest = None
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.__translationEngine = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
62
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
63 self.__audioOutput = None
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self.__mediaPlayer = None
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 self.__mediaFile = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
66
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
67 audioAvailable = False
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
68 if MULTIMEDIA_AVAILABLE:
9429
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
69 if self.__plugin.getPreferences("MultimediaEnabled"):
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
70 mediaFormat = QMediaFormat()
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
71 audioAvailable = (
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
72 QMediaFormat.AudioCodec.MP3
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
73 in mediaFormat.supportedAudioCodecs(
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
74 QMediaFormat.ConversionMode.Decode
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
75 )
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
76 )
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
77 else:
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
78 audioAvailable = False
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
79 else:
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
80 # reset if multimedia was disabled via command line
b2db3a67525c Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
81 self.__plugin.setPreferences("MultimediaEnabled", False)
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.pronounceOrigButton.setVisible(audioAvailable)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 self.pronounceTransButton.setVisible(audioAvailable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
84
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
85 self.pronounceOrigButton.setIcon(self.__translator.getAppIcon("pronounce"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
86 self.pronounceTransButton.setIcon(self.__translator.getAppIcon("pronounce"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
87 self.swapButton.setIcon(self.__translator.getAppIcon("swap"))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
88 self.translateButton.setIcon(self.__translator.getAppIcon("translate"))
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
89 self.clearButton.setIcon(EricPixmapCache.getIcon("editDelete"))
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
90 self.preferencesButton.setIcon(EricPixmapCache.getIcon("configure"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
91
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.translateButton.setEnabled(False)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.clearButton.setEnabled(False)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.pronounceOrigButton.setEnabled(False)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 self.pronounceTransButton.setEnabled(False)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
96
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 selectedEngine = self.__plugin.getPreferences("SelectedEngine")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
98
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.__updateEngines()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 engineIndex = self.engineComboBox.findData(selectedEngine)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 self.engineComboBox.setCurrentIndex(engineIndex)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.__engineComboBoxCurrentIndexChanged(engineIndex)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
103
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 self.engineComboBox.currentIndexChanged.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
105 self.__engineComboBoxCurrentIndexChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
106 )
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 self.__plugin.updateLanguages.connect(self.__updateLanguages)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
108
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 def __updateLanguages(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 Private slot to update the language combo boxes.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 """
6546
30829a28e969 TranslatorWidget: added code to cope with a situation where the translation engine is None.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6523
diff changeset
113 self.__ensureTranslationEngineReady()
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
114 if self.__translationEngine is not None:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
115 supportedCodes = self.__translationEngine.supportedLanguages()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
116 enabledCodes = self.__plugin.getPreferences("EnabledLanguages")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
117
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
118 # 1. save current selections
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
119 origLanguage = self.origLanguageComboBox.itemData(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
120 self.origLanguageComboBox.currentIndex()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
121 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
122
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
123 # 2. reload the original language combo box
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
124 self.origLanguageComboBox.blockSignals(True)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
125 self.origLanguageComboBox.clear()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
126 for code in enabledCodes:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
127 if code in supportedCodes:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
128 language = self.__languages.getLanguage(code)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
129 if language:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
130 icon = self.__languages.getLanguageIcon(code)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
131 self.origLanguageComboBox.addItem(icon, language, code)
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
132 self.origLanguageComboBox.model().sort(0)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
133 origIndex = self.origLanguageComboBox.findData(origLanguage)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
134 if origIndex == -1:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
135 origIndex = 0
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
136 self.origLanguageComboBox.blockSignals(False)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
137 self.origLanguageComboBox.setCurrentIndex(origIndex)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
138
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 def __updateEngines(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 Private slot to update the engines combo box.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
143 currentEngine = self.engineComboBox.itemData(self.engineComboBox.currentIndex())
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 self.engineComboBox.clear()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 for engineName in TranslatorEngines.supportedEngineNames():
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 icon = TranslatorEngines.getEngineIcon(engineName)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 self.engineComboBox.addItem(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
148 icon, TranslatorEngines.engineDisplayName(engineName), engineName
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
149 )
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 self.engineComboBox.model().sort(0)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
151 self.engineComboBox.setCurrentIndex(self.engineComboBox.findData(currentEngine))
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
152
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 def __originalLanguage(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 Private method to return the code of the selected original language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
156
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
157 @return code of the original language
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
158 @rtype str
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 return self.origLanguageComboBox.itemData(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
161 self.origLanguageComboBox.currentIndex()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
162 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
163
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 def __translationLanguage(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 Private method to return the code of the selected translation language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
167
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
168 @return code of the translation language
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
169 @rtype str
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 return self.transLanguageComboBox.itemData(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172 self.transLanguageComboBox.currentIndex()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
173 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
174
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 def on_translateButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 Private slot to translate the entered text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 self.transEdit.clear()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 result, ok = self.__translate(
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 self.origEdit.toPlainText(),
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 self.__originalLanguage(),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
184 self.__translationLanguage(),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
185 )
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 if ok:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 self.transEdit.setHtml(result)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
189 EricMessageBox.critical(self, self.tr("Translation Error"), result)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
190
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 def on_pronounceOrigButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 Private slot to pronounce the original text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
196 self.__pronounce(self.origEdit.toPlainText(), self.__originalLanguage())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
197
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 def on_pronounceTransButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 Private slot to pronounce the translated text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
203 self.__pronounce(self.transEdit.toPlainText(), self.__translationLanguage())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
204
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 def on_swapButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 Private slot to swap the languages.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 """
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
210 # save selected language codes
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
211 oLanguage = self.origLanguageComboBox.itemData(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
212 self.origLanguageComboBox.currentIndex()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
213 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
214
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
215 tLanguage = self.transLanguageComboBox.itemData(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
216 self.transLanguageComboBox.currentIndex()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
217 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
218
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
219 oIdx = self.origLanguageComboBox.findData(tLanguage)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
220 if oIdx < 0:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
221 oIdx = 0
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
222 self.origLanguageComboBox.setCurrentIndex(oIdx)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
223
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
224 tIdx = self.transLanguageComboBox.findData(oLanguage)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
225 if tIdx < 0:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
226 tIdx = 0
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
227 self.transLanguageComboBox.setCurrentIndex(tIdx)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
228
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 origText = self.origEdit.toPlainText()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 self.origEdit.setPlainText(self.transEdit.toPlainText())
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 self.transEdit.setPlainText(origText)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
232
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 def on_clearButton_clicked(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 Private slot to clear the text fields.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 self.origEdit.clear()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 self.transEdit.clear()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
240
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 def on_origEdit_textChanged(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 Private slot to handle changes of the original text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 self.__updatePronounceButtons()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 self.__updateClearButton()
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
248 self.__updateTranslateButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
249
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 @pyqtSlot()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 def on_transEdit_textChanged(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 Private slot to handle changes of the translation text.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 self.__updatePronounceButtons()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 self.__updateClearButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
257
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 @pyqtSlot(int)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 def on_origLanguageComboBox_currentIndexChanged(self, index):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 Private slot to handle the selection of the original language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
262
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
263 @param index current index
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
264 @type int
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 self.__plugin.setPreferences(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
267 "OriginalLanguage", self.origLanguageComboBox.itemData(index)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
268 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
269
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
270 supportedTargetCodes = self.__translationEngine.supportedTargetLanguages(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
271 self.origLanguageComboBox.itemData(index)
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
272 )
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
273 if supportedTargetCodes is not None:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
274 enabledCodes = self.__plugin.getPreferences("EnabledLanguages")
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
275 transLanguage = self.transLanguageComboBox.itemData(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
276 self.transLanguageComboBox.currentIndex()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
277 )
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
278 self.transLanguageComboBox.clear()
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
279 if len(supportedTargetCodes) > 0:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
280 for code in enabledCodes:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
281 if code in supportedTargetCodes:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
282 language = self.__languages.getLanguage(code)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
283 if language:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
284 icon = self.__languages.getLanguageIcon(code)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
285 self.transLanguageComboBox.addItem(icon, language, code)
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
286 self.transLanguageComboBox.model().sort(0)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
287 index = self.transLanguageComboBox.findData(transLanguage)
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
288 if index == -1:
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
289 index = 0
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
290 self.transLanguageComboBox.setCurrentIndex(index)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
291
6523
3e2897a36771 TranslatorWidget: fixed an issue causing the translate button to remain active even with no Original Language selected (e.g. after changing translator engine).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6419
diff changeset
292 self.__updateTranslateButton()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
293
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 @pyqtSlot(int)
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 def on_transLanguageComboBox_currentIndexChanged(self, index):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 Private slot to handle the selection of the translation language.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
298
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
299 @param index current index
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
300 @type int
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 self.__plugin.setPreferences(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
303 "TranslationLanguage", self.transLanguageComboBox.itemData(index)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
304 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
305
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
306 @pyqtSlot()
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
307 def __availableTranslationsLoaded(self):
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
308 """
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
309 Private slot to handle the availability of translations.
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 """
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
311 origLanguage = self.__plugin.getPreferences("OriginalLanguage")
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
312 transLanguage = self.__plugin.getPreferences("TranslationLanguage")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
313
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
314 self.__updateLanguages()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
315
6419
5d47e741245a TranslatorWidget: fixed an issue updating the target language selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6412
diff changeset
316 origIndex = self.origLanguageComboBox.findData(origLanguage)
5d47e741245a TranslatorWidget: fixed an issue updating the target language selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6412
diff changeset
317 self.origLanguageComboBox.setCurrentIndex(origIndex)
5d47e741245a TranslatorWidget: fixed an issue updating the target language selector.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6412
diff changeset
318 self.on_origLanguageComboBox_currentIndexChanged(origIndex)
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
319 self.transLanguageComboBox.setCurrentIndex(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
320 self.transLanguageComboBox.findData(transLanguage)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
321 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
322
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
323 def __ensureTranslationEngineReady(self):
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 """
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
325 Private slot to ensure, that the currently selected translation engine
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
326 is ready.
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
327 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
328 engineName = self.engineComboBox.itemData(self.engineComboBox.currentIndex())
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
329 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
330 self.__translationEngine is not None
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
331 and self.__translationEngine.engineName() != engineName
7256
4ef3b78ebb4e Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
332 ):
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
333 self.__translationEngine.availableTranslationsLoaded.disconnect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
334 self.__availableTranslationsLoaded
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
335 )
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 self.__translationEngine.deleteLater()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 self.__translationEngine = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
338
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 if self.__translationEngine is None:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 self.__translationEngine = TranslatorEngines.getTranslationEngine(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
341 engineName, self.__plugin, self
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
342 )
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
343 if self.__translationEngine is not None:
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
344 self.__translationEngine.availableTranslationsLoaded.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
345 self.__availableTranslationsLoaded
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
346 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
347
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
348 @pyqtSlot(int)
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
349 def __engineComboBoxCurrentIndexChanged(self, index):
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
350 """
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
351 Private slot to handle the selection of a translation service.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
352
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
353 @param index current index
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
354 @type int
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
355 """
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
356 self.__ensureTranslationEngineReady()
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
357 if self.__translationEngine is not None:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
358 self.__updateTranslateButton()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
359 self.__updatePronounceButtons()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
360
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
361 self.__plugin.setPreferences(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
362 "SelectedEngine", self.engineComboBox.itemData(index)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
363 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
364
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 def __updatePronounceButtons(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 Private slot to set the state of the pronounce buttons.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 """
8259
2bbec88047dd Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
369 hasTTS = self.__translationEngine and self.__translationEngine.hasTTS()
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 self.pronounceOrigButton.setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
371 hasTTS and bool(self.origEdit.toPlainText())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
372 )
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
373 self.pronounceTransButton.setEnabled(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
374 hasTTS and bool(self.transEdit.toPlainText())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
375 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
376
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 def __updateClearButton(self):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 Private slot to set the state of the clear button.
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
381 enable = bool(self.origEdit.toPlainText()) or bool(self.transEdit.toPlainText())
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 self.clearButton.setEnabled(enable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
383
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
384 def __updateTranslateButton(self):
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
385 """
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
386 Private slot to set the state of the translate button.
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
387 """
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
388 enable = bool(self.origEdit.toPlainText())
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
389 enable &= bool(self.__translationLanguage())
6523
3e2897a36771 TranslatorWidget: fixed an issue causing the translate button to remain active even with no Original Language selected (e.g. after changing translator engine).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6419
diff changeset
390 enable &= bool(self.__originalLanguage())
6411
7fd9b7ecbcfe Translator: added a translation engine for the IBM Watson Language Translator.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
391 self.translateButton.setEnabled(enable)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
392
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 def __translate(self, text, originalLanguage, translationLanguage):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 Private method to translate the given text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
396
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
397 @param text text to be translated
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
398 @type str
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
399 @param originalLanguage language code of the original
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
400 @type str
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
401 @param translationLanguage language code of the translation
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
402 @type str
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
403 @return tuple of translated text and flag indicating success
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
404 @rtype tuple of (str, bool)
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406 if self.__translatorRequest is None:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 from .TranslatorRequest import TranslatorRequest
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
408
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 self.__translatorRequest = TranslatorRequest(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
410
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
411 self.__ensureTranslationEngineReady()
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
412 if self.__translationEngine is None:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
413 return "", False
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
414 else:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
415 result, ok = self.__translationEngine.getTranslation(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
416 self.__translatorRequest, text, originalLanguage, translationLanguage
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
417 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
418
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
419 return result, ok
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
420
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 def __pronounce(self, text, language):
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 Private method to pronounce the given text.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
424
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
425 @param text text to be pronounced
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
426 @type str
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
427 @param language language code of the text
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
428 @type str
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 if not text or not language:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
432
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 if self.__translatorRequest is None:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 from .TranslatorRequest import TranslatorRequest
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
435
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 self.__translatorRequest = TranslatorRequest(self)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
437
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 if self.__mediaPlayer is None:
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 self.__mediaPlayer = QMediaPlayer(self)
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
440 self.__audioOutput = QAudioOutput(self)
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
441 self.__mediaPlayer.setAudioOutput(self.__audioOutput)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
442
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
443 self.__mediaPlayer.playbackStateChanged.connect(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
444 self.__mediaPlayerPlaybackStateChanged
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
445 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
446 self.__mediaPlayer.errorOccurred.connect(self.__mediaPlayerError)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
447
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
448 if (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
449 self.__mediaPlayer.playbackState()
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
450 == QMediaPlayer.PlaybackState.PlayingState
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
451 ):
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
453
6412
d71b094845e7 Translator: improved the translator by making the loading of available translations an asynchroneous operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6411
diff changeset
454 self.__ensureTranslationEngineReady()
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
455 if self.__translationEngine is not None:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
456 if not self.__translationEngine.hasTTS():
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
457 EricMessageBox.critical(
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
458 self,
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
459 self.tr("Translation Error"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
460 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
461 "The selected translation service does not"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
462 " support the Text-to-Speech function."
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
463 ),
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
464 )
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
465 return
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
466
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
467 data, ok = self.__translationEngine.getTextToSpeechData(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
468 self.__translatorRequest, text, language
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
469 )
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
470 if ok:
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
471 self.__mediaFile = QTemporaryFile(self)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
472 self.__mediaFile.open()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
473 self.__mediaFile.setAutoRemove(False)
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
474 self.__mediaFile.write(data)
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
475 self.__mediaFile.close()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
476
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
477 from PyQt6.QtCore import QUrl
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
478
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
479 self.__mediaPlayer.setSource(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
480 QUrl.fromLocalFile(self.__mediaFile.fileName())
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
481 )
6598
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
482 self.__mediaPlayer.play()
20917d2d9b4b TranslatorWidget: fixed situations, where the translation engine is not set (i.e. it is None).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6577
diff changeset
483 else:
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
484 EricMessageBox.critical(self, self.tr("Translation Error"), data)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
485
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
486 def __mediaPlayerPlaybackStateChanged(self, state):
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 """
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 Private slot handling changes of the media player state.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
489
9148
b31f0d894b55 Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
490 @param state media player state
b31f0d894b55 Translator
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
491 @type QMediaPlayer.PlaybackState
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 """
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
493 if state == QMediaPlayer.PlaybackState.StoppedState:
6018
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494 self.__mediaFile.close()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 self.__mediaFile.remove()
1c858879d3d0 Added the translator plug-in to the core plug-ins.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 self.__mediaFile = None
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
497
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
498 def __mediaPlayerError(self, error, errorString):
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
499 """
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
500 Private slot to handle errors during playback of the data.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
501
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
502 @param error media player error condition
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
503 @type QMediaPlayer.Error
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
504 @param errorString string representation for the error
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
505 @type str
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
506 """
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
507 if error != QMediaPlayer.Error.NoError:
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
508 EricMessageBox.warning(
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
509 self,
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
510 self.tr("Error playing pronunciation"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
511 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
512 "<p>The received pronunciation could not be played."
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
513 "</p><p>Reason: {0}</p>"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
514 ).format(errorString),
8511
8046c6a443bd TranslatorWidget: adapted the TTS support for PyQt/Qt 6.2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8463
diff changeset
515 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
516
6577
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
517 @pyqtSlot()
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
518 def on_preferencesButton_clicked(self):
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
519 """
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
520 Private slot to open the Translator configuration page.
232f83b6763b TranslatorWidget: added a button to open the Translator configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6546
diff changeset
521 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
522 ericApp().getObject("UserInterface").showPreferences("translatorPage")

eric ide

mercurial