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
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
5
6#include <qplatformdefs.h>
7
8#include <QDataStream>
9#include <QDebug>
10
11#include <stdlib.h>
12
13
14QT_BEGIN_NAMESPACE
15
16TranslatorMessage::TranslatorMessage()
17 : m_lineNumber(-1), m_type(Unfinished), m_plural(false)
18{
19}
20
21TranslatorMessage::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)
28 m_translations(translations), m_fileName(fileName), m_lineNumber(lineNumber),
29 m_type(type), m_plural(plural)
30{
31}
32
33void 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
45void 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
67{
68 m_fileName.clear();
69 m_lineNumber = -1;
70 m_extraRefs.clear();
71}
72
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 {
85 }
86}
87
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
99bool TranslatorMessage::hasExtra(const QString &key) const
100{
101 return m_extra.contains(key);
102}
103
104QString TranslatorMessage::extra(const QString &key) const
105{
106 return m_extra[key];
107}
108
109void TranslatorMessage::setExtra(const QString &key, const QString &value)
110{
111 m_extra[key] = value;
112}
113
114void TranslatorMessage::unsetExtra(const QString &key)
115{
116 m_extra.remove(key);
117}
118
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
138QT_END_NAMESPACE
void addReferenceUniq(const QString &fileName, int lineNumber, int startOffset, int endOffset)
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)
void addReference(const QString &fileName, int lineNumber, int startOffset, int endOffset)
void setReferences(const References &refs)
QString extra(const QString &ba) const
void setExtra(const QString &ba, const QString &var)
void unsetExtra(const QString &key)
const References allReferences() const
QList< Reference > References
bool hasExtra(const QString &ba) const