void Translator::insert(int idx, const TranslatorMessage &msg)
{
- addIndex(idx, msg);
+ if (m_indexOk) {
+ if (idx == m_messages.count())
+ addIndex(idx, msg);
+ else
+ m_indexOk = false;
+ }
m_messages.insert(idx, msg);
}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="es_ES">
+<context>
+ <name>a</name>
+ <message>
+ <location filename="a.cpp" line="193"/>
+ <source>Second String</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="a.cpp" line="380"/>
+ <source>Duplicated String</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="es_ES">
+<context>
+ <name>a</name>
+ <message>
+ <location filename="a.cpp" line="93"/>
+ <source>First String</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="a.cpp" line="380"/>
+ <source>Duplicated String</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="es_ES">
+<context>
+ <name>a</name>
+ <message>
+ <location filename="a.cpp" line="93"/>
+ <source>First String</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="a.cpp" line="193"/>
+ <source>Second String</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="a.cpp" line="380"/>
+ <source>Duplicated String</source>
+ <translation></translation>
+ </message>
+</context>
+</TS>
void chains_data();
void chains();
#endif
+ void merge();
private:
void doWait(QProcess *cvt, int stage);
convertRoundtrip(fileName, stations, args);
}
+void tst_lconvert::merge()
+{
+ QProcess cvt;
+ QStringList args;
+ args << (dataDir + "idxmerge.ts") << (dataDir + "idxmerge-add.ts");
+ cvt.start(binDir + "/lconvert", args, QIODevice::ReadWrite | QIODevice::Text);
+ doWait(&cvt, 1);
+ if (!QTest::currentTestFailed())
+ doCompare(&cvt, dataDir + "idxmerge.ts.out");
+}
+
QTEST_APPLESS_MAIN(tst_lconvert)
#include "tst_lconvert.moc"