diff options
| author | Peter Penz <[email protected]> | 2008-02-21 12:49:11 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-02-21 12:49:11 +0000 |
| commit | 188754a3e5b298683b88fbe6786c524c172ed6a9 (patch) | |
| tree | d17b3f04bf2fe17c380862ec3f9b28f090ca9cd2 /src/dolphincontroller.h | |
| parent | e287058acb772b55b679a694062361d3fb0e8f89 (diff) | |
Let the DolphinController be aware on which QAbstractItemView instance he is working. This allows to connect signals from the view implementations (icons view, details view, column view) directly to the slots of the DolphinController without a helper slot.
svn path=/trunk/KDE/kdebase/apps/; revision=777737
Diffstat (limited to 'src/dolphincontroller.h')
| -rw-r--r-- | src/dolphincontroller.h | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/src/dolphincontroller.h b/src/dolphincontroller.h index 17e0a4a71..9703e5f1b 100644 --- a/src/dolphincontroller.h +++ b/src/dolphincontroller.h @@ -41,13 +41,15 @@ class QWidget; * implementations. * * The abstract Dolphin view (see DolphinView) represents the parent of the controller. + * The lifetime of the controller is equal to the lifetime of the Dolphin view. * The controller is passed to the current view implementation * (see DolphinIconsView, DolphinDetailsView and DolphinColumnView) - * by passing it in the constructor: + * by passing it in the constructor and informing the controller about the change + * of the view implementation: * * \code - * DolphinController* controller = new DolphinController(dolphinView); * QAbstractItemView* view = new DolphinIconsView(parent, controller); + * controller->setItemView(view); * \endcode * * The communication of the view implementations to the abstract view is done by: @@ -96,6 +98,15 @@ public: const KUrl& url() const; /** + * Changes the current item view where the controller is working. This + * is only necessary for views like the tree view, where internally + * several QAbstractItemView instances are used. + */ + void setItemView(QAbstractItemView* view); + + QAbstractItemView* itemView() const; + + /** * Allows a view implementation to request an URL change to \a url. * The signal requestUrlChange() is emitted and the abstract Dolphin view * will assure that the URL of the Dolphin Controller will be updated @@ -199,12 +210,12 @@ public: * pressed. If the selection model of \a view is not empty and * the return key has been pressed, the selected items will get triggered. */ - void handleKeyPressEvent(QKeyEvent* event, QAbstractItemView* view); + void handleKeyPressEvent(QKeyEvent* event); /** * Returns the file item for the proxy index \a index of the view \a view. */ - KFileItem itemForIndex(const QModelIndex& index, QAbstractItemView* view) const; + KFileItem itemForIndex(const QModelIndex& index) const; public slots: /** @@ -212,14 +223,14 @@ public slots: * is not null. The method should be invoked by the * controller parent whenever the user has triggered an item. */ - void triggerItem(const QModelIndex& index, QAbstractItemView* view); + void triggerItem(const QModelIndex& index); /** * Emits the signal itemEntered() if the file item for the index \a index * is not null. The method should be invoked by the controller parent * whenever the mouse cursor is above an item. */ - void emitItemEntered(const QModelIndex& index, QAbstractItemView* view); + void emitItemEntered(const QModelIndex& index); /** * Emits the signal viewportEntered(). The method should be invoked by @@ -337,6 +348,7 @@ private: bool m_zoomOutPossible; KUrl m_url; DolphinView* m_dolphinView; + QAbstractItemView* m_itemView; }; inline const DolphinView* DolphinController::dolphinView() const @@ -349,6 +361,11 @@ inline const KUrl& DolphinController::url() const return m_url; } +inline QAbstractItemView* DolphinController::itemView() const +{ + return m_itemView; +} + inline void DolphinController::setZoomInPossible(bool possible) { m_zoomInPossible = possible; |
