File indexing completed on 2024-05-12 16:16:03

0001 /*
0002    SPDX-FileCopyrightText: 2019-2023 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "textgrammarcheck_export.h"
0010 #include <QHash>
0011 #include <QObject>
0012 class QColor;
0013 class QNetworkAccessManager;
0014 namespace TextGrammarCheck
0015 {
0016 class TEXTGRAMMARCHECK_EXPORT LanguageToolManager : public QObject
0017 {
0018     Q_OBJECT
0019 public:
0020     explicit LanguageToolManager(QObject *parent = nullptr);
0021     ~LanguageToolManager() override;
0022     static LanguageToolManager *self();
0023 
0024     QNetworkAccessManager *networkAccessManager() const;
0025 
0026     Q_REQUIRED_RESULT QString languageToolPath() const;
0027     void setLanguageToolPath(const QString &path);
0028 
0029     void loadSettings();
0030     void saveSettings();
0031 
0032     Q_REQUIRED_RESULT QString language() const;
0033     void setLanguage(const QString &language);
0034 
0035     Q_REQUIRED_RESULT bool useLocalInstance() const;
0036     void setUseLocalInstance(bool useLocalInstance);
0037 
0038     Q_REQUIRED_RESULT QString languageToolCheckPath() const;
0039 
0040     Q_REQUIRED_RESULT QString languageToolLanguagesPath() const;
0041 
0042     Q_REQUIRED_RESULT static QString convertToLanguagePath(const QString &path);
0043 
0044     Q_REQUIRED_RESULT QColor grammarColorForError(const QString &error);
0045 
0046     Q_REQUIRED_RESULT bool allowToGetListOfLanguages() const;
0047 
0048 private:
0049     Q_DISABLE_COPY(LanguageToolManager)
0050     QHash<QString, QColor> mGrammarColor;
0051     QString mLanguage;
0052     QString mLanguageToolPath;
0053     QNetworkAccessManager *const mNetworkAccessManager;
0054     bool mUseLocalInstance = false;
0055 };
0056 }