Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
machinetranslator.h
Go to the documentation of this file.
1#ifndef MACHINETRANSLATOR_H
2// Copyright (C) 2025 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
4
5#define MACHINETRANSLATOR_H
6
8
9#include <QString>
10#include <QObject>
11
13
14class QNetworkRequest;
15class QNetworkAccessManager;
16class QNetworkReply;
17
19{
21public:
24
25 void translate(const Messages &messages, const QString &userContext = QString());
26 void stop() noexcept { m_stopped = true; }
27 void start() noexcept
28 {
29 m_session++;
30 m_stopped = false;
31 }
32 void setUrl(const QString &url);
33 void activateTranslationModel(const QString &modelName);
34 void requestModels();
35
39 void modelsReceived(QStringList models);
40
41private:
42 std::atomic_bool m_stopped = false;
43 std::atomic_int m_session = 0;
44 std::unique_ptr<QNetworkRequest> m_request;
45 std::unique_ptr<QNetworkAccessManager> m_manager;
46 std::unique_ptr<TranslationProtocol> m_translator;
47 void translateBatch(Batch b, int tries);
48 void translationReceived(QNetworkReply *reply, Batch b, int tries, int session);
49
50 static constexpr int s_maxTries = 3;
51};
52
53QT_END_NAMESPACE
54
55#endif // MACHINETRANSLATOR_H
bool isValid() const
DataModelIterator(TranslationType type, const DataModel *model=0, int groupNo=0, int messageNo=0)
MessageItem * current() const
GroupItem * groupItem(int index, TranslationType type) const
MessageItem * messageItem(int i) const
int messageCount() const
void setDataModel(MultiDataModel *dm)
void start() noexcept
void translationFailed(QList< const TranslatorMessage * >)
void setUrl(const QString &url)
void translate(const Messages &messages, const QString &userContext=QString())
void activateTranslationModel(const QString &modelName)
void stop() noexcept
void modelsReceived(QStringList models)
const TranslatorMessage & message() const
DataModel * model(int i)
@ IDBASED
@ TEXTBASED