CompactView
};
- /** Defines the sort order for the items of a directory. */
- enum Sorting
- {
- SortByName = 0,
- SortBySize,
- SortByDate,
- SortByPermissions,
- SortByOwner,
- SortByGroup,
- SortByType,
- SortByDestination,
- SortByPath
- };
-
- /** Defines the additional information shown for the items of a directory. */
- enum AdditionalInfo
- {
- NoInfo = 0,
- NameInfo,
- SizeInfo,
- DateInfo,
- PermissionsInfo,
- OwnerInfo,
- GroupInfo,
- TypeInfo,
- DestinationInfo,
- PathInfo
- };
-
/**
* @param url Specifies the content which should be shown.
* @param parent Parent widget of the view.
*/
bool isZoomOutPossible() const;
- /** Sets the sorting criterion (e.g., SortByName, SortBySize,...) of the items inside a directory (see DolphinView::Sorting). */
- void setSorting(Sorting sorting);
+ void setSortRole(const QByteArray& role);
+ QByteArray sortRole() const;
- /** Returns the sorting criterion (e.g., SortByName, SortBySize,...) of the items inside a directory (see DolphinView::Sorting). */
- Sorting sorting() const;
-
- /** Sets the sort order (Qt::Ascending or Qt::Descending) for the items. */
void setSortOrder(Qt::SortOrder order);
-
- /** Returns the currently used sort order (Qt::Ascending or Qt::Descending). */
Qt::SortOrder sortOrder() const;
/** Sets a separate sorting with folders first (true) or a mixed sorting of files and folders (false). */
void setSortFoldersFirst(bool foldersFirst);
-
- /** Returns if files and folders are sorted separately or not. */
bool sortFoldersFirst() const;
/** Sets the additional information which should be shown for the items. */
- void setAdditionalInfoList(const QList<AdditionalInfo>& info);
+ void setVisibleRoles(const QList<QByteArray>& roles);
/** Returns the additional information which should be shown for the items. */
- QList<AdditionalInfo> additionalInfoList() const;
+ QList<QByteArray> visibleRoles() const;
/** Reloads the current directory. */
void reload();
void stopLoading();
/**
- * Refreshes the view to get synchronized with the (updated) Dolphin settings.
- * This method only needs to get invoked if the view settings for the Icons View,
- * Details View or Columns View have been changed.
+ * Refreshes the view to get synchronized with the settings (e.g. icons size,
+ * font, ...).
*/
- void refresh();
+ void readSettings();
+
+ /**
+ * Saves the current settings (e.g. icons size, font, ..).
+ */
+ void writeSettings();
/**
* Filters the currently shown items by \a nameFilter. All items
bool hasSelection() const;
/**
- * Returns the root item which represents the current URL. Note that the returned
- * item can be null (KFileItem::isNull() will return true) in case that the directory
- * has not been loaded.
+ * Returns the root item which represents the current URL.
*/
KFileItem rootItem() const;
void groupedSortingChanged(bool groupedSorting);
/** Is emitted if the sorting by name, size or date has been changed. */
- void sortingChanged(DolphinView::Sorting sorting);
+ void sortRoleChanged(const QByteArray& role);
/** Is emitted if the sort order (ascending or descending) has been changed. */
void sortOrderChanged(Qt::SortOrder order);
- /** Is emitted if the sorting of files and folders (separate with folders first or mixed) has been changed. */
+ /**
+ * Is emitted if the sorting of files and folders (separate with folders
+ * first or mixed) has been changed.
+ */
void sortFoldersFirstChanged(bool foldersFirst);
/** Is emitted if the additional information shown for this view has been changed. */
- void additionalInfoListChanged(const QList<DolphinView::AdditionalInfo>& current,
- const QList<DolphinView::AdditionalInfo>& previous);
+ void visibleRolesChanged(const QList<QByteArray>& current,
+ const QList<QByteArray>& previous);
/** Is emitted if the zoom level has been changed by zooming in or out. */
void zoomLevelChanged(int current, int previous);
*/
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);
+ /** @reimp */
+ virtual void hideEvent(QHideEvent* event);
+
private slots:
/**
* Marks the view as active (DolphinView:isActive() will return true)
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 emitSelectionChangedSignal();
- /**
- * 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 KFileItem& destItem,
- const KUrl& destPath,
- QDropEvent* event);
-
/**
* Updates the view properties of the current URL to the
- * sorting given by \a sorting.
+ * sorting given by \a role.
*/
- void updateSorting(DolphinView::Sorting sorting);
+ void updateSortRole(const QByteArray& role);
/**
* Updates the view properties of the current URL to the
*/
void slotRefreshItems();
+ /**
+ * Is invoked when the sort order has been changed by the user by clicking
+ * on a header item. The view properties of the directory will get updated.
+ */
+ void slotSortOrderChangedByHeader(Qt::SortOrder current, Qt::SortOrder previous);
+
+ /**
+ * Is invoked when the sort role has been changed by the user by clicking
+ * on a header item. The view properties of the directory will get updated.
+ */
+ void slotSortRoleChangedByHeader(const QByteArray& current, const QByteArray& previous);
+
+ /**
+ * Is invoked when the visible roles have been changed by the user by dragging
+ * a header item. The view properties of the directory will get updated.
+ */
+ void slotVisibleRolesChangedByHeader(const QList<QByteArray>& current,
+ const QList<QByteArray>& previous);
+
/**
* Observes the item with the URL \a url. As soon as the directory
* model indicates that the item is available, the item will
*/
void updateViewState();
+ void hideToolTip();
+
//void slotUrlChangeRequested(const KUrl& url);
private:
*/
void applyViewProperties();
- void applyAdditionalInfoListToView();
-
/**
* Helper method for DolphinView::paste() and DolphinView::pasteIntoFolder().
* Pastes the clipboard data into the URL \a url.
*/
void pasteToUrl(const KUrl& url);
- /**
- * Checks whether the current item view has the same zoom level
- * as \a oldZoomLevel. If this is not the case, the zoom level
- * of the controller is updated and a zoomLevelChanged() signal
- * is emitted.
- */
- void updateZoomLevel(int oldZoomLevel);
-
/**
* Returns a list of URLs for all selected items. The list is
* simplified, so that when the URLs are part of different tree
*/
void updateWritableState();
- QByteArray sortRoleForSorting(Sorting sorting) const;
- Sorting sortingForSortRole(const QByteArray& sortRole) const;
-
/**
* 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 : 1;
- bool m_tabsForFiles : 1;
- bool m_assureVisibleCurrentIndex : 1;
- bool m_isFolderWritable : 1;
+ bool m_active;
+ bool m_tabsForFiles;
+ bool m_assureVisibleCurrentIndex;
+ bool m_isFolderWritable;
+ bool m_dragging; // True if a dragging is done. Required to be able to decide whether a
+ // tooltip may be shown when hovering an item.
KUrl m_url;
Mode m_mode;
- QList<AdditionalInfo> m_additionalInfoList;
+ QList<QByteArray> m_visibleRoles;
QVBoxLayout* m_topLayout;
QTimer* m_selectionChangedTimer;
- KUrl m_currentItemUrl;
+ KUrl m_currentItemUrl; // Used for making the view to remember the current URL after F5
QPoint m_restoredContentsPosition;
KUrl m_createdItemUrl; // URL for a new item that got created by the "Create New..." menu
- QList<KUrl> m_selectedUrls; // this is used for making the View to remember selections after F5
-
+
+ QList<KUrl> m_selectedUrls; // Used for making the view to remember selections after F5
+
VersionControlObserver* m_versionControlObserver;
// For unit tests