]> git.sesse.net Git - kdenlive/blobdiff - src/effectslistview.h
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / effectslistview.h
index 7050ac310a28d94b9ff62cdbe145150a3256df10..ab84655407d624869e88a257976248b73585093e 100644 (file)
  ***************************************************************************/
 
 
-#ifndef EFFECTLISTVIEW_H
-#define EFFECTLISTVIEW_H
+#ifndef EFFECTSLISTVIEW_H
+#define EFFECTSLISTVIEW_H
 
 #include <KIcon>
 
 #include "ui_effectlist_ui.h"
-#include "effectslist.h"
+#include "gentime.h"
 
-class EffectsListView : public QWidget
+#include <QDomElement>
+#include <QFocusEvent>
+
+class EffectsList;
+class EffectsListWidget;
+class QTreeWidget;
+class KActionCategory;
+
+/**
+ * @class EffectsListView
+ * @brief Manages the controls for the treewidget containing the effects.
+ * @author Jean-Baptiste Mardelle
+ */
+
+class EffectsListView : public QWidget, public Ui::EffectList_UI
 {
-  Q_OBJECT
-  
-  public:
-    EffectsListView(EffectsList *audioEffectList, EffectsList *videoEffectList, EffectsList *customEffectList, QWidget *parent=0);
-    KListWidget *listView(); 
-
-  private:
-    Ui::EffectList_UI ui;
-    EffectsList *m_audioList;
-    EffectsList *m_videoList;
-    EffectsList *m_customList;
-
-  private slots:
-     void initList();
-    void slotDisplayInfo();
-
-  public slots:
+    Q_OBJECT
+
+public:
+    explicit EffectsListView(QWidget *parent = 0);
+
+    /** @brief Re-initializes the list of effects. */
+    void reloadEffectList(QMenu *effectsMenu, KActionCategory *effectActions);
+    QMenu* getEffectsMenu();
+    //void slotAddEffect(GenTime pos, int track, QString name);
+    
+    /** @brief Palette was changed, update styles. */
+    void updatePalette();
+
+private:
+    EffectsListWidget *m_effectsList;
+
+private slots:
+    /** @brief Applies the type filter to the effect list.
+    * @param pos Index of the combo box; where 0 = All, 1 = Video, 2 = Audio, 3 = Custom */
+    void filterList(int pos);
+
+    /** @brief Updates the info panel to match the selected effect. */
+    void slotUpdateInfo();
+
+    /** @brief Toggles the info panel's visibility. */
+    void showInfoPanel();
+
+    /** @brief Emits addEffect signal for the selected effect. */
+    void slotEffectSelected();
+
+    /** @brief Removes the XML file for the selected effect.
+    *
+    * Only used for custom effects */
+    void slotRemoveEffect();
+
+    /** @brief Makes sure the item fits the type filter.
+    * @param item Current item
+    * @param hidden Hidden or not
+    *
+    * This is necessary to make the search obey to the type filter.
+    * Called when the visibility of this item was changed by searching */
+    void slotUpdateSearch(QTreeWidgetItem *item, bool hidden);
+
+    /** @brief Expands folders that match our search.
+    * @param text Current search string */
+    void slotAutoExpand(const QString &text);
+
+signals:
+    void addEffect(const QDomElement&);
+    void reloadEffects();
 };
 
 #endif