diff options
author | Tim Jenssen <tim.jenssen@qt.io> | 2020-02-07 08:13:41 +0100 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2021-04-26 13:13:44 +0200 |
commit | 784c62441333de8d13d31c719ac01e6096247c01 (patch) | |
tree | c9916e04f0e7d7ddf1cf6467f0f9ad643267e58a /src/qmldebug | |
parent | f9b85604179e162c68ac8c42f97b1b3329c79b0a (diff) |
Implement debugtranslationservice
- moves the language feature from the preview service
to an own debugtranslationservice
- with the help of a proxytranslator the service gets all
translate requests
Change-Id: Ic26677bb1706abbea2db23e6aafe7a3f00648962
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmldebug')
-rw-r--r-- | src/qmldebug/qqmldebugtranslationclient.cpp | 49 | ||||
-rw-r--r-- | src/qmldebug/qqmldebugtranslationclient_p.h | 22 | ||||
-rw-r--r-- | src/qmldebug/qqmlpreviewclient.cpp | 7 | ||||
-rw-r--r-- | src/qmldebug/qqmlpreviewclient_p.h | 4 | ||||
-rw-r--r-- | src/qmldebug/qv4debugclient_p.h | 2 |
5 files changed, 40 insertions, 44 deletions
diff --git a/src/qmldebug/qqmldebugtranslationclient.cpp b/src/qmldebug/qqmldebugtranslationclient.cpp index 33f887b059..a93184b95d 100644 --- a/src/qmldebug/qqmldebugtranslationclient.cpp +++ b/src/qmldebug/qqmldebugtranslationclient.cpp @@ -40,37 +40,46 @@ #include "qqmldebugtranslationclient_p.h" #include "qqmldebugconnection_p.h" -#include <QUrl> -#include <QDataStream> - #include <QDebug> -#include <QtPacketProtocol/private/qpacket_p.h> - -QT_BEGIN_NAMESPACE - -/*! - \class QQmlDebugTranslationClient - \internal - \brief Client for the debug translation service +#include <private/qqmldebugconnector_p.h> +#include <private/qversionedpacket_p.h> - The QQmlDebugTranslationClient can test if translated texts will fit. - */ +QT_BEGIN_NAMESPACE QQmlDebugTranslationClient::QQmlDebugTranslationClient(QQmlDebugConnection *client) : QQmlDebugClient(QLatin1String("DebugTranslation"), client) { } -void QQmlDebugTranslationClient::messageReceived(const QByteArray &data) +void QQmlDebugTranslationClient::messageReceived(const QByteArray &message) { - Q_UNUSED(data); -} + QVersionedPacket<QQmlDebugConnector> packet(message); + QQmlDebugTranslation::Reply type; -void QQmlDebugTranslationClient::triggerLanguage(const QUrl &url, const QString &locale) -{ - Q_UNUSED(url); - Q_UNUSED(locale); + packet >> type; + switch (type) { + case QQmlDebugTranslation::Reply::MissingTranslations: { + packet >> translationIssues; + break; + } + case QQmlDebugTranslation::Reply::LanguageChanged: { + languageChanged = true; + break; + } + case QQmlDebugTranslation::Reply::TranslatableTextOccurrences: { + packet >> qmlElements; + break; + } + case QQmlDebugTranslation::Reply::StateList: { + packet >> qmlStates; + break; + } + + default: + qWarning() << "TestDebugTranslationClient: received unknown command: " << static_cast<int>(type); + break; + } } QT_END_NAMESPACE diff --git a/src/qmldebug/qqmldebugtranslationclient_p.h b/src/qmldebug/qqmldebugtranslationclient_p.h index 3163759d9e..968e3f26a9 100644 --- a/src/qmldebug/qqmldebugtranslationclient_p.h +++ b/src/qmldebug/qqmldebugtranslationclient_p.h @@ -41,6 +41,9 @@ #include "qqmldebugclient_p.h" +#include <QtCore/qvector.h> +#include <private/qqmldebugtranslationprotocol_p.h> + // // W A R N I N G // ------------- @@ -59,21 +62,14 @@ class QQmlDebugTranslationClient : public QQmlDebugClient Q_OBJECT public: - //needs to be in sync with QQmlDebugTranslationServiceImpl in qqmldebugtranslationservice.h - enum Command { - ChangeLanguage, - ChangeWarningColor, - ChangeElidedTextWarningString, - SetDebugTranslationServiceLogFile, - EnableElidedTextWarning, - DisableElidedTextWarning, - TestAllLanguages - }; - explicit QQmlDebugTranslationClient(QQmlDebugConnection *client); + ~QQmlDebugTranslationClient() = default; - virtual void messageReceived(const QByteArray &) override; - void triggerLanguage(const QUrl &url, const QString &locale); + virtual void messageReceived(const QByteArray &message) override; + bool languageChanged = false; + QVector<QQmlDebugTranslation::TranslationIssue> translationIssues; + QVector<QQmlDebugTranslation::QmlElement> qmlElements; + QVector<QQmlDebugTranslation::QmlState> qmlStates; }; QT_END_NAMESPACE diff --git a/src/qmldebug/qqmlpreviewclient.cpp b/src/qmldebug/qqmlpreviewclient.cpp index 60937b9cfd..abda548d01 100644 --- a/src/qmldebug/qqmlpreviewclient.cpp +++ b/src/qmldebug/qqmlpreviewclient.cpp @@ -129,11 +129,4 @@ void QQmlPreviewClient::triggerZoom(float factor) sendMessage(packet.data()); } -void QQmlPreviewClient::triggerLanguage(const QUrl &url, const QString &locale) -{ - QPacket packet(connection()->currentDataStreamVersion()); - packet << static_cast<qint8>(Language) << url << locale; - sendMessage(packet.data()); -} - QT_END_NAMESPACE diff --git a/src/qmldebug/qqmlpreviewclient_p.h b/src/qmldebug/qqmlpreviewclient_p.h index 65661613e9..78db399059 100644 --- a/src/qmldebug/qqmlpreviewclient_p.h +++ b/src/qmldebug/qqmlpreviewclient_p.h @@ -72,8 +72,7 @@ public: Directory, ClearCache, Zoom, - Fps, - Language + Fps }; struct FpsInfo { @@ -98,7 +97,6 @@ public: void triggerLoad(const QUrl &url); void triggerRerun(); void triggerZoom(float factor); - void triggerLanguage(const QUrl &url, const QString &locale); signals: void request(const QString &path); diff --git a/src/qmldebug/qv4debugclient_p.h b/src/qmldebug/qv4debugclient_p.h index fdcf4284c5..23760232dc 100644 --- a/src/qmldebug/qv4debugclient_p.h +++ b/src/qmldebug/qv4debugclient_p.h @@ -40,7 +40,7 @@ #ifndef QV4DEBUGCLIENT_P_H #define QV4DEBUGCLIENT_P_H -#include <QtQmlDebug/private/qqmldebugclient_p.h> +#include "qqmldebugclient_p.h" #include <QtCore/qjsonvalue.h> // |