Jedefalls habe ich eine private Klasse, in der eine Stringliste mit möglichen Pfaden für die Translations angelegt wird, abrufbar mit translationDirPaths():
Code: Alles auswählen
class LanguageSupportPrivate
{
public:
LanguageSupportPrivate();
....
const QList<QString>& translationDirPaths() const { return m_translationDirPaths; }
private:
....
QList<QString> m_translationDirPaths;
};
LanguageSupportPrivate::LanguageSupportPrivate()
...
{
...
m_translationDirPaths << appDir.absolutePath() ...
QString qtEnv = transPathFromQtEnv();
m_translationDirPaths << qtEnv;
...
Code: Alles auswählen
LanguageSupport::LanguageSupport(QObject* parent, const QString& appName)
: QObject(parent),
...
m_pimp(new LanguageSupportPrivate)
{ ...}
bool LanguageSupport::searchTranslations()
{
qDebug() << "Search for Translation Files in " << m_pimp->translationDirPaths();
...
Ich gehe stillschweigend (imo sollte das Verhalten so sein) davon aus, dass bei QList<QString> foo << QString eine Kopie in die Liste eingefügt wird; falls nicht würde es erklären, warum ich kurz nach dem Einfügen den Listeninhalt noch habe, im Owner LanguageSupport jedoch dann nicht mehr (das Aufräumen benötigt ja etwas Zeit).
Wo ist mein Problem hier?
Vielen Dank
Olaf