]> git.sesse.net Git - kdenlive/blobdiff - src/projectlistview.h
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / projectlistview.h
index 07f22ca66c0ebb7869a6df5b87220da55cf817df..e644be1bc7f1724174427faf92ac76cdc69f2f39 100644 (file)
  ***************************************************************************/
 
 
-#ifndef PRJECTLISTVIEW_H
-#define PRJECTLISTVIEW_H
+#ifndef PROJECTLISTVIEW_H
+#define PROJECTLISTVIEW_H
 
 #include <QTreeWidget>
 #include <QContextMenuEvent>
+#include <QPainter>
+#include <QStyledItemDelegate>
 
-class ProjectListView : public QTreeWidget
+class DocClipBase;
+
+
+class ItemDelegate: public QStyledItemDelegate
 {
-  Q_OBJECT
-  
-  public:
-    ProjectListView(QWidget *parent=0);
-    virtual ~ProjectListView();
+public:
+    enum ItemRole {
+        NameRole = Qt::UserRole,
+        DurationRole,
+        UsageRole
+    };
+
+    ItemDelegate(QAbstractItemView* parent = 0)
+        : QStyledItemDelegate(parent)
+    {
+    }
+
+    /*void drawFocus(QPainter *, const QStyleOptionViewItem &, const QRect &) const {
+    }*/
 
-  protected:
-    virtual void contextMenuEvent ( QContextMenuEvent * event );
+    void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
+};
+
+class ProjectListView : public QTreeWidget
+{
+    Q_OBJECT
 
-  public slots:
+public:
+    ProjectListView(QWidget *parent = 0);
+    ~ProjectListView();
+    void processLayout();
+    void updateStyleSheet();
 
+protected:
+    void contextMenuEvent(QContextMenuEvent * event);
+    void mouseDoubleClickEvent(QMouseEvent * event);
+    void mousePressEvent(QMouseEvent *event);
+    void mouseReleaseEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
+    void dropEvent(QDropEvent *event);
+    QStringList mimeTypes() const;
+    Qt::DropActions supportedDropActions() const;
+    void dragLeaveEvent(QDragLeaveEvent *);
 
-  private:
+    /** @brief Filters key events to make sure user can expand items with + / -. */
+    bool eventFilter(QObject *obj, QEvent *ev);
 
+private:
+    bool m_dragStarted;
+    QPoint m_DragStartPosition;
 
-  private slots:
+private slots:
+    void configureColumns(const QPoint& pos);
+    void slotCollapsed(QTreeWidgetItem *item);
+    void slotExpanded(QTreeWidgetItem *item);
 
-  signals:
+signals:
     void requestMenu(const QPoint &, QTreeWidgetItem *);
+    void addClip();
+    void addClip(const QList <QUrl> &, const QString &, const QString &);
+    void showProperties(DocClipBase *);
+    void focusMonitor(bool forceRefresh);
+    void pauseMonitor();
+    void addClipCut(const QString&, int, int);
+    void projectModified();
 };
 
 #endif