- while (i.hasNext()) {
- i.next();
- item = new QTreeWidgetItem((QTreeWidget*)0, QStringList(i18n(i.key().toUtf8().data())));
- item->setIcon(0, folderIcon);
- item->setData(0, TypeRole, QString::number((int) EFFECT_FOLDER));
- item->setData(0, IdRole, i.value());
+ QStringList folderNames;
+ QDomNodeList groups = doc.documentElement().elementsByTagName("group");
+ for (int i = 0; i < groups.count(); i++) {
+ folderNames << groups.at(i).firstChild().firstChild().nodeValue();
+ }
+ for (int i = 0; i < topLevelItemCount(); i++) {
+ topLevelItem(i)->takeChildren();
+ QString currentName = topLevelItem(i)->text(0);
+ if (currentName != i18n("Misc") && currentName != i18n("Audio") && currentName != i18nc("Folder Name", "Custom") && !folderNames.contains(currentName)) {
+ takeTopLevelItem(i);
+ i--;
+ }
+ }
+
+ for (int i = 0; i < groups.count(); i++) {
+ item = findFolder(folderNames.at(i));
+ if (item) {
+ item->setData(0, IdRole, groups.at(i).toElement().attribute("list"));
+ } else {
+ item = new QTreeWidgetItem((QTreeWidget*)0, QStringList(folderNames.at(i)));
+ item->setIcon(0, folderIcon);
+ item->setData(0, TypeRole, QString::number((int) EFFECT_FOLDER));
+ item->setData(0, IdRole, groups.at(i).toElement().attribute("list"));
+ item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ insertTopLevelItem(0, item);
+ }