]> git.sesse.net Git - kdenlive/blobdiff - src/effectslistwidget.cpp
- Add myself to the authors :).
[kdenlive] / src / effectslistwidget.cpp
index 96ea03270c5a9b59856663d5360dd05874d3f366..6f2641cada67e6acefafc2514e0f9bfca79657bc 100644 (file)
 #include "effectslist.h"
 #include "mainwindow.h"
 
-#include "KDebug"
+#include <KDebug>
+#include <KStandardDirs>
 
-#include "QApplication"
-#include "QMouseEvent"
+#include <QApplication>
+#include <QMouseEvent>
 #include <QMenu>
 
 
@@ -37,6 +38,7 @@ static const int EFFECT_FOLDER = 4;
 const int TypeRole = Qt::UserRole;
 const int IdRole = TypeRole + 1;
 
+
 EffectsListWidget::EffectsListWidget(QMenu *menu, QWidget *parent) :
         QTreeWidget(parent),
         m_menu(menu)
@@ -45,17 +47,29 @@ EffectsListWidget::EffectsListWidget(QMenu *menu, QWidget *parent) :
     //setDragDropMode(QAbstractItemView::DragDrop);
     setColumnCount(1);
     setDropIndicatorShown(true);
-    setAlternatingRowColors(true);
+    //setAlternatingRowColors(true);
     setDragEnabled(true);
     setAcceptDrops(true);
     setHeaderHidden(true);
+    setFrameShape(QFrame::NoFrame);
+    setAutoFillBackground(false);
+    setRootIsDecorated(false);
+    QPalette p = palette();
+    p.setBrush(QPalette::Base, Qt::NoBrush);
+    setPalette(p);
     initList();
+    connect(this, SIGNAL(activated(const QModelIndex &)), this, SLOT(slotExpandItem(const QModelIndex &)));
 }
 
 EffectsListWidget::~EffectsListWidget()
 {
 }
 
+void EffectsListWidget::slotExpandItem(const QModelIndex & index)
+{
+    setExpanded(index, !isExpanded(index));
+}
+
 void EffectsListWidget::initList()
 {
     clear();
@@ -68,20 +82,21 @@ void EffectsListWidget::initList()
     KIcon customIcon("kdenlive-custom-effect");
     KIcon folderIcon("folder");
 
-    KSharedConfigPtr config = KSharedConfig::openConfig("kdenliveeffectscategoryrc");
-    KConfigGroup transConfig(config, "Category");
-    // read the entries
-    QMap< QString, QString > profiles = transConfig.entryMap();
-    QMapIterator<QString, QString> i(profiles);
+    QString effectCategory = KStandardDirs::locate("config", "kdenliveeffectscategory.rc");
+    QDomDocument doc;
+    QFile file(effectCategory);
+    doc.setContent(&file, false);
+    file.close();
     QList <QTreeWidgetItem *> folders;
-    while (i.hasNext()) {
-        i.next();
-        item = new QTreeWidgetItem((QTreeWidget*)0, QStringList(i18n(i.key().toUtf8().data())));
+    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()));
         item->setIcon(0, folderIcon);
         item->setData(0, TypeRole, QString::number((int) EFFECT_FOLDER));
-        item->setData(0, IdRole, i.value());
+        item->setData(0, IdRole, groups.at(i).toElement().attribute("list"));
         folders.append(item);
     }
+
     QTreeWidgetItem *misc = new QTreeWidgetItem((QTreeWidget*)0, QStringList(i18n("Misc")));
     misc->setIcon(0, folderIcon);
     misc->setData(0, TypeRole, QString::number((int) EFFECT_FOLDER));