Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
translatormessage.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4
#
include
"translatormessage.h"
5
6
#
include
<
qplatformdefs
.
h
>
7
8
#
include
<
QDataStream
>
9
#
include
<
QDebug
>
10
11
#
include
<
stdlib
.
h
>
12
13
14
QT_BEGIN_NAMESPACE
15
16
TranslatorMessage::TranslatorMessage()
17
: m_lineNumber(-1), m_type(Unfinished), m_plural(
false
)
18
{
19
}
20
21
TranslatorMessage
::
TranslatorMessage
(
const
QString &context,
22
const
QString &sourceText,
const
QString &comment,
23
const
QString &userData,
24
const
QString &fileName,
int
lineNumber,
const
QStringList &translations,
25
Type
type,
bool
plural)
26
:
m_context
(
context
),
m_sourcetext
(
sourceText
),
m_comment
(
comment
),
27
m_userData
(
userData
),
28
m_translations
(
translations
),
m_fileName
(
fileName
), m_lineNumber(lineNumber),
29
m_type(type), m_plural(plural)
30
{
31
}
32
33
void
TranslatorMessage
::
addReference
(
const
QString &fileName,
int
lineNumber,
int
startOffset,
int
endOffset)
34
{
35
if
(m_fileName.isEmpty()) {
36
m_fileName = fileName;
37
m_lineNumber = lineNumber;
38
m_startOffset = startOffset;
39
m_endOffset = endOffset;
40
}
else
{
41
m_extraRefs.append(
Reference
(fileName, lineNumber, startOffset, endOffset));
42
}
43
}
44
45
void
TranslatorMessage
::
addReferenceUniq
(
const
QString &fileName,
int
lineNumber,
int
startOffset,
int
endOffset)
46
{
47
if
(m_fileName.isEmpty()) {
48
m_fileName = fileName;
49
m_lineNumber = lineNumber;
50
m_startOffset = startOffset;
51
m_endOffset = endOffset;
52
}
else
{
53
if
(fileName == m_fileName && lineNumber == m_lineNumber && startOffset == m_startOffset)
54
return
;
55
if
(!m_extraRefs.isEmpty()) {
// Rather common case, so special-case it
56
for
(
const
Reference &ref : std::as_const(m_extraRefs)) {
57
if
(fileName == ref.fileName() && lineNumber == ref.lineNumber()
58
&& startOffset == ref.startOffset())
59
return
;
60
}
61
}
62
m_extraRefs.append(
Reference
(fileName, lineNumber, startOffset, endOffset));
63
}
64
}
65
66
void
TranslatorMessage
::
clearReferences
()
67
{
68
m_fileName.clear();
69
m_lineNumber = -1;
70
m_extraRefs.clear();
71
}
72
73
void
TranslatorMessage
::
setReferences
(
const
TranslatorMessage
::
References
&refs0)
74
{
75
if
(!refs0.isEmpty()) {
76
References
refs = refs0;
77
const
Reference
&ref = refs.takeFirst();
78
m_fileName = ref.fileName();
79
m_lineNumber = ref
.
lineNumber
(
)
;
80
m_startOffset = ref
.
startOffset
(
)
;
81
m_endOffset = ref
.
endOffset
(
)
;
82
m_extraRefs = refs;
83
}
else
{
84
clearReferences
(
)
;
85
}
86
}
87
88
const
TranslatorMessage
::
References
TranslatorMessage
::
allReferences
()
const
89
{
90
References
refs;
91
if
(!m_fileName.isEmpty()) {
92
refs.append(Reference(m_fileName, m_lineNumber, m_startOffset, m_endOffset));
93
refs += m_extraRefs;
94
}
95
return
refs;
96
}
97
98
99
bool
TranslatorMessage
::
hasExtra
(
const
QString &key)
const
100
{
101
return
m_extra.contains(key);
102
}
103
104
QString
TranslatorMessage
::
extra
(
const
QString &key)
const
105
{
106
return
m_extra[key];
107
}
108
109
void
TranslatorMessage
::
setExtra
(
const
QString &key,
const
QString &value)
110
{
111
m_extra[key] = value;
112
}
113
114
void
TranslatorMessage
::
unsetExtra
(
const
QString &key)
115
{
116
m_extra.remove(key);
117
}
118
119
void
TranslatorMessage
::
dump
()
const
120
{
121
qDebug()
122
<<
"\nId : "
<< m_id
123
<<
"\nContext : "
<< m_context
124
<<
"\nSource : "
<< m_sourcetext
125
<<
"\nComment : "
<< m_comment
126
<<
"\nUserData : "
<< m_userData
127
<<
"\nExtraComment : "
<< m_extraComment
128
<<
"\nTranslatorComment : "
<< m_translatorComment
129
<<
"\nTranslations : "
<< m_translations
130
<<
"\nFileName : "
<< m_fileName
131
<<
"\nLineNumber : "
<< m_lineNumber
132
<<
"\nType : "
<< m_type
133
<<
"\nPlural : "
<< m_plural
134
<<
"\nExtra : "
<< m_extra;
135
}
136
137
138
QT_END_NAMESPACE
TranslatorMessage::Reference
Definition
translatormessage.h:22
TranslatorMessage::Reference::startOffset
int startOffset() const
Definition
translatormessage.h:36
TranslatorMessage::Reference::endOffset
int endOffset() const
Definition
translatormessage.h:37
TranslatorMessage::Reference::lineNumber
int lineNumber() const
Definition
translatormessage.h:35
TranslatorMessage
Definition
translatormessage.h:17
TranslatorMessage::addReferenceUniq
void addReferenceUniq(const QString &fileName, int lineNumber, int startOffset, int endOffset)
Definition
translatormessage.cpp:45
TranslatorMessage::Type
Type
Definition
translatormessage.h:19
TranslatorMessage::TranslatorMessage
TranslatorMessage(const QString &context, const QString &sourceText, const QString &comment, const QString &userData, const QString &fileName, int lineNumber, const QStringList &translations=QStringList(), Type type=Unfinished, bool plural=false)
Definition
translatormessage.cpp:21
TranslatorMessage::dump
void dump() const
Definition
translatormessage.cpp:119
TranslatorMessage::addReference
void addReference(const QString &fileName, int lineNumber, int startOffset, int endOffset)
Definition
translatormessage.cpp:33
TranslatorMessage::clearReferences
void clearReferences()
Definition
translatormessage.cpp:66
TranslatorMessage::setReferences
void setReferences(const References &refs)
Definition
translatormessage.cpp:73
TranslatorMessage::extra
QString extra(const QString &ba) const
Definition
translatormessage.cpp:104
TranslatorMessage::setExtra
void setExtra(const QString &ba, const QString &var)
Definition
translatormessage.cpp:109
TranslatorMessage::unsetExtra
void unsetExtra(const QString &key)
Definition
translatormessage.cpp:114
TranslatorMessage::allReferences
const References allReferences() const
Definition
translatormessage.cpp:88
TranslatorMessage::References
QList< Reference > References
Definition
translatormessage.h:39
TranslatorMessage::hasExtra
bool hasExtra(const QString &ba) const
Definition
translatormessage.cpp:99
qttools
src
linguist
shared
translatormessage.cpp
Generated on
for Qt by
1.18.0