X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fprojectlistview.h;h=e644be1bc7f1724174427faf92ac76cdc69f2f39;hb=56aee6aedeeed3efd10ada8fe3c229eddc01ef05;hp=cc9be0db0496df429600057af2ad16092a07366c;hpb=cd85961a9520f2f3c909e889dacd8de539468b89;p=kdenlive diff --git a/src/projectlistview.h b/src/projectlistview.h index cc9be0db..e644be1b 100644 --- a/src/projectlistview.h +++ b/src/projectlistview.h @@ -24,31 +24,54 @@ #include #include #include +#include class DocClipBase; -class KUrl; -class ProjectListView : public QTreeWidget { +class ItemDelegate: public QStyledItemDelegate +{ +public: + enum ItemRole { + NameRole = Qt::UserRole, + DurationRole, + UsageRole + }; + + ItemDelegate(QAbstractItemView* parent = 0) + : QStyledItemDelegate(parent) + { + } + + /*void drawFocus(QPainter *, const QStyleOptionViewItem &, const QRect &) const { + }*/ + + void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const; +}; + +class ProjectListView : public QTreeWidget +{ Q_OBJECT public: ProjectListView(QWidget *parent = 0); - virtual ~ProjectListView(); + ~ProjectListView(); + void processLayout(); + void updateStyleSheet(); protected: - virtual void contextMenuEvent(QContextMenuEvent * event); - virtual void mouseDoubleClickEvent(QMouseEvent * event); - virtual void mousePressEvent(QMouseEvent *event); - virtual void mouseMoveEvent(QMouseEvent *event); - virtual void dragEnterEvent(QDragEnterEvent *event); - virtual void dropEvent(QDropEvent *event); - virtual QStringList mimeTypes() const; - virtual Qt::DropActions supportedDropActions() const; - virtual void dragMoveEvent(QDragMoveEvent * event); - -public slots: + 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 *); + /** @brief Filters key events to make sure user can expand items with + / -. */ + bool eventFilter(QObject *obj, QEvent *ev); private: bool m_dragStarted; @@ -56,14 +79,18 @@ private: private slots: void configureColumns(const QPoint& pos); + void slotCollapsed(QTreeWidgetItem *item); + void slotExpanded(QTreeWidgetItem *item); signals: void requestMenu(const QPoint &, QTreeWidgetItem *); void addClip(); - void addClip(KUrl, const QString &); + void addClip(const QList &, const QString &, const QString &); void showProperties(DocClipBase *); - void focusMonitor(); + void focusMonitor(bool forceRefresh); void pauseMonitor(); + void addClipCut(const QString&, int, int); + void projectModified(); }; #endif