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

branch
eric7
changeset 9429
b2db3a67525c
parent 9413
80c06d472826
child 9473
3f23dbf37dbe
--- a/src/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py	Fri Oct 21 09:28:18 2022 +0200
+++ b/src/eric7/Plugins/UiExtensionPlugins/Translator/TranslatorWidget.py	Mon Oct 24 14:23:39 2022 +0200
@@ -7,15 +7,20 @@
 Module implementing the translator widget.
 """
 
+import sys
+
 from PyQt6.QtCore import pyqtSlot, QTemporaryFile
 from PyQt6.QtWidgets import QWidget
 
-try:
-    from PyQt6.QtMultimedia import QMediaFormat, QMediaPlayer, QAudioOutput
+if "--no-multimedia" in sys.argv:
+    MULTIMEDIA_AVAILABLE = False
+else:
+    try:
+        from PyQt6.QtMultimedia import QMediaFormat, QMediaPlayer, QAudioOutput
 
-    MULTIMEDIA_AVAILABLE = True
-except ImportError:
-    MULTIMEDIA_AVAILABLE = False
+        MULTIMEDIA_AVAILABLE = True
+    except ImportError:
+        MULTIMEDIA_AVAILABLE = False
 
 from eric7.EricWidgets import EricMessageBox
 from eric7.EricWidgets.EricApplication import ericApp
@@ -61,11 +66,19 @@
 
         audioAvailable = False
         if MULTIMEDIA_AVAILABLE:
-            mediaFormat = QMediaFormat()
-            audioAvailable = (
-                QMediaFormat.AudioCodec.MP3
-                in mediaFormat.supportedAudioCodecs(QMediaFormat.ConversionMode.Decode)
-            )
+            if self.__plugin.getPreferences("MultimediaEnabled"):
+                mediaFormat = QMediaFormat()
+                audioAvailable = (
+                    QMediaFormat.AudioCodec.MP3
+                    in mediaFormat.supportedAudioCodecs(
+                        QMediaFormat.ConversionMode.Decode
+                    )
+                )
+            else:
+                audioAvailable = False
+        else:
+            # reset if multimedia was disabled via command line
+            self.__plugin.setPreferences("MultimediaEnabled", False)
         self.pronounceOrigButton.setVisible(audioAvailable)
         self.pronounceTransButton.setVisible(audioAvailable)
 

eric ide

mercurial