#ifndef DOLPHINDETAILSVIEW_H
#define DOLPHINDETAILSVIEW_H
-#include <QListView>
+#include <dolphinview.h>
+#include <QTreeView>
-class DolphinView;
+class DolphinController;
/**
* @brief Represents the details view which shows the name, size,
- * date, permissions, owner and group of an item.
+ * date, permissions, owner and group of an item.
*
- * The width of the columns are automatically adjusted in a way
+ * The width of the columns is automatically adjusted in a way
* that full available width of the view is used by stretching the width
* of the name column.
- *
- * @author Peter Penz
*/
-class DolphinDetailsView : public QListView
+class DolphinDetailsView : public QTreeView
{
Q_OBJECT
public:
- DolphinDetailsView(DolphinView* parent);
+ explicit DolphinDetailsView(QWidget* parent, DolphinController* controller);
virtual ~DolphinDetailsView();
+
+protected:
+ virtual bool event(QEvent* event);
+ virtual QStyleOptionViewItem viewOptions() const;
+ virtual void contextMenuEvent(QContextMenuEvent* event);
+ virtual void mouseReleaseEvent(QMouseEvent* event);
+ virtual void dragEnterEvent(QDragEnterEvent* event);
+ virtual void dropEvent(QDropEvent* event);
+
+private slots:
+ /**
+ * Sets the sort indicator section of the header view
+ * corresponding to \a sorting.
+ */
+ void setSortIndicatorSection(DolphinView::Sorting sorting);
+
+ /**
+ * Sets the sort indicator order of the header view
+ * corresponding to \a sortOrder.
+ */
+ void setSortIndicatorOrder(Qt::SortOrder sortOrder);
+
+ /**
+ * Synchronizes the sorting state of the Dolphin menu 'View -> Sort'
+ * with the current state of the details view.
+ * @param column Index of the current sorting column.
+ */
+ void synchronizeSortingState(int column);
+
+private:
+ DolphinController* m_controller;
};
#endif