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
machinetranslationdialog.h
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef MACHINETRANSLATIONDIALOG_H
5#define MACHINETRANSLATIONDIALOG_H
6
7#include <QtCore/qhash.h>
8#include <QtCore/qlist.h>
9#include <QtCore/qmutex.h>
10#include <QtWidgets/qdialog.h>
11
12#include <memory>
13#include <utility>
14
15QT_BEGIN_NAMESPACE
16
17namespace Ui {
18class MachineTranslationDialog;
19}
20
21class MultiDataModel;
24class MultiDataIndex;
25
27{
29public:
30 explicit MachineTranslationDialog(QWidget *parent = nullptr);
32
34
35 static constexpr const char *selectedModelSettingsKey = "MachineTranslation/SelectedModel";
36 static constexpr const char *selectedApiTypeSettingsKey = "MachineTranslation/ApiType";
37
38private:
39 enum class ConnectionState { NotConnected, Connecting, Connected, Failed, Modified };
40
41 void refresh(bool init);
42 void logProgress(const QList<QStringList> &table);
43 void logInfo(const QString &info);
44 void logWarning(const QString &warning);
45 void logError(const QString &error);
46 bool discardTranslations();
47 void updateStatus();
48 void setConnectionState(ConnectionState state);
49 void updateConnectionIndicator();
50
51 MultiDataModel *m_dataModel;
52 QHash<const TranslatorMessage *, MultiDataIndex> m_ongoingTranslations;
53 QList<std::pair<MultiDataIndex, QStringList>> m_receivedTranslations;
54 QMutex m_mutex;
55 std::unique_ptr<Ui::MachineTranslationDialog> m_ui;
56 std::unique_ptr<MachineTranslator> m_translator;
57 int m_failedTranslations = 0;
58 int m_sentTexts = 0;
59 ConnectionState m_connectionState = ConnectionState::NotConnected;
60 QString m_lastConnectedUrl;
61
62private slots:
63 void stop();
64 void translateSelection();
65 void onBatchTranslated(QHash<const TranslatorMessage *, QStringList> translations);
66 void onNewDebugMessage(const QByteArray &message, bool fromLlm);
67 void onFilterChanged(int id);
68 void applyTranslations();
69 void onTranslationFailed(QList<const TranslatorMessage *>);
70 void connectToServer();
71 void onApiTypeChanged(int index);
72 void onServerUrlChanged();
73 void onModelsReceived(const QStringList &models);
74 void updateToolBoxTexts();
75 void toggleAdvancedSettings(bool checked);
76 void loadAdvancedSettings();
77 void saveAdvancedSettings();
78 void resetAdvancedSettings();
79 void validateAdvancedSettings();
80};
81
82QT_END_NAMESPACE
83
84#endif // MACHINETRANSLATIONDIALOG_H
void setPhraseBooks(const QList< PhraseBook * > &phrasebooks, int modelIndex)
CheckableListModel(QObject *parent=0)
Qt::ItemFlags flags(const QModelIndex &index) const override
Returns the item flags for the given index.
int message() const
TranslationType translationType() const
int group() const
bool isValid() const
void updateStatistics()
void clear()
FocusWatcher(MessageEditor *msgedit, QObject *parent)
bool eventFilter(QObject *object, QEvent *event) override
Filters events if this object has been installed as an event filter for the watched object.
void setDataModel(MultiDataModel *dm)
static constexpr const char * selectedModelSettingsKey
static constexpr const char * selectedApiTypeSettingsKey
~MainWindow() override
MainWindow(HelpClientType helpClientType)
void writeConfig()
void closeEvent(QCloseEvent *e) override
This event handler is called with the given event when Qt receives a window close request for a top-l...
bool openFiles(const QStringList &names)
bool eventFilter(QObject *obj, QEvent *ev) override
Filters events if this object has been installed as an event filter for the watched object.
void readConfig()
void setLengthVariants(bool on)
int activeModel() const
void redoAvailable(bool avail)
void cutAvailable(bool avail)
void undoAvailable(bool avail)
void setVisualizeWhitespace(bool value)
void setEditorFocusForModel(int model)
void pasteAvailable(bool avail)
void setFontSize(const float fontSize)
void setUnfinishedEditorFocus()
bool focusNextUnfinished()
void activeModelChanged(int model)
void copyAvailable(bool avail)
void showMessage(const MultiDataIndex &index)
bool danger() const
bool isFinished() const
const TranslatorMessage & message() const
TranslatorMessage::Type type() const
int lineNumber() const
bool isObsolete() const
void setModel(int model)
int model() const
MultiDataIndex(TranslationType type=TEXTBASED, int model=-1, int group=-1, int message=-1)
MultiDataModelIterator(TranslationType type, MultiDataModel *model=0, int modelNo=-1, int groupNo=0, int messageNo=0)
MessageItem * current() const
bool isModified(int model) const
int labelCount() const
MessageItem * messageItem(const MultiDataIndex &index, int model) const
void setModified(int model, bool dirty)
MultiGroupItem * multiGroupItem(const MultiDataIndex &index) const
DataModel * model(int i)
bool isModified() const
MultiGroupItem * multiGroupItem(int idx, TranslationType type) const
void languageChanged(int model)
int getNumFinished() const
void setDanger(const MultiDataIndex &index, bool danger)
int modelCount() const
bool isModelWritable(int model) const
MultiMessageItem * multiMessageItem(const MultiDataIndex &index) const
int getNumEditable() const
int contextCount() const
void modifiedChanged(bool)
void translationChanged(const MultiDataIndex &index)
void statsChanged(const StatisticalData &newStats)
void multiGroupDataChanged(const MultiDataIndex &index)
MessageItem * messageItem(const MultiDataIndex &index) const
void setFinished(const MultiDataIndex &index, bool finished)
void messageDataChanged(const MultiDataIndex &index)
void close(int model)
bool isModified() const
Definition phrase.h:68
void listChanged()
void resetNumGuesses()
void setMaxCandidates(const int max)
int getMaxCandidates() const
Definition phraseview.h:30
void update()
static int getDefaultMaxCandidates()
Definition phraseview.h:32
void showFewerGuessesAvailable(bool canShow)
void moreGuesses()
void fewerGuesses()
void setCurrentMessageFromGuess(int modelIndex, const Candidate &cand)
Definition qlist.h:81
bool setSourceContext(int model, MessageItem *messageItem)
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
\reimp
SortedGroupsModel(QObject *parent, MultiDataModel *model, TranslationType translationType)
SortedMessagesModel(QObject *parent, MultiDataModel *model, TranslationType translationType)
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
\reimp
void setPhraseBook(PhraseBook *phraseBook)
bool isTranslated() const
void setSourceContext(int model, MessageItem *messageItem)
HelpClientType
Definition helpclient.h:16
TranslationType
@ IDBASED
@ TEXTBASED
Combined button and popup list for selecting options.
static QString fileFilters(bool allFirst)
static const QVariant & pxObsolete()
int firstNonobsoleteMessageIndex(int msgIdx) const
bool isUnfinished() const
OpenedFile(DataModel *_dataModel, bool _readWrite, bool _langGuessed)
DataModel * dataModel
@ SaveEverything