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
recorddirectory.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
RECORDDIRECTORY_H
5
#
define
RECORDDIRECTORY_H
6
7
#
include
<
QHash
>
8
#
include
<
QMap
>
9
#
include
<
QSet
>
10
#
include
<
QString
>
11
12
#
include
<
map
>
13
#
include
<
memory
>
14
#
include
<
unordered_set
>
15
#
include
<
set
>
16
17
QT_BEGIN_NAMESPACE
18
19
class
TranslatorMessage;
20
21
using
namespace
Qt::StringLiterals;
22
23
extern
const
char
*
meta_id_key
;
24
struct
MessageItem
25
{
26
QString
sourceText
;
27
QString
context
;
28
QString
comment
;
29
QString
id
;
30
int
lineNo
= 0;
31
int
startOffset
= 0;
32
int
endOffset
= 0;
33
bool
plural
= 0;
34
bool
hasMetaId
= 0;
35
bool
operator
==(
const
MessageItem
&mi)
const
noexcept
36
{
37
return
sourceText == mi.sourceText && context == mi.context && comment == mi.comment;
38
}
39
};
40
41
struct
MsgPtrComp
42
{
43
bool
operator
()(
const
std
::shared_ptr<
MessageItem
> &lhs,
44
const
std
::shared_ptr<
MessageItem
> &rhs)
const
noexcept
45
{
46
if
(lhs->lineNo != rhs->lineNo)
47
return
lhs->lineNo < rhs->lineNo;
48
else
49
return
lhs->startOffset < rhs->endOffset;
50
}
51
};
52
53
QT_END_NAMESPACE
54
55
namespace
std
{
56
template
<>
57
struct
hash
<
MessageItem
>
58
{
59
std
::size_t
operator
()(
const
MessageItem
&key)
const
60
{
61
std
::size_t h1 = qHash(key.context);
62
std
::size_t h2 = qHash(key.sourceText);
63
std
::size_t h3 = qHash(key.comment);
64
return
h1 ^ (h2 << 1) ^ (h3 << 2);
65
}
66
};
67
}
// namespace std
68
69
QT_BEGIN_NAMESPACE
70
71
class
RecordDirectory
72
{
73
public
:
74
using
MsgLocations = QHash<QString, std::set<std::shared_ptr<MessageItem>, MsgPtrComp>>;
75
using
ErrorLocations = QHash<QString, QMap<
int
, QString>>;
76
77
void
recordMessage(
const
TranslatorMessage &msg);
78
QString id(
const
TranslatorMessage &msg)
const
;
79
void
recordExistingId(
const
QString &id);
80
void
recordError(
const
QString &file,
int
line,
const
QString &error);
81
void
recordNonSupported(
const
QString &file,
int
line) { m_nonSupporteds[file].insert(line); }
82
void
recordAddedLines(
const
QString &file,
int
fromLine,
int
addedLines);
83
bool
isNonSupported(
const
QString &file,
int
line)
const
84
{
85
return
m_nonSupporteds[file].contains(line);
86
}
87
int
addedLines(
const
QString &file,
int
line)
const
;
88
bool
containsFile(
const
QString &filename)
const
noexcept
;
89
const
MsgLocations &messageLocations()
const
noexcept
{
return
m_msgLocations; }
90
const
ErrorLocations &errors()
const
noexcept
{
return
m_errors; }
91
QString calculateId(
const
TranslatorMessage &msg)
const
;
92
;
93
94
private
:
95
std::unordered_set<MessageItem> m_messages;
96
MsgLocations m_msgLocations;
97
QHash<QString, QSet<
int
>> m_nonSupporteds;
98
ErrorLocations m_errors;
99
std::unordered_map<QString, std::map<
int
,
int
>> m_fileAddedLines;
100
std::unordered_set<QString> m_existingIds;
101
};
102
103
QT_END_NAMESPACE
104
105
#
endif
// RECORDDIRECTORY_H
ConversionData
Definition
translator.h:26
ConversionData::m_sourceIsUtf16
bool m_sourceIsUtf16
Definition
translator.h:44
FileTransformer
Definition
filetransformer.h:16
FileTransformer::transformTsFiles
bool transformTsFiles(const QStringList &translations, bool sortMessages)
Definition
filetransformer.cpp:365
FileTransformer::FileTransformer
FileTransformer(RecordDirectory &records, bool labels, bool quiet)
Definition
filetransformer.cpp:235
FileTransformer::transformUi
void transformUi()
Definition
filetransformer.cpp:240
FileTransformer::updateTsFiles
bool updateTsFiles(const QStringList &translations)
Definition
filetransformer.cpp:431
FileTransformer::otherExtensions
static const QSet< QString > otherExtensions
Definition
filetransformer.h:231
FileTransformer::transformSources
void transformSources()
Definition
filetransformer.cpp:279
FileTransformer::cppExtensions
static const QSet< QString > cppExtensions
Definition
filetransformer.h:227
FileTransformer::generateMetaIds
void generateMetaIds()
Definition
filetransformer.cpp:410
FileVerifier
Definition
fileverifier.h:17
FileVerifier::verifySources
void verifySources(const QStringList &sources, ConversionData &cd)
Definition
fileverifier.cpp:56
FileVerifier::FileVerifier
FileVerifier(const RecordDirectory &records, bool quiet)
Definition
fileverifier.cpp:18
FileVerifier::verifyTs
bool verifyTs(const QString &tsFile, QSet< QString > &transformedIds)
Definition
fileverifier.cpp:23
MessageItem
Definition
messagemodel.h:23
MessageItem::context
QString context
Definition
recorddirectory.h:27
MessageItem::id
QString id
Definition
recorddirectory.h:29
MessageItem::sourceText
QString sourceText
Definition
recorddirectory.h:26
MessageItem::lineNo
int lineNo
Definition
recorddirectory.h:30
MessageItem::endOffset
int endOffset
Definition
recorddirectory.h:32
MessageItem::plural
bool plural
Definition
recorddirectory.h:33
MessageItem::startOffset
int startOffset
Definition
recorddirectory.h:31
MessageItem::operator==
bool operator==(const MessageItem &mi) const noexcept
Definition
recorddirectory.h:35
MessageItem::hasMetaId
bool hasMetaId
Definition
recorddirectory.h:34
MessageItem::comment
QString comment
Definition
recorddirectory.h:28
TranslatorMessage
Definition
translatormessage.h:17
Translator
Definition
translator.h:79
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
Utils::readLines
QStringList readLines(const QString &filename)
Definition
utils.cpp:54
Utils::printOut
void printOut(const QString &out)
Definition
utils.cpp:22
Utils::printErr
void printErr(const QString &out)
Definition
utils.cpp:17
Utils::writeLines
void writeLines(const QString &filename, const QStringList &lines)
Definition
utils.cpp:65
Utils::getIndentation
QString getIndentation(const QString &line)
Definition
utils.cpp:43
Utils::getIncludeOptions
QMultiHash< QString, QString > getIncludeOptions(const QFileInfo &root, const QStringList &paths)
Definition
utils.cpp:27
qdesigner_internal::Utils
Definition
qdesigner_utils_p.h:526
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
meta_id_key
const char * meta_id_key
Definition
recorddirectory.cpp:11
main
int main(int argc, char *argv[])
[ctor_close]
Definition
src_corelib_animation_qpropertyanimation.cpp:100
MsgPtrComp
Definition
recorddirectory.h:42
MsgPtrComp::operator()
bool operator()(const std::shared_ptr< MessageItem > &lhs, const std::shared_ptr< MessageItem > &rhs) const noexcept
Definition
recorddirectory.h:43
std::hash< MessageItem >
Definition
recorddirectory.h:58
std::hash< MessageItem >::operator()
std::size_t operator()(const MessageItem &key) const
Definition
recorddirectory.h:59
qttools
src
linguist
ltext2id
recorddirectory.h
Generated on
for Qt by
1.18.0