typedef KIO::FileUndoManager::CommandType CommandType;
-class DolphinDirLister;
-class DolphinItemListContainer;
+class DolphinItemListView;
class KAction;
class KActionCollection;
class KFileItemModel;
+class KItemListContainer;
class KItemModelBase;
class KUrl;
class ToolTipManager;
*/
KFileItemList items() const;
+ /**
+ * @return The number of items. itemsCount() is faster in comparison
+ * to items().count().
+ */
+ int itemsCount() const;
+
/**
* Returns the selected items. The list is empty if no item has been
* selected.
* 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
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;
/** Returns the additional information which should be shown for the items. */
QList<QByteArray> visibleRoles() const;
- /** Reloads the current directory. */
void reload();
-
void stopLoading();
/**
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.
*/
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.
*/
/**
* Is emitted after DolphinView::setUrl() has been invoked and
- * the path \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 startedPathLoading(const KUrl& url);
+ void directoryLoadingStarted();
/**
- * Is emitted after the path triggered by DolphinView::setUrl()
+ * Is emitted after the directory triggered by DolphinView::setUrl()
* has been loaded.
*/
- void finishedPathLoading(const KUrl& url);
+ void directoryLoadingCompleted();
/**
* Is emitted after DolphinView::setUrl() has been invoked and provides
- * the information how much percent of the current path have been loaded.
+ * the information how much percent of the current directory have been loaded.
*/
- void pathLoadingProgress(int percent);
+ void directoryLoadingProgress(int percent);
/**
- * Is emitted if the DolphinView::setUrl() is invoked but the URL is not
- * a directory.
+ * Is emitted if the sorting is done asynchronously and provides the
+ * progress information of the sorting.
*/
- void urlIsFileError(const KUrl& file);
+ void directorySortingProgress(int percent);
/**
- * Emitted when KDirLister emits redirection.
+ * Emitted when the file-item-model emits redirection.
* Testcase: fish://localhost
*/
void redirection(const KUrl& oldUrl, const KUrl& newUrl);
*/
void writeStateChanged(bool isFolderWritable);
+ /**
+ * Is emitted if the URL should be changed to the previous URL of the
+ * history (e.g. because the "back"-mousebutton has been pressed).
+ */
+ void goBackRequested();
+
+ /**
+ * Is emitted if the URL should be changed to the next URL of the
+ * history (e.g. because the "next"-mousebutton has been pressed).
+ */
+ void goForwardRequested();
+
protected:
/** Changes the zoom level if Control is pressed during a wheel event. */
virtual void wheelEvent(QWheelEvent* event);
void slotItemContextMenuRequested(int index, const QPointF& pos);
void slotViewContextMenuRequested(const QPointF& pos);
void slotHeaderContextMenuRequested(const QPointF& pos);
+ void slotHeaderColumnWidthChanged(const QByteArray& role, qreal current, qreal previous);
void slotItemHovered(int index);
void slotItemUnhovered(int index);
void slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event);
void slotModelChanged(KItemModelBase* current, KItemModelBase* previous);
+ void slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons);
/**
* Emits the signal \a selectionChanged() with a small delay. This is
void slotDeleteFileFinished(KJob* job);
/**
- * Invoked when the directory lister has been started the
- * loading of \a url.
+ * Invoked when the file item model has started the loading
+ * of the directory specified by DolphinView::url().
*/
- void slotDirListerStarted(const KUrl& url);
+ void slotDirectoryLoadingStarted();
/**
- * Invoked when the file item model indicates that the directory lister has completed the loading
- * of items, and that expanded folders have been restored (if the view mode is 'Details', and the
- * view state is restored after navigating back or forward in history). Assures that pasted items
- * and renamed items get seleced.
+ * 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 slotLoadingCompleted();
+ void slotDirectoryLoadingCompleted();
/**
- * Is invoked when the KDirLister indicates refreshed items.
+ * Is invoked when items of KFileItemModel have been changed.
*/
- void slotRefreshItems();
+ void slotItemsChanged();
/**
* Is invoked when the sort order has been changed by the user by clicking
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
* 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()
void hideToolTip();
- //void slotUrlChangeRequested(const KUrl& url);
+ /**
+ * 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:
- KFileItemModel* fileItemModel() const;
-
void loadDirectory(const KUrl& url, bool reload = false);
/**
*/
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.
*/
void updateWritableState();
- /**
- * Returns the text for the filesize by converting it to the best fitting
- * unit.
- */
- static QString fileSizeText(KIO::filesize_t fileSize);
-
private:
bool m_active;
bool m_tabsForFiles;
QVBoxLayout* m_topLayout;
- DolphinDirLister* m_dirLister;
- DolphinItemListContainer* m_container;
+ KFileItemModel* m_model;
+ DolphinItemListView* m_view;
+ KItemListContainer* m_container;
ToolTipManager* m_toolTipManager;