7#include "bergamotengineclient.h"
8#include "begamotenginedialog.h"
9#include "bergamotengineplugin.h"
10#include "bergamotengineutils.h"
11#include "translator/misc/translatorutil.h"
12#include <KConfigGroup>
13#include <KLocalizedString>
14#include <KSharedConfig>
17BergamotEngineClient::BergamotEngineClient(
QObject *parent)
18 : TextTranslator::TranslatorEngineClient{parent}
20 updateInstalledLanguage();
23BergamotEngineClient::~BergamotEngineClient() =
default;
25QString BergamotEngineClient::name()
const
27 return QStringLiteral(
"bergamot");
30QString BergamotEngineClient::translatedName()
const
32 return i18n(
"Bergamot");
35TextTranslator::TranslatorEnginePlugin *BergamotEngineClient::createTranslator()
37 auto enginePlugin =
new BergamotEnginePlugin();
38 connect(
this, &BergamotEngineClient::configureChanged, enginePlugin, &BergamotEnginePlugin::slotConfigureChanged);
44 return mFromLanguages;
52bool BergamotEngineClient::hasConfigurationDialog()
const
57bool BergamotEngineClient::showConfigureDialog(
QWidget *parentWidget)
59 bool settingsChanged =
false;
62 BergamotEngineUtils::SettingsInfo info;
63 info.loadSettingsInfo();
64 dlg->setSettingsInfo(info);
66 info = dlg->settingsInfo();
67 info.saveSettingsInfo();
68 updateInstalledLanguage();
70 settingsChanged =
true;
73 return settingsChanged;
76void BergamotEngineClient::updateInstalledLanguage()
78 mLanguageInstalled = BergamotEngineUtils::languageLocallyStored();
79 updateFromLanguageList();
80 updateToLanguageList();
83void BergamotEngineClient::updateFromLanguageList()
85 mFromLanguages.
clear();
86 for (
const auto &lang : std::as_const(mLanguageInstalled)) {
87 const TextTranslator::TranslatorUtil::Language langUtil = TextTranslator::TranslatorUtil::stringToLanguage(lang.from);
88 mFromLanguages.
insert(langUtil, TextTranslator::TranslatorUtil::translatedLanguage(langUtil));
93void BergamotEngineClient::updateToLanguageList()
96 for (
const auto &lang : std::as_const(mLanguageInstalled)) {
98 if (lang.to == mLanguageCode || mLanguageCode.
isEmpty()) {
99 const TextTranslator::TranslatorUtil::Language langUtil = TextTranslator::TranslatorUtil::stringToLanguage(lang.to);
101 mToLanguages.
insert(langUtil, TextTranslator::TranslatorUtil::translatedLanguage(langUtil));
106bool BergamotEngineClient::hasInvertSupport()
const
111void BergamotEngineClient::generateToListFromCurrentToLanguage(
const QString &languageCode)
113 mLanguageCode = languageCode;
114 updateToLanguageList();
117TextTranslator::TranslatorEngineClient::EngineType BergamotEngineClient::engineType()
const
119 return TextTranslator::TranslatorEngineClient::Locale;
122bool BergamotEngineClient::isSupported(TextTranslator::TranslatorUtil::Language lang)
const
128void BergamotEngineClient::updateListLanguages()
130 updateInstalledLanguage();
133#include "moc_bergamotengineclient.cpp"
static KSharedConfig::Ptr openConfig(const QString &fileName=QString(), OpenFlags mode=FullConfig, QStandardPaths::StandardLocation type=QStandardPaths::GenericConfigLocation)
QString i18n(const char *text, const TYPE &arg...)
iterator insert(const Key &key, const T &value)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
bool isEmpty() const const