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
qqmldebugtranslationprotocol_p.h
Go to the documentation of this file.
1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:critical reason:network-protocol
4
5#ifndef QQMLDEBUGTRANSLATIONPROTOCOL_P_H
6#define QQMLDEBUGTRANSLATIONPROTOCOL_P_H
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17#include <QtCore/qdatastream.h>
18#include <QtCore/qbuffer.h>
19#include <QtCore/qurl.h>
20#include <QtCore/qobjectdefs.h>
21#include <QtCore/qmetaobject.h>
22#include <QtCore/private/qglobal_p.h>
23#include <tuple>
24
25QT_BEGIN_NAMESPACE
26
28
29enum class Request {
37 // following are obsolete, just provided for compilation compatibility
39};
40
41enum class Reply {
47 // following are obsolete, just provided for compilation compatibility
50};
51
52inline QDataStream &operator<<(QDataStream &ds, Request r)
53{
54 return ds << int(r);
55}
56
57inline QDataStream &operator>>(QDataStream &ds, Request &r)
58{
59 int i;
60 ds >> i;
61 r = Request(i);
62 return ds;
63}
64
65inline QDataStream &operator<<(QDataStream &ds, Reply r)
66{
67 return ds << int(r);
68}
69
70inline QDataStream &operator>>(QDataStream &ds, Reply &r)
71{
72 int i;
73 ds >> i;
74 r = Reply(i);
75 return ds;
76}
77
78inline QByteArray createChangeLanguageRequest(QDataStream &packet, const QUrl &url,
79 const QString &locale)
80{
81 packet << Request::ChangeLanguage << url << locale;
82 return qobject_cast<QBuffer *>(packet.device())->data();
83}
84
85inline QByteArray createChangeStateRequest(QDataStream &packet, const QString &state)
86{
87 packet << Request::ChangeState << state;
88 return qobject_cast<QBuffer *>(packet.device())->data();
89}
90
92{
94 return qobject_cast<QBuffer *>(packet.device())->data();
95}
96
97inline QByteArray createTranslationIssuesRequest(QDataStream &packet)
98{
100 return qobject_cast<QBuffer *>(packet.device())->data();
101}
102
104{
106 return qobject_cast<QBuffer *>(packet.device())->data();
107}
108
109inline QByteArray createStateListRequest(QDataStream &packet)
110{
111 packet << Request::StateList;
112 return qobject_cast<QBuffer *>(packet.device())->data();
113}
114
115inline QByteArray createWatchTextElidesRequest(QDataStream &packet)
116{
117 packet << Request::WatchTextElides;
118 return qobject_cast<QBuffer *>(packet.device())->data();
119}
120
122{
124 return qobject_cast<QBuffer *>(packet.device())->data();
125}
126
128{
129public:
130 friend QDataStream &operator>>(QDataStream &stream, CodeMarker &codeMarker)
131 {
132 return stream >> codeMarker.url
133 >> codeMarker.line
134 >> codeMarker.column;
135 }
136
137 friend QDataStream &operator<<(QDataStream &stream, const CodeMarker &codeMarker)
138 {
139 return stream << codeMarker.url
140 << codeMarker.line
141 << codeMarker.column;
142 }
143
144 friend bool operator<(const CodeMarker &first, const CodeMarker &second)
145 {
146 return std::tie(first.url, first.line, first.column)
147 < std::tie(second.url, second.line, second.column);
148 }
149
150 friend bool operator==(const CodeMarker &first, const CodeMarker &second)
151 {
152 return first.line == second.line
153 && first.column == second.column
154 && first.url == second.url;
155 }
156
158 int line = -1;
159 int column = -1;
160};
162{
163public:
164 enum class Type{
167 };
168
169 friend QDataStream &operator>>(QDataStream &stream, TranslationIssue &issue)
170 {
171 int t;
172 stream >> issue.codeMarker
173 >> issue.language
174 >> t;
175 issue.type = Type(t);
176 return stream;
177 }
178
179 friend QDataStream &operator<<(QDataStream &stream, const TranslationIssue &issue)
180 {
181 return stream << issue.codeMarker
182 << issue.language
183 << int(issue.type);
184 }
185
186 friend bool operator==(const TranslationIssue &first, const TranslationIssue &second)
187 {
188 return first.type == second.type
189 && first.language == second.language
190 && first.codeMarker == second.codeMarker;
191 }
192
194 {
195 QString debugString(QLatin1String(
196 "TranslationIssue(type=%1, line=%2, column=%3, url=%4, language=%5)"));
197 return debugString.arg(type == TranslationIssue::Type::Missing ? QLatin1String("Missing")
198 : QLatin1String("Elided"),
199 QString::number(codeMarker.line), QString::number(codeMarker.column),
200 codeMarker.url.toString(), language);
201 }
202
206};
208{
209public:
210 QmlElement() = default;
211
212 friend QDataStream &operator>>(QDataStream &stream, QmlElement &qmlElement)
213 {
214 return stream >> qmlElement.codeMarker >> qmlElement.elementId >> qmlElement.elementType
215 >> qmlElement.propertyName >> qmlElement.translationId >> qmlElement.translatedText
216 >> qmlElement.fontFamily >> qmlElement.fontPointSize >> qmlElement.fontPixelSize
217 >> qmlElement.fontStyleName >> qmlElement.horizontalAlignment
218 >> qmlElement.verticalAlignment >> qmlElement.stateName;
219 }
220
221 friend QDataStream &operator<<(QDataStream &stream, const QmlElement &qmlElement)
222 {
223 return stream << qmlElement.codeMarker << qmlElement.elementId << qmlElement.elementType
224 << qmlElement.propertyName << qmlElement.translationId
225 << qmlElement.translatedText << qmlElement.fontFamily
226 << qmlElement.fontPointSize << qmlElement.fontPixelSize
227 << qmlElement.fontStyleName << qmlElement.horizontalAlignment
228 << qmlElement.verticalAlignment << qmlElement.stateName;
229 }
230
244};
245
247{
248public:
249 QmlState() = default;
250
251 friend QDataStream &operator>>(QDataStream &stream, QmlState &qmlState)
252 {
253 return stream >> qmlState.name;
254 }
255
256 friend QDataStream &operator<<(QDataStream &stream, const QmlState &qmlState)
257 {
258 return stream << qmlState.name;
259 }
260
262};
263}
264
265QT_END_NAMESPACE
266
267#endif // QQMLDEBUGTRANSLATIONPROTOCOL_P_H
friend bool operator==(const CodeMarker &first, const CodeMarker &second)
friend bool operator<(const CodeMarker &first, const CodeMarker &second)
friend QDataStream & operator<<(QDataStream &stream, const CodeMarker &codeMarker)
friend QDataStream & operator>>(QDataStream &stream, CodeMarker &codeMarker)
friend QDataStream & operator<<(QDataStream &stream, const QmlElement &qmlElement)
friend QDataStream & operator>>(QDataStream &stream, QmlElement &qmlElement)
friend QDataStream & operator>>(QDataStream &stream, QmlState &qmlState)
friend QDataStream & operator<<(QDataStream &stream, const QmlState &qmlState)
friend bool operator==(const TranslationIssue &first, const TranslationIssue &second)
friend QDataStream & operator>>(QDataStream &stream, TranslationIssue &issue)
friend QDataStream & operator<<(QDataStream &stream, const TranslationIssue &issue)
QByteArray createChangeStateRequest(QDataStream &packet, const QString &state)
QByteArray createChangeLanguageRequest(QDataStream &packet, const QUrl &url, const QString &locale)
QByteArray createWatchTextElidesRequest(QDataStream &packet)
QByteArray createTranslationIssuesRequest(QDataStream &packet)
QByteArray createTranslatableTextOccurrencesRequest(QDataStream &packet)
QDataStream & operator>>(QDataStream &ds, Request &r)
QByteArray createDisableWatchTextElidesRequest(QDataStream &packet)
QDataStream & operator<<(QDataStream &ds, Request r)
QByteArray createStateListRequest(QDataStream &packet)
QByteArray createMissingTranslationsRequest(QDataStream &packet)
QDataStream & operator>>(QDataStream &ds, Reply &r)
QDataStream & operator<<(QDataStream &ds, Reply r)