]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.h
Prepare view-engine for non-KFileItem usecase
[dolphin.git] / src / views / dolphinview.h
index 9c674d03a540038bfa6b2f310f6b74e43b7af40f..bfac885025eca30e737dfd38e5f8444ed920afba 100644 (file)
 
 typedef KIO::FileUndoManager::CommandType CommandType;
 
-class DolphinItemListContainer;
+class DolphinItemListView;
 class KAction;
 class KActionCollection;
 class KFileItemModel;
+class KItemListContainer;
 class KItemModelBase;
 class KUrl;
 class ToolTipManager;
@@ -189,7 +190,7 @@ public:
      * All items that match to the pattern \a pattern will get selected
      * if \a enabled is true and deselected if  \a enabled is false.
      */
-    void setItemSelectionEnabled(const QRegExp& pattern, bool enabled);
+    void selectItems(const QRegExp& pattern, bool enabled);
 
     /**
      * Sets the zoom level to \a level. It is assured that the used
@@ -199,18 +200,6 @@ public:
     void setZoomLevel(int level);
     int zoomLevel() const;
 
-    /**
-     * Returns true, if zooming in is possible. If false is returned,
-     * the maximum zooming level has been reached.
-     */
-    bool isZoomInPossible() const;
-
-    /**
-     * Returns true, if zooming out is possible. If false is returned,
-     * the minimum zooming level has been reached.
-     */
-    bool isZoomOutPossible() const;
-
     void setSortRole(const QByteArray& role);
     QByteArray sortRole() const;
 
@@ -227,9 +216,7 @@ public:
     /** Returns the additional information which should be shown for the items. */
     QList<QByteArray> visibleRoles() const;
 
-    /** Reloads the current directory. */
     void reload();
-
     void stopLoading();
 
     /**
@@ -250,16 +237,6 @@ public:
     void setNameFilter(const QString& nameFilter);
     QString nameFilter() const;
 
-    /**
-     * Calculates the number of currently shown files into
-     * \a fileCount and the number of folders into \a folderCount.
-     * The size of all files is written into \a totalFileSize.
-     * It is recommend using this method instead of asking the
-     * directory lister or the model directly, as it takes
-     * filtering and hierarchical previews into account.
-     */
-    void calculateItemCount(int& fileCount, int& folderCount, KIO::filesize_t& totalFileSize) const;
-
     /**
      * Returns a textual representation of the state of the current
      * folder or selected items, suitable for use in the status bar.
@@ -304,9 +281,6 @@ public:
      */
     void saveState(QDataStream& stream);
 
-    /** Returns true, if at least one item is selected. */
-    bool hasSelection() const;
-
     /**
      * Returns the root item which represents the current URL.
      */
@@ -479,35 +453,29 @@ signals:
 
     /**
      * Is emitted after DolphinView::setUrl() has been invoked and
-     * the directory \a url is currently loaded. If this signal is emitted,
+     * the current directory is loaded. If this signal is emitted,
      * it is assured that the view contains already the correct root
      * URL and property settings.
      */
-    void startedDirLoading(const KUrl& url);
+    void directoryLoadingStarted();
 
     /**
      * Is emitted after the directory triggered by DolphinView::setUrl()
      * has been loaded.
      */
-    void finishedDirLoading(const KUrl& url);
+    void directoryLoadingCompleted();
 
     /**
      * Is emitted after DolphinView::setUrl() has been invoked and provides
      * the information how much percent of the current directory have been loaded.
      */
-    void dirLoadingProgress(int percent);
+    void directoryLoadingProgress(int percent);
 
     /**
      * Is emitted if the sorting is done asynchronously and provides the
      * progress information of the sorting.
      */
-    void dirSortingProgress(int percent);
-
-    /**
-     * Is emitted if the DolphinView::setUrl() is invoked but the URL is not
-     * a directory.
-     */
-    void urlIsFileError(const KUrl& file);
+    void directorySortingProgress(int percent);
 
     /**
      * Emitted when the file-item-model emits redirection.
@@ -618,13 +586,13 @@ private slots:
      * Invoked when the file item model has started the loading
      * of the directory specified by DolphinView::url().
      */
-    void slotDirLoadingStarted();
+    void slotDirectoryLoadingStarted();
 
     /**
      * Invoked when the file item model indicates that the loading of a directory has
      * been completed. Assures that pasted items and renamed items get seleced.
      */
-    void slotDirLoadingCompleted();
+    void slotDirectoryLoadingCompleted();
 
     /**
      * Is invoked when items of KFileItemModel have been changed.
@@ -650,6 +618,8 @@ private slots:
     void slotVisibleRolesChangedByHeader(const QList<QByteArray>& current,
                                          const QList<QByteArray>& previous);
 
+    void slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value);
+
     /**
      * Observes the item with the URL \a url. As soon as the directory
      * model indicates that the item is available, the item will
@@ -669,7 +639,7 @@ private slots:
      * Called when a redirection happens.
      * Testcase: fish://localhost
      */
-    void slotRedirection(const KUrl& oldUrl, const KUrl& newUrl);
+    void slotDirectoryRedirection(const KUrl& oldUrl, const KUrl& newUrl);
 
     /**
      * Applies the state that has been restored by restoreViewState()
@@ -679,9 +649,17 @@ private slots:
 
     void hideToolTip();
 
-private:
-    KFileItemModel* fileItemModel() const;
+    /**
+     * Calculates the number of currently shown files into
+     * \a fileCount and the number of folders into \a folderCount.
+     * The size of all files is written into \a totalFileSize.
+     * It is recommend using this method instead of asking the
+     * directory lister or the model directly, as it takes
+     * filtering and hierarchical previews into account.
+     */
+    void calculateItemCount(int& fileCount, int& folderCount, KIO::filesize_t& totalFileSize) const;
 
+private:
     void loadDirectory(const KUrl& url, bool reload = false);
 
     /**
@@ -690,6 +668,12 @@ private:
      */
     void applyViewProperties();
 
+    /**
+     * Applies the m_mode property to the corresponding
+     * itemlayout-property of the KItemListView.
+     */
+    void applyModeToView();
+
     /**
      * Helper method for DolphinView::paste() and DolphinView::pasteIntoFolder().
      * Pastes the clipboard data into the URL \a url.
@@ -737,7 +721,9 @@ private:
 
     QVBoxLayout* m_topLayout;
 
-    DolphinItemListContainer* m_container;
+    KFileItemModel* m_model;
+    DolphinItemListView* m_view;
+    KItemListContainer* m_container;
 
     ToolTipManager* m_toolTipManager;