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 "textgrammarcheckprivate_export.h" 0010 #include <QObject> 0011 class QNetworkRequest; 0012 class QNetworkReply; 0013 class QNetworkAccessManager; 0014 namespace TextGrammarCheck 0015 { 0016 class TEXTGRAMMARCHECK_TESTS_EXPORT LanguageToolResultJob : public QObject 0017 { 0018 Q_OBJECT 0019 public: 0020 explicit LanguageToolResultJob(QObject *parent = nullptr); 0021 ~LanguageToolResultJob() override; 0022 Q_REQUIRED_RESULT bool canStart() const; 0023 void start(); 0024 Q_REQUIRED_RESULT QStringList arguments() const; 0025 void setArguments(const QStringList &arguments); 0026 0027 QNetworkAccessManager *networkAccessManager() const; 0028 void setNetworkAccessManager(QNetworkAccessManager *networkAccessManager); 0029 0030 Q_REQUIRED_RESULT QString text() const; 0031 void setText(const QString &text); 0032 0033 Q_REQUIRED_RESULT QString url() const; 0034 void setUrl(const QString &url); 0035 0036 Q_REQUIRED_RESULT QString language() const; 0037 void setLanguage(const QString &language); 0038 0039 Q_SIGNALS: 0040 void finished(const QString &result); 0041 void error(const QString &errorStr); 0042 0043 private: 0044 Q_DISABLE_COPY(LanguageToolResultJob) 0045 enum class JobError { 0046 NotError, 0047 EmptyText, 0048 UrlNotDefined, 0049 NetworkManagerNotDefined, 0050 LanguageNotDefined, 0051 }; 0052 0053 Q_REQUIRED_RESULT LanguageToolResultJob::JobError canStartError() const; 0054 void slotCheckGrammarFinished(); 0055 void addRequestAttribute(QNetworkRequest &request) const; 0056 void slotFinish(QNetworkReply *reply); 0057 QStringList mArguments; 0058 QString mText; 0059 QString mUrl; 0060 QString mLanguage; 0061 QNetworkAccessManager *mNetworkAccessManager = nullptr; 0062 }; 0063 }