***************************************************************************/
-#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 );
- virtual void mouseDoubleClickEvent ( QMouseEvent * 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