File indexing completed on 2024-05-05 04:01:24

0001 /*
0002     SPDX-FileCopyrightText: 2019 Christoph Cullmann <cullmann@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KSPELL_ISPELLCHECKCLIENT_H
0008 #define KSPELL_ISPELLCHECKCLIENT_H
0009 
0010 #include "client_p.h"
0011 
0012 #include <spellcheck.h>
0013 #include <windows.h>
0014 
0015 #include <QMap>
0016 
0017 namespace Sonnet
0018 {
0019 class SpellerPlugin;
0020 }
0021 using Sonnet::SpellerPlugin;
0022 
0023 class ISpellCheckerClient : public Sonnet::Client
0024 {
0025     Q_OBJECT
0026     Q_INTERFACES(Sonnet::Client)
0027     Q_PLUGIN_METADATA(IID "org.kde.Sonnet.ISpellCheckerClient")
0028 public:
0029     explicit ISpellCheckerClient(QObject *parent = nullptr);
0030     ~ISpellCheckerClient() override;
0031 
0032     int reliability() const override
0033     {
0034         return 40;
0035     }
0036 
0037     SpellerPlugin *createSpeller(const QString &language) override;
0038 
0039     QStringList languages() const override;
0040 
0041     QString name() const override
0042     {
0043         return QStringLiteral("ISpellChecker");
0044     }
0045 
0046 private:
0047     // we internally keep all spell checker interfaces alive
0048     QMap<QString, ISpellChecker *> m_languages;
0049 };
0050 
0051 #endif