From: <j-...@us...> - 2010-06-30 14:42:26
|
Revision: 4560 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=4560&view=rev Author: j-b-m Date: 2010-06-30 14:42:17 +0000 (Wed, 30 Jun 2010) Log Message: ----------- Fix effects folders closed when adding / removing an effect: http://www.kdenlive.org:80/mantis/view.php?id=1676 Modified Paths: -------------- trunk/kdenlive/src/effectslistwidget.cpp Modified: trunk/kdenlive/src/effectslistwidget.cpp =================================================================== --- trunk/kdenlive/src/effectslistwidget.cpp 2010-06-29 20:40:19 UTC (rev 4559) +++ trunk/kdenlive/src/effectslistwidget.cpp 2010-06-30 14:42:17 UTC (rev 4560) @@ -82,7 +82,6 @@ current = currentItem()->text(0); if (currentItem()->parent()) currentFolder = currentItem()->parent()->text(0); } - clear(); QString effectName; QStringList effectInfo; @@ -97,9 +96,23 @@ doc.setContent(&file, false); file.close(); QList <QTreeWidgetItem *> folders; + QStringList folderNames; QDomNodeList groups = doc.documentElement().elementsByTagName("group"); for (int i = 0; i < groups.count(); i++) { - item = new QTreeWidgetItem((QTreeWidget*)0, QStringList(groups.at(i).firstChild().firstChild().nodeValue())); + folderNames << groups.at(i).firstChild().firstChild().nodeValue(); + } + for (int i = 0; i < topLevelItemCount(); i++) { + topLevelItem(i)->takeChildren(); + if (!folderNames.contains(topLevelItem(i)->text(0))) { + takeTopLevelItem(i); + i--; + } + } + + for (int i = 0; i < groups.count(); i++) { + QList<QTreeWidgetItem *> result = findItems(folderNames.at(i), Qt::MatchExactly); + if (!result.isEmpty()) item = result.at(0); + 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")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |