[Interest] Reading trees from QSettings

Sensei senseiwa at gmail.com
Thu Aug 30 13:03:01 CEST 2012


Hi again!

As you remember, I was playing with QTreeWidget items, now I'd like to 
write and read the tree (a strict tree) from QSettings.

I can write the tree easily, for example the following tree has a file, 
and a folder; the folder has a file inside.

[Root]
item\1\name=New File
item\2\name=New Folder
item\size=2

[New%20Folder]
item\1\name=aaaa
item\size=1


As I need to recreate files and folders, I need to check, for every item 
in a group, if there exists a group with the same name. If so, then it's 
a folder, a file otherwise.

But, as you see from my output,  it fails the check:


root is 0x104d7a470
nodes is not empty
reading size 2
appending to Root (0x104d7a470) file New File
appending to Root (0x104d7a470) file New Folder



I am using the following (s being a QSettings):



             if (s.childGroups().contains(name))
             {
                 qWarning("appending to %s (%p) folder %s", 
qPrintable(target->data(0, 0).toString()), target, qPrintable(name));
                 item = new QTreeWidgetItem(target, QStringList(name), 1);
                 item->setFlags(item->flags() | Qt::ItemIsEditable);
                 nodes.push_back(item);
             }
             else
             {
                 qWarning("appending to %s (%p) file %s", 
qPrintable(target->data(0, 0).toString()), target, qPrintable(name));
                 item = new QTreeWidgetItem(target, QStringList(name), 2);
                 item->setFlags(item->flags() & (~Qt::ItemIsDropEnabled) 
| Qt::ItemIsEditable);
             }


Is there a "safe" way of querying QSettings for an existing group?



Thanks & Cheers!



More information about the Interest mailing list