File indexing completed on 2024-05-12 16:16:11
0001 /* 0002 SPDX-FileCopyrightText: 2022-2023 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "texttranslator_export.h" 0010 #include <QObject> 0011 #include <TextTranslator/TranslatorUtil> 0012 #include <memory> 0013 namespace TextTranslator 0014 { 0015 class TranslatorEngineLoaderPrivate; 0016 class TranslatorEngineClient; 0017 class TEXTTRANSLATOR_EXPORT TranslatorEngineLoader : public QObject 0018 { 0019 Q_OBJECT 0020 public: 0021 static TranslatorEngineLoader *self(); 0022 0023 explicit TranslatorEngineLoader(QObject *parent = nullptr); 0024 ~TranslatorEngineLoader() override; 0025 0026 Q_REQUIRED_RESULT TextTranslator::TranslatorEngineClient *createTranslatorClient(const QString &clientName); 0027 0028 // engine name, i18n 0029 Q_REQUIRED_RESULT QMap<QString, QString> translatorEngineInfos() const; 0030 0031 Q_REQUIRED_RESULT QString currentPluginName(const QString &key) const; 0032 0033 Q_REQUIRED_RESULT QMap<TextTranslator::TranslatorUtil::Language, QString> supportedFromLanguages(const QString &clientName) const; 0034 Q_REQUIRED_RESULT QMap<TextTranslator::TranslatorUtil::Language, QString> supportedToLanguages(const QString &clientName) const; 0035 0036 Q_REQUIRED_RESULT bool hasConfigurationDialog(const QString &clientName) const; 0037 0038 Q_REQUIRED_RESULT QString fallbackFirstEngine() const; 0039 0040 Q_REQUIRED_RESULT bool showConfigureDialog(const QString &clientName, QWidget *parentWidget); 0041 0042 Q_SIGNALS: 0043 void loadingTranslatorFailed(); 0044 0045 private: 0046 TEXTTRANSLATOR_NO_EXPORT void loadPlugins(); 0047 TEXTTRANSLATOR_NO_EXPORT void loadPlugin(const QString &pluginPath); 0048 std::unique_ptr<TranslatorEngineLoaderPrivate> const d; 0049 }; 0050 }