#include "config-dolphin.h"
#include <KFileItem>
-#include <KIO/Job>
+#include <KIO/StatJob>
#include <kio/fileundomanager.h>
#include <kparts/part.h>
* - show hidden files
* - show previews
* - enable grouping
+ * - grouping order
+ * - grouping type
*/
class DOLPHIN_EXPORT DolphinView : public QWidget
{
*/
void resetZoomLevel();
+ /**
+ * Updates the view properties of the current URL to the
+ * sorting given by \a role.
+ */
void setSortRole(const QByteArray &role);
QByteArray sortRole() const;
+ /**
+ * Updates the view properties of the current URL to the
+ * sort order given by \a order.
+ */
void setSortOrder(Qt::SortOrder order);
Qt::SortOrder sortOrder() const;
+ /**
+ * Updates the view properties of the current URL to the
+ * grouping given by \a role.
+ */
+ void setGroupRole(const QByteArray &role);
+ QByteArray groupRole() const;
+
+ /**
+ * Updates the view properties of the current URL to the
+ * sort order given by \a order.
+ */
+ void setGroupOrder(Qt::SortOrder order);
+ Qt::SortOrder groupOrder() const;
+
/** Sets a separate sorting with folders first (true) or a mixed sorting of files and folders (false). */
void setSortFoldersFirst(bool foldersFirst);
bool sortFoldersFirst() const;
/** Returns the additional information which should be shown for the items. */
QList<QByteArray> visibleRoles() const;
- void reload();
-
/**
* Refreshes the view to get synchronized with the settings (e.g. icons size,
* font, ...).
*/
void hideToolTip(const ToolTipManager::HideBehavior behavior = ToolTipManager::HideBehavior::Later);
+ /**
+ * Check if the space key should be handled as a normal key, even if it's
+ * used as a keyboard shortcut.
+ *
+ * See BUG 465489
+ */
+ bool handleSpaceAsNormalKey() const;
+
+ /** Activates the view if the item list container gets focus. */
+ bool eventFilter(QObject *watched, QEvent *event) override;
+
+ /**
+ * Returns whether the folder represented by the current URL is writable.
+ */
+ bool isFolderWritable() const;
+
public Q_SLOTS:
+
+ void reload();
+
/**
* Changes the directory to \a url. If the current directory is equal to
* \a url, nothing will be done (use DolphinView::reload() instead).
*/
void updateViewState();
- /** Activates the view if the item list container gets focus. */
- bool eventFilter(QObject *watched, QEvent *event) override;
-
Q_SIGNALS:
/**
* Is emitted if the view has been activated by e. g. a mouse click.
*/
void itemActivated(const KFileItem &item);
+ /**
+ * Is emitted when clicking on a file with the middle mouse button.
+ * @note: This will not be emitted for folders or file archives that will/can be opened like folders.
+ */
+ void fileMiddleClickActivated(const KFileItem &item);
+
/**
* Is emitted when multiple items have been activated by e. g.
* context menu open with.
/** Is emitted if the sort order (ascending or descending) has been changed. */
void sortOrderChanged(Qt::SortOrder order);
+ /** Is emitted if the grouping by name, size or date has been changed. */
+ void groupRoleChanged(const QByteArray &role);
+
+ /** Is emitted if the group order (ascending or descending) has been changed. */
+ void groupOrderChanged(Qt::SortOrder order);
+
/**
* Is emitted if the sorting of files and folders (separate with folders
* first or mixed) has been changed.
* Is emitted if an error message with the content \a msg
* should be shown.
*/
- void errorMessage(const QString &msg);
+ void errorMessage(const QString &message, const int kioErrorCode);
/**
* Is emitted if an "operation completed" message with the content \a msg
*/
void currentDirectoryRemoved();
+ /**
+ * Emitted when the view's background is double-clicked.
+ * Used to trigger an user configured action.
+ */
+ void doubleClickViewBackground(Qt::MouseButton button);
+
protected:
/** Changes the zoom level if Control is pressed during a wheel event. */
void wheelEvent(QWheelEvent *event) override;
void slotRenameDialogRenamingFinished(const QList<QUrl> &urls);
void slotSelectedItemTextPressed(int index);
void slotItemCreatedFromJob(KIO::Job *, const QUrl &, const QUrl &to);
+ void slotItemLinkCreatedFromJob(KIO::Job *, const QUrl &, const QString &, const QUrl &to);
void slotIncreaseZoom();
void slotDecreaseZoom();
void slotSwipeUp();
*/
void slotStatJobResult(KJob *job);
- /**
- * Updates the view properties of the current URL to the
- * sorting given by \a role.
- */
- void updateSortRole(const QByteArray &role);
-
- /**
- * Updates the view properties of the current URL to the
- * sort order given by \a order.
- */
- void updateSortOrder(Qt::SortOrder order);
-
/**
* Updates the view properties of the current URL to the
* sorting of files and folders (separate with folders first or mixed) given by \a foldersFirst.
void slotTwoClicksRenamingTimerTimeout();
+ void onDirectoryLoadingCompletedAfterJob();
+
private:
void loadDirectory(const QUrl &url, bool reload = false);
/**
* Updates m_isFolderWritable dependent on whether the folder represented by
* the current URL is writable. If the state has changed, the signal
- * writeableStateChanged() will be emitted.
+ * writeStateChanged() will be emitted.
*/
void updateWritableState();