Steh vor einem "kleinen" Entscheidungsproblem, vllt. kann mich jemand in die richtige Richtung schubsen...
Ich will meine Settings via XML speichern. Ginge ja eigentlich recht einfach, in dem man ein neues Settings-Format (+read/write-fkt-pointer) registriert.
Nur will ich teilweise die Settings als Attribute, teils auch als text() speichern.
Und das weiß ich jetzt nicht, wie ich das dem QSettings einbläuen kann, ist ja recht XML-spezifisch.
(Hintergrund: Ich will die Klasse dann auch einfach für Templates verwenden. Darin werden dann benötigte Plugins aufgelistet welche geladen werden. Jedes Plugin hat seine eigenen Einstellungen.
Diese will ich dann einfach erzeugen können ala "Config* getConfig(QDomElement e)" oder so.)
Gut, fange ich mal an was eigenes zu schreiben. Wollte vorab mal testen, wie ich z.B. ein QVariant aus nem String mache, welcher eine StringList repräsentiert. (QDomElement gibt ja überall nen QString zurück)
da fängt es schon an.
Code: Alles auswählen
QString str("Hello, world"); // So speichert QSettings die QStringList ab
QVariant v(str);
QStringList l = v.toStringList();
qDebug() << l.size();Ich könnte jetzt ja schreiben
Code: Alles auswählen
QStringList l = v.toString().split(", ");Langer Rede kurzer Sinn:
Ich müsste wohl die ganze QSettingsPrivate kopieren (und anpassen), um hier eine funktionierende Klasse bieten zu können. Das ist nicht der Sinn von OOP, kreiert Fehler, und nicht zuletzt kann es zu Lizenzrechtlichen Problemen führen (Auch LGPL verbietet Code-Veränderungen, wenn ich das mal kommerziell vertreiben wollte).
Soll ich also jetzt meine Settings einheitlich als Attribut oder text des QDomElement speichern, oder versuchen, die Probleme der korrekten Konvertierung ohne Spicken im Qt-Quelltext zu lösen?
Oder hat jemand noch nen anderen Tip? (Z.B. ne fertige (L)GPL-XMLSettings-Klasse
Besten Dank
Franz