--- a/src/eric7/Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/Plugins/UiExtensionPlugins/Translator/ConfigurationPage/TranslatorPage.py Wed Jul 13 14:55:47 2022 +0200 @@ -12,9 +12,7 @@ from EricWidgets import EricMessageBox -from Preferences.ConfigurationPages.ConfigurationPageBase import ( - ConfigurationPageBase -) +from Preferences.ConfigurationPages.ConfigurationPageBase import ConfigurationPageBase from .Ui_TranslatorPage import Ui_TranslatorPage from ..TranslatorLanguagesDb import TranslatorLanguagesDb @@ -25,46 +23,59 @@ """ Class implementing the Time Tracker configuration page. """ + def __init__(self, plugin): """ Constructor - + @param plugin reference to the plugin object @type TranslatorPlugin """ super().__init__() self.setupUi(self) self.setObjectName("TranslatorPage") - + self.__plugin = plugin self.__enableLanguageWarning = True - - self.deeplLabel.setText(self.tr( - """<p>A key is <b>required</b> to use this service.""" - """ <a href="{0}">Get a commercial or free API key.</a></p>""" - ).format(TranslatorEngines.getKeyUrl("deepl"))) - self.googlev2Label.setText(self.tr( - """<p>A key is <b>required</b> to use this service.""" - """ <a href="{0}">Get a commercial API key.</a></p>""").format( - TranslatorEngines.getKeyUrl("googlev2"))) - self.ibmLabel.setText(self.tr( - """<p>A key is <b>required</b> to use this service.""" - """ <a href="{0}">Register with IBM Cloud.</a></p>""").format( - TranslatorEngines.getKeyUrl("ibm_watson"))) - self.msLabel.setText(self.tr( - """<p>A registration of the text translation service is""" - """ <b>required</b>. <a href="{0}">Register with Microsoft""" - """ Azure.</a></p>""").format( - TranslatorEngines.getKeyUrl("microsoft"))) - self.mymemoryLabel.setText(self.tr( - """<p>A key is <b>optional</b> to use this service.""" - """ <a href="{0}">Get a free API key.</a></p>""").format( - TranslatorEngines.getKeyUrl("mymemory"))) - self.yandexLabel.setText(self.tr( - """<p>A key is <b>required</b> to use this service.""" - """ <a href="{0}">Get a free API key.</a></p>""").format( - TranslatorEngines.getKeyUrl("yandex"))) - + + self.deeplLabel.setText( + self.tr( + """<p>A key is <b>required</b> to use this service.""" + """ <a href="{0}">Get a commercial or free API key.</a></p>""" + ).format(TranslatorEngines.getKeyUrl("deepl")) + ) + self.googlev2Label.setText( + self.tr( + """<p>A key is <b>required</b> to use this service.""" + """ <a href="{0}">Get a commercial API key.</a></p>""" + ).format(TranslatorEngines.getKeyUrl("googlev2")) + ) + self.ibmLabel.setText( + self.tr( + """<p>A key is <b>required</b> to use this service.""" + """ <a href="{0}">Register with IBM Cloud.</a></p>""" + ).format(TranslatorEngines.getKeyUrl("ibm_watson")) + ) + self.msLabel.setText( + self.tr( + """<p>A registration of the text translation service is""" + """ <b>required</b>. <a href="{0}">Register with Microsoft""" + """ Azure.</a></p>""" + ).format(TranslatorEngines.getKeyUrl("microsoft")) + ) + self.mymemoryLabel.setText( + self.tr( + """<p>A key is <b>optional</b> to use this service.""" + """ <a href="{0}">Get a free API key.</a></p>""" + ).format(TranslatorEngines.getKeyUrl("mymemory")) + ) + self.yandexLabel.setText( + self.tr( + """<p>A key is <b>required</b> to use this service.""" + """ <a href="{0}">Get a free API key.</a></p>""" + ).format(TranslatorEngines.getKeyUrl("yandex")) + ) + # set initial values enabledLanguages = self.__plugin.getPreferences("EnabledLanguages") languages = TranslatorLanguagesDb() @@ -79,74 +90,65 @@ itm.setCheckState(Qt.CheckState.Unchecked) self.languagesList.addItem(itm) self.languagesList.sortItems() - + # DeepL settings - self.deeplKeyEdit.setText( - self.__plugin.getPreferences("DeeplKey")) + self.deeplKeyEdit.setText(self.__plugin.getPreferences("DeeplKey")) # Google settings self.dictionaryCheckBox.setChecked( - self.__plugin.getPreferences("GoogleEnableDictionary")) - self.googlev2KeyEdit.setText( - self.__plugin.getPreferences("GoogleV2Key")) + self.__plugin.getPreferences("GoogleEnableDictionary") + ) + self.googlev2KeyEdit.setText(self.__plugin.getPreferences("GoogleV2Key")) # IBM Watson settings - self.ibmUrlEdit.setText( - self.__plugin.getPreferences("IbmUrl")) - self.ibmKeyEdit.setText( - self.__plugin.getPreferences("IbmKey")) + self.ibmUrlEdit.setText(self.__plugin.getPreferences("IbmUrl")) + self.ibmKeyEdit.setText(self.__plugin.getPreferences("IbmKey")) # Microsoft settings self.msSubscriptionKeyEdit.setText( - self.__plugin.getPreferences("MsTranslatorKey")) + self.__plugin.getPreferences("MsTranslatorKey") + ) self.msSubscriptionRegionEdit.setText( - self.__plugin.getPreferences("MsTranslatorRegion")) + self.__plugin.getPreferences("MsTranslatorRegion") + ) # MyMemory settings - self.mymemoryKeyEdit.setText( - self.__plugin.getPreferences("MyMemoryKey")) - self.mymemoryEmailEdit.setText( - self.__plugin.getPreferences("MyMemoryEmail")) + self.mymemoryKeyEdit.setText(self.__plugin.getPreferences("MyMemoryKey")) + self.mymemoryEmailEdit.setText(self.__plugin.getPreferences("MyMemoryEmail")) # Yandex settings - self.yandexKeyEdit.setText( - self.__plugin.getPreferences("YandexKey")) - + self.yandexKeyEdit.setText(self.__plugin.getPreferences("YandexKey")) + def save(self): """ Public slot to save the translators configuration. """ enabledLanguages = [ - itm.data(Qt.ItemDataRole.UserRole) - for itm in self.__checkedLanguageItems() + itm.data(Qt.ItemDataRole.UserRole) for itm in self.__checkedLanguageItems() ] - self.__plugin.setPreferences( - "EnabledLanguages", enabledLanguages) - + self.__plugin.setPreferences("EnabledLanguages", enabledLanguages) + # DeepL settings - self.__plugin.setPreferences( - "DeeplKey", self.deeplKeyEdit.text()) + self.__plugin.setPreferences("DeeplKey", self.deeplKeyEdit.text()) # Google settings self.__plugin.setPreferences( - "GoogleEnableDictionary", self.dictionaryCheckBox.isChecked()) - self.__plugin.setPreferences( - "GoogleV2Key", self.googlev2KeyEdit.text()) + "GoogleEnableDictionary", self.dictionaryCheckBox.isChecked() + ) + self.__plugin.setPreferences("GoogleV2Key", self.googlev2KeyEdit.text()) # IBM Watson settings - self.__plugin.setPreferences( - "IbmUrl", self.ibmUrlEdit.text()) - self.__plugin.setPreferences( - "IbmKey", self.ibmKeyEdit.text()) + self.__plugin.setPreferences("IbmUrl", self.ibmUrlEdit.text()) + self.__plugin.setPreferences("IbmKey", self.ibmKeyEdit.text()) # Microsoft settings self.__plugin.setPreferences( - "MsTranslatorKey", self.msSubscriptionKeyEdit.text()) - self.__plugin.setPreferences( - "MsTranslatorRegion", self.msSubscriptionRegionEdit.text()) - # MyMemory settings + "MsTranslatorKey", self.msSubscriptionKeyEdit.text() + ) self.__plugin.setPreferences( - "MyMemoryKey", self.mymemoryKeyEdit.text()) + "MsTranslatorRegion", self.msSubscriptionRegionEdit.text() + ) + # MyMemory settings + self.__plugin.setPreferences("MyMemoryKey", self.mymemoryKeyEdit.text()) # Yandex settings - self.__plugin.setPreferences( - "YandexKey", self.yandexKeyEdit.text()) - + self.__plugin.setPreferences("YandexKey", self.yandexKeyEdit.text()) + def __checkedLanguageItems(self): """ Private method to get a list of checked language items. - + @return list of checked language items @rtype list of QListWidgetItem """ @@ -155,16 +157,16 @@ itm = self.languagesList.item(index) if itm.checkState() == Qt.CheckState.Checked: items.append(itm) - + return items - + @pyqtSlot() def on_setButton_clicked(self): """ Private slot to set or unset all items. """ self.__enableLanguageWarning = False - + unset = len(self.__checkedLanguageItems()) > 0 for index in range(self.languagesList.count()): itm = self.languagesList.item(index) @@ -172,16 +174,16 @@ itm.setCheckState(Qt.CheckState.Unchecked) else: itm.setCheckState(Qt.CheckState.Checked) - + self.__enableLanguageWarning = True - + @pyqtSlot() def on_defaultButton_clicked(self): """ Private slot to set the default languages. """ self.__enableLanguageWarning = False - + defaults = self.__plugin.getPreferencesDefault("EnabledLanguages") for index in range(self.languagesList.count()): itm = self.languagesList.item(index) @@ -189,23 +191,23 @@ itm.setCheckState(Qt.CheckState.Checked) else: itm.setCheckState(Qt.CheckState.Unchecked) - + self.__enableLanguageWarning = True - + @pyqtSlot(QListWidgetItem) def on_languagesList_itemChanged(self, item): """ Private slot to handle the selection of an item. - + @param item reference to the changed item @type QListWidgetItem """ - if ( - self.__enableLanguageWarning and - len(self.__checkedLanguageItems()) < 2 - ): + if self.__enableLanguageWarning and len(self.__checkedLanguageItems()) < 2: EricMessageBox.warning( self, self.tr("Enabled Languages"), - self.tr("""At least two languages should be selected to""" - """ work correctly.""")) + self.tr( + """At least two languages should be selected to""" + """ work correctly.""" + ), + )