Warning, file /libraries/ktextaddons/texttranslator/translator/translatorengineclient.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002   SPDX-FileCopyrightText: 2022-2024 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     [[nodiscard]] virtual QMap<TranslatorUtil::Language, QString> supportedFromLanguages() = 0;
0038     [[nodiscard]] virtual QMap<TranslatorUtil::Language, QString> supportedToLanguages() = 0;
0039     virtual void updateListLanguages();
0040 
0041     [[nodiscard]] virtual bool hasConfigurationDialog() const;
0042 
0043     virtual bool showConfigureDialog(QWidget *parentWidget);
0044     virtual void generateToListFromCurrentToLanguage(const QString &languageCode);
0045 
0046     [[nodiscard]] virtual bool hasInvertSupport() const;
0047 
0048     [[nodiscard]] virtual TextTranslator::TranslatorEngineClient::EngineType engineType() const = 0;
0049 
0050     [[nodiscard]] static QString convertEngineType(TextTranslator::TranslatorEngineClient::EngineType type);
0051 
0052 Q_SIGNALS:
0053     void configureChanged();
0054 
0055 protected:
0056     [[nodiscard]] QMap<TextTranslator::TranslatorUtil::Language, QString> fillLanguages();
0057     [[nodiscard]] virtual bool isSupported(TextTranslator::TranslatorUtil::Language lang) const = 0;
0058     QMap<TranslatorUtil::Language, QString> mFromLanguages;
0059 };
0060 }
0061 Q_DECLARE_INTERFACE(TextTranslator::TranslatorEngineClient, "org.kde.translator.Client")