File indexing completed on 2024-05-12 16:16:10
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 <QObject> 0010 0011 #include "texttranslator_export.h" 0012 #include <QMap> 0013 #include <TextTranslator/TranslatorUtil> 0014 namespace TextTranslator 0015 { 0016 class TranslatorEnginePlugin; 0017 class TEXTTRANSLATOR_EXPORT TranslatorEngineClient : public QObject 0018 { 0019 Q_OBJECT 0020 public: 0021 enum EngineType { 0022 Locale, 0023 Network, 0024 }; 0025 explicit TranslatorEngineClient(QObject *parent = nullptr); 0026 ~TranslatorEngineClient() override; 0027 0028 /** 0029 * @returns the name of the implementing class. 0030 */ 0031 virtual QString name() const = 0; 0032 0033 virtual QString translatedName() const = 0; 0034 0035 virtual TranslatorEnginePlugin *createTranslator() = 0; 0036 0037 Q_REQUIRED_RESULT virtual QMap<TranslatorUtil::Language, QString> supportedFromLanguages() = 0; 0038 Q_REQUIRED_RESULT virtual QMap<TranslatorUtil::Language, QString> supportedToLanguages() = 0; 0039 virtual void updateListLanguages(); 0040 0041 Q_REQUIRED_RESULT virtual bool hasConfigurationDialog() const; 0042 0043 virtual bool showConfigureDialog(QWidget *parentWidget); 0044 virtual void generateToListFromCurrentToLanguage(const QString &languageCode); 0045 0046 Q_REQUIRED_RESULT virtual bool hasInvertSupport() const; 0047 0048 Q_REQUIRED_RESULT virtual TextTranslator::TranslatorEngineClient::EngineType engineType() const = 0; 0049 0050 Q_SIGNALS: 0051 void configureChanged(); 0052 0053 protected: 0054 Q_REQUIRED_RESULT QMap<TextTranslator::TranslatorUtil::Language, QString> fillLanguages(); 0055 Q_REQUIRED_RESULT virtual bool isSupported(TextTranslator::TranslatorUtil::Language lang) const = 0; 0056 QMap<TranslatorUtil::Language, QString> mFromLanguages; 0057 }; 0058 } 0059 Q_DECLARE_INTERFACE(TextTranslator::TranslatorEngineClient, "org.kde.translator.Client")