5 |
5 |
6 """ |
6 """ |
7 Module implementing the translator widget. |
7 Module implementing the translator widget. |
8 """ |
8 """ |
9 |
9 |
|
10 import sys |
|
11 |
10 from PyQt6.QtCore import pyqtSlot, QTemporaryFile |
12 from PyQt6.QtCore import pyqtSlot, QTemporaryFile |
11 from PyQt6.QtWidgets import QWidget |
13 from PyQt6.QtWidgets import QWidget |
12 |
14 |
13 try: |
15 if "--no-multimedia" in sys.argv: |
14 from PyQt6.QtMultimedia import QMediaFormat, QMediaPlayer, QAudioOutput |
|
15 |
|
16 MULTIMEDIA_AVAILABLE = True |
|
17 except ImportError: |
|
18 MULTIMEDIA_AVAILABLE = False |
16 MULTIMEDIA_AVAILABLE = False |
|
17 else: |
|
18 try: |
|
19 from PyQt6.QtMultimedia import QMediaFormat, QMediaPlayer, QAudioOutput |
|
20 |
|
21 MULTIMEDIA_AVAILABLE = True |
|
22 except ImportError: |
|
23 MULTIMEDIA_AVAILABLE = False |
19 |
24 |
20 from eric7.EricWidgets import EricMessageBox |
25 from eric7.EricWidgets import EricMessageBox |
21 from eric7.EricWidgets.EricApplication import ericApp |
26 from eric7.EricWidgets.EricApplication import ericApp |
22 |
27 |
23 from .Ui_TranslatorWidget import Ui_TranslatorWidget |
28 from .Ui_TranslatorWidget import Ui_TranslatorWidget |
59 self.__mediaPlayer = None |
64 self.__mediaPlayer = None |
60 self.__mediaFile = None |
65 self.__mediaFile = None |
61 |
66 |
62 audioAvailable = False |
67 audioAvailable = False |
63 if MULTIMEDIA_AVAILABLE: |
68 if MULTIMEDIA_AVAILABLE: |
64 mediaFormat = QMediaFormat() |
69 if self.__plugin.getPreferences("MultimediaEnabled"): |
65 audioAvailable = ( |
70 mediaFormat = QMediaFormat() |
66 QMediaFormat.AudioCodec.MP3 |
71 audioAvailable = ( |
67 in mediaFormat.supportedAudioCodecs(QMediaFormat.ConversionMode.Decode) |
72 QMediaFormat.AudioCodec.MP3 |
68 ) |
73 in mediaFormat.supportedAudioCodecs( |
|
74 QMediaFormat.ConversionMode.Decode |
|
75 ) |
|
76 ) |
|
77 else: |
|
78 audioAvailable = False |
|
79 else: |
|
80 # reset if multimedia was disabled via command line |
|
81 self.__plugin.setPreferences("MultimediaEnabled", False) |
69 self.pronounceOrigButton.setVisible(audioAvailable) |
82 self.pronounceOrigButton.setVisible(audioAvailable) |
70 self.pronounceTransButton.setVisible(audioAvailable) |
83 self.pronounceTransButton.setVisible(audioAvailable) |
71 |
84 |
72 self.pronounceOrigButton.setIcon(self.__translator.getAppIcon("pronounce")) |
85 self.pronounceOrigButton.setIcon(self.__translator.getAppIcon("pronounce")) |
73 self.pronounceTransButton.setIcon(self.__translator.getAppIcon("pronounce")) |
86 self.pronounceTransButton.setIcon(self.__translator.getAppIcon("pronounce")) |