diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-06-01 16:19:57 (GMT) |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2011-06-01 19:34:43 (GMT) |
commit | a107d3e22e128ec343d82f902de4c6ee0e33435f (patch) | |
tree | 6dde67241aa06190ce3353d6dccef50c37ec1245 /tools/linguist/shared | |
parent | ad23439b7e112aa8a36f34e7b16224dcab742147 (diff) | |
download | Qt-a107d3e22e128ec343d82f902de4c6ee0e33435f.zip Qt-a107d3e22e128ec343d82f902de4c6ee0e33435f.tar.gz Qt-a107d3e22e128ec343d82f902de4c6ee0e33435f.tar.bz2 |
optimization: make the Translator::find() api index-based
Diffstat (limited to 'tools/linguist/shared')
-rw-r--r-- | tools/linguist/shared/translator.cpp | 16 | ||||
-rw-r--r-- | tools/linguist/shared/translator.h | 5 |
2 files changed, 11 insertions, 10 deletions
diff --git a/tools/linguist/shared/translator.cpp b/tools/linguist/shared/translator.cpp index 2a15fe7..91a5a26 100644 --- a/tools/linguist/shared/translator.cpp +++ b/tools/linguist/shared/translator.cpp @@ -346,7 +346,7 @@ int Translator::find(const TranslatorMessage &msg) const return -1; } -TranslatorMessage Translator::find(const QString &context, +int Translator::find(const QString &context, const QString &comment, const TranslatorMessage::References &refs) const { if (!refs.isEmpty()) { @@ -355,10 +355,10 @@ TranslatorMessage Translator::find(const QString &context, foreach (const TranslatorMessage::Reference &itref, it->allReferences()) foreach (const TranslatorMessage::Reference &ref, refs) if (itref == ref) - return *it; + return it - m_messages.constBegin(); } } - return TranslatorMessage(); + return -1; } bool Translator::contains(const QString &context) const @@ -369,12 +369,12 @@ bool Translator::contains(const QString &context) const return false; } -TranslatorMessage Translator::find(const QString &context) const +int Translator::find(const QString &context) const { - foreach (const TranslatorMessage &msg, m_messages) - if (msg.context() == context && msg.sourceText().isEmpty() && msg.id().isEmpty()) - return msg; - return TranslatorMessage(); + for (TMM::ConstIterator it = m_messages.constBegin(); it != m_messages.constEnd(); ++it) + if (it->context() == context && it->sourceText().isEmpty() && it->id().isEmpty()) + return it - m_messages.constBegin(); + return -1; } void Translator::stripObsoleteMessages() diff --git a/tools/linguist/shared/translator.h b/tools/linguist/shared/translator.h index b9bc94c..41f0396 100644 --- a/tools/linguist/shared/translator.h +++ b/tools/linguist/shared/translator.h @@ -127,11 +127,11 @@ public: bool save(const QString &filename, ConversionData &err, const QString &format /* = "auto" */) const; int find(const TranslatorMessage &msg) const; - TranslatorMessage find(const QString &context, + int find(const QString &context, const QString &comment, const TranslatorMessage::References &refs) const; bool contains(const QString &context) const; - TranslatorMessage find(const QString &context) const; + int find(const QString &context) const; void replaceSorted(const TranslatorMessage &msg); void extend(const TranslatorMessage &msg); // Only for single-location messages @@ -178,6 +178,7 @@ public: int messageCount() const { return m_messages.size(); } TranslatorMessage &message(int i) { return m_messages[i]; } const TranslatorMessage &message(int i) const { return m_messages.at(i); } + const TranslatorMessage &constMessage(int i) const { return m_messages.at(i); } void dump() const; // additional file format specific data |