[Solved] QList<QString> Probleme
Verfasst: 24. Mai 2006 09:18
Man sollte es nicht glauben, entweder ich habe in den 2 Jahren des Nichtproggens alles vergessen, oder .... weiss der Teufel
Jedefalls habe ich eine private Klasse, in der eine Stringliste mit möglichen Pfaden für die Translations angelegt wird, abrufbar mit translationDirPaths():
und benutze dann das pimpl Idiom:
Während ich mir in der private Klasse mit qDebug die Pfade ausgeben lassen kann, ist die Liste bei call in searchTranslations() leer.
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
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