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 <QNetworkRequest>
0011 #include <QObject>
0012 class QNetworkAccessManager;
0013 class QNetworkReply;
0014 namespace TextGrammarCheck
0015 {
0016 class TEXTGRAMMARCHECK_EXPORT LanguageToolGetListOfLanguageJob : public QObject
0017 {
0018     Q_OBJECT
0019 public:
0020     explicit LanguageToolGetListOfLanguageJob(QObject *parent = nullptr);
0021     ~LanguageToolGetListOfLanguageJob() override;
0022 
0023     Q_REQUIRED_RESULT bool canStart() const;
0024     void start();
0025 
0026     Q_REQUIRED_RESULT QString listOfLanguagePath() const;
0027     void setListOfLanguagePath(const QString &listOfLanguagePath);
0028 
0029     QNetworkAccessManager *networkAccessManager() const;
0030     void setNetworkAccessManager(QNetworkAccessManager *networkAccessManager);
0031 
0032     Q_REQUIRED_RESULT QString url() const;
0033     void setUrl(const QString &url);
0034 
0035 Q_SIGNALS:
0036     void finished(const QString &result);
0037     void error(const QString &errorStr);
0038 
0039 private:
0040     Q_DISABLE_COPY(LanguageToolGetListOfLanguageJob)
0041     TEXTGRAMMARCHECK_NO_EXPORT void addRequestAttribute(QNetworkRequest &request) const;
0042     TEXTGRAMMARCHECK_NO_EXPORT void slotCheckListOfLanguagesFinished();
0043     TEXTGRAMMARCHECK_NO_EXPORT void slotFinish(QNetworkReply *reply);
0044 
0045     QString mListOfLanguagePath;
0046     QNetworkAccessManager *mNetworkAccessManager = nullptr;
0047     QString mUrl;
0048 };
0049 }