#include <QTreeWidget>
#include <QDomElement>
+#include <KActionCategory>
+
class EffectsList;
+class KIcon;
class EffectsListWidget : public QTreeWidget
{
Q_OBJECT
public:
- explicit EffectsListWidget(QMenu *menu, QWidget *parent = 0);
+ explicit EffectsListWidget(QMenu *contextMenu, QWidget *parent = 0);
virtual ~EffectsListWidget();
const QDomElement currentEffect() const;
- QString currentInfo();
+ QString currentInfo() const;
const QDomElement itemEffect(QTreeWidgetItem *item) const;
- void initList();
+ void initList(QMenu *effectsMenu, KActionCategory *effectActions);
protected:
- virtual void mousePressEvent(QMouseEvent *event);
- virtual void mouseMoveEvent(QMouseEvent *event);
virtual void dragMoveEvent(QDragMoveEvent *event);
virtual void contextMenuEvent(QContextMenuEvent * event);
+ virtual QMimeData *mimeData(const QList<QTreeWidgetItem *> list) const;
+ virtual void keyPressEvent(QKeyEvent *e);
private:
- bool m_dragStarted;
- QPoint m_DragStartPosition;
QMenu *m_menu;
- /** @brief Returns the folder item with name equal to passed parameter. */
- QTreeWidgetItem *findFolder(const QString name);
+ /** @brief Returns the folder item whose name == @param name. */
+ QTreeWidgetItem *findFolder(const QString &name);
+
+ /** @brief Loads the effects from the given effectlist as item of this widget.
+ * @param effectlist effectlist containing the effects that should be loaded
+ * @param icon the icon to be used for the QTreeWidgetItems
+ * @param defaultFolder parent item which will be used by default
+ * @param folders list of folders which might be used instead for specific effects
+ * @param type type of the effects
+ * @param current name of selected effect before reload; if an effect name matches this one it will become selected
+ * @param found will be set to true if an effect name matches current
+ */
+ void loadEffects(const EffectsList *effectlist, KIcon icon, QTreeWidgetItem *defaultFolder, const QList<QTreeWidgetItem *> *folders, int type, const QString ¤t, bool *found);
+
private slots:
void slotExpandItem(const QModelIndex & index);
+
+signals:
+ void applyEffect(const QDomElement);
};
#endif