***************************************************************************/
-#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();
+ 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();
- public slots:
+ /** @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(QDomElement);
-
+signals:
+ void addEffect(const QDomElement&);
+ void reloadEffects();
};
#endif