summaryrefslogtreecommitdiffstats
path: root/tools/linguist/shared
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-06-01 16:19:57 (GMT)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-06-01 19:34:43 (GMT)
commita107d3e22e128ec343d82f902de4c6ee0e33435f (patch)
tree6dde67241aa06190ce3353d6dccef50c37ec1245 /tools/linguist/shared
parentad23439b7e112aa8a36f34e7b16224dcab742147 (diff)
downloadQt-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.cpp16
-rw-r--r--tools/linguist/shared/translator.h5
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