]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphincolumnview.h
Move the Ctrl-wheel zoom handling to dolphinview.
[dolphin.git] / src / dolphincolumnview.h
index 639ccec32af0ebd7dd07815de8631d6e21b416de..6ac4fdb3f177986e1b8014109bf898397919e970 100644 (file)
 #ifndef DOLPHINCOLUMNVIEW_H
 #define DOLPHINCOLUMNVIEW_H
 
+#include "dolphinview.h"
+
+#include <kurl.h>
+
 #include <QAbstractItemView>
 #include <QList>
+#include <QString>
 #include <QStyleOption>
 
-class ColumnWidget;
+class DolphinColumnWidget;
 class DolphinController;
 class DolphinModel;
-class KUrl;
 class QAbstractProxyModel;
+class QFrame;
 class QTimeLine;
 
 /**
@@ -48,7 +53,9 @@ public:
     virtual QModelIndex indexAt(const QPoint& point) const;
     virtual void scrollTo(const QModelIndex& index, ScrollHint hint = EnsureVisible);
     virtual QRect visualRect(const QModelIndex& index) const;
-    virtual void setModel(QAbstractItemModel* model);
+
+    /** Inverts the selection of the currently active column. */
+    void invertSelection();
 
     /**
      * Reloads the content of all columns. In opposite to non-hierarchical views
@@ -57,16 +64,34 @@ public:
      */
     void reload();
 
-    /** Inverts the selection of the currently active column. */
-    void invertSelection();
+    /**
+     * Adjusts the root URL of the first column and removes all
+     * other columns.
+     */
+    void setRootUrl(const KUrl& url);
+
+    /** Returns the URL of the first column. */
+    KUrl rootUrl() const;
+
+    /**
+     * Filters the currently shown items by \a nameFilter. All items
+     * which contain the given filter string will be shown.
+     */
+    void setNameFilter(const QString& nameFilter);
+
+    /**
+     * Returns the currently used name filter. All items
+     * which contain the name filter will be shown.
+     */
+    QString nameFilter() const;
 
-public slots:
     /**
      * Shows the column which represents the URL \a url. If the column
      * is already shown, it gets activated, otherwise it will be created.
      */
     void showColumn(const KUrl& url);
 
+public slots:
     /** @see QAbstractItemView::selectAll() */
     virtual void selectAll();
 
@@ -80,6 +105,7 @@ protected:
 
     virtual void mousePressEvent(QMouseEvent* event);
     virtual void resizeEvent(QResizeEvent* event);
+    virtual void wheelEvent(QWheelEvent* event);
 
 private slots:
     void zoomIn();
@@ -100,29 +126,21 @@ private slots:
     void updateDecorationSize();
 
     /**
-     * Expands the directory model the the currently active URL.
-     * Used by DolphinColumnView::reload() after the directory
-     * lister has been loaded.
-     */
-    void expandToActiveUrl();
-
-    /**
-     * Triggers the reloading of columns after the model index
-     * \a index has been expanded. Used by DolphinModel::expandToActiveUrl().
+     * Updates the background color of the columns to respect
+     * the current activation state \a active.
      */
-    void triggerReloadColumns(const QModelIndex& index);
+    void updateColumnsBackground(bool active);
 
-    /**
-     * Adjusts the root index of all columns to represent the reloaded
-     * model. Used by DolphinModel::triggerReloadColumns().
-     */
-    void reloadColumns();
+    void slotSortingChanged(DolphinView::Sorting sorting);
+    void slotSortOrderChanged(Qt::SortOrder order);
+    void slotShowHiddenFilesChanged();
+    void slotShowPreviewChanged();
 
 private:
     bool isZoomInPossible() const;
     bool isZoomOutPossible() const;
 
-    inline ColumnWidget* activeColumn() const;
+    DolphinColumnWidget* activeColumn() const;
 
     /**
      * Deactivates the currently active column and activates
@@ -146,23 +164,25 @@ private:
      * that the columns gets fully visible by adjusting the horizontal
      * position of the content.
      */
-    void requestActivation(ColumnWidget* column);
+    void requestActivation(DolphinColumnWidget* column);
+
+    /** Removes all columns except of the root column. */
+    void removeAllColumns();
 
 private:
     DolphinController* m_controller;
-    bool m_restoreActiveColumnFocus;
+    bool m_active;
     int m_index;
     int m_contentX;
-    QList<ColumnWidget*> m_columns;
+    QList<DolphinColumnWidget*> m_columns;
+    QFrame* m_emptyViewport;
     QTimeLine* m_animation;
+    QString m_nameFilter;
 
-    DolphinModel* m_dolphinModel;
-    QAbstractProxyModel* m_proxyModel;
-
-    friend class ColumnWidget;
+    friend class DolphinColumnWidget;
 };
 
-ColumnWidget* DolphinColumnView::activeColumn() const
+inline DolphinColumnWidget* DolphinColumnView::activeColumn() const
 {
     return m_columns[m_index];
 }