X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/4d886d083ca6cb2d635da2d29efb804b2680b6de..148282e2d856b47ceb191eeef4c834118c8cdffd:/src/dolphinview.h diff --git a/src/dolphinview.h b/src/dolphinview.h index f0bacb989..7d8d06bf2 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -41,6 +41,7 @@ class DolphinController; class DolphinColumnView; class DolphinDetailsView; +class DolphinFileItemDelegate; class DolphinIconsView; class DolphinMainWindow; class DolphinModel; @@ -49,7 +50,6 @@ class KFilePreviewGenerator; class KAction; class KActionCollection; class KDirLister; -class KFileItemDelegate; class KUrl; class KToggleAction; class ToolTipManager; @@ -85,7 +85,8 @@ public: { /** * The directory items are shown as icons including an - * icon name. */ + * icon name. + */ IconsView = 0, /** @@ -244,7 +245,7 @@ public: /** * Returns true, if zooming in is possible. If false is returned, - * the maximimum zooming level has been reached. + * the maximum zooming level has been reached. */ bool isZoomInPossible() const; @@ -301,11 +302,18 @@ public: /** * 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); + 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. + */ + QString statusBarText() const; /** * Updates the state of the 'Additional Information' actions in \a collection. @@ -328,6 +336,12 @@ public: void setTabsForFilesEnabled(bool tabsForFiles); bool isTabsForFilesEnabled() const; + /** + * Returns true if the current view allows folders to be expanded, + * i.e. presents a hierarchical view to the user. + */ + bool itemsExpandable() const; + public slots: /** * Changes the directory to \a url. If the current directory is equal to @@ -514,10 +528,10 @@ signals: void startedPathLoading(const KUrl& url); /** - * Is emitted when renaming, copying, moving, linking etc. - * Used for feedback in the mainwindow. + * Emitted when KDirLister emits redirection. + * Testcase: fish://localhost */ - void doingOperation(KIO::FileUndoManager::CommandType type); + void redirection(const KUrl& oldUrl, const KUrl& newUrl); protected: /** @see QWidget::mouseReleaseEvent */ @@ -549,13 +563,13 @@ private slots: void openContextMenu(const QPoint& pos); /** - * Drops the URLs \a urls to the destination path \a destPath. If + * Drops dragged URLs to the destination path \a destPath. If * the URLs are dropped above an item inside the destination path, * the item is indicated by \a destItem. */ - void dropUrls(const KUrl::List& urls, + void dropUrls(const KFileItem& destItem, const KUrl& destPath, - const KFileItem& destItem); + QDropEvent* event); /** * Updates the view properties of the current URL to the @@ -601,12 +615,6 @@ private slots: */ void slotDeleteFileFinished(KJob* job); - /** - * Called when KDirLister emits redirection. - * Testcase: fish://localhost - */ - void slotRedirection(const KUrl& oldUrl, const KUrl& newUrl); - /** * Is emitted if the controller requests a changing of the current * URL to \a url @@ -618,6 +626,12 @@ private slots: * to m_currentItemUrl. */ void restoreCurrentItem(); + + /** + * Is connected to the enterDir() signal from the FolderExpander + * and triggers the entering of the directory indicated by \a index. + */ + void enterDir(const QModelIndex& index, QAbstractItemView* view); private: void loadDirectory(const KUrl& url, bool reload = false); @@ -684,6 +698,17 @@ private: * this method has been introduced for convenience. */ bool isColumnViewActive() const; + + /** + * Deletes all views from m_expandedViews except if the view + * is currently shown. + */ + void deleteExpandedViews(); + + /** + * Returns the MIME data for all selected items. + */ + QMimeData* selectionMimeData() const; private: bool m_active : 1; @@ -702,7 +727,7 @@ private: DolphinIconsView* m_iconsView; DolphinDetailsView* m_detailsView; DolphinColumnView* m_columnView; - KFileItemDelegate* m_fileItemDelegate; + DolphinFileItemDelegate* m_fileItemDelegate; QItemSelectionModel* m_selectionModel; DolphinModel* m_dolphinModel; @@ -714,6 +739,8 @@ private: KUrl m_rootUrl; KUrl m_currentItemUrl; + + QList m_expandedViews; }; inline bool DolphinView::isColumnViewActive() const