File indexing completed on 2024-06-16 04:28:00

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 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     [[nodiscard]] QString languageToolPath() const;
0027     void setLanguageToolPath(const QString &path);
0028 
0029     void loadSettings();
0030     void saveSettings();
0031 
0032     [[nodiscard]] QString language() const;
0033     void setLanguage(const QString &language);
0034 
0035     [[nodiscard]] bool useLocalInstance() const;
0036     void setUseLocalInstance(bool useLocalInstance);
0037 
0038     [[nodiscard]] QString languageToolCheckPath() const;
0039 
0040     [[nodiscard]] QString languageToolLanguagesPath() const;
0041 
0042     [[nodiscard]] static QString convertToLanguagePath(const QString &path);
0043 
0044     [[nodiscard]] QColor grammarColorForError(const QString &error);
0045 
0046     [[nodiscard]] 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 }