/** 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.
void slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons);
void slotRenameDialogRenamingFinished(const QList<QUrl> &urls);
void slotSelectedItemTextPressed(int index);
- void slotCopyingDone(KIO::Job *, const QUrl &, const QUrl &to);
+ void slotItemCreatedFromJob(KIO::Job *, const QUrl &, const QUrl &to);
void slotIncreaseZoom();
void slotDecreaseZoom();
void slotSwipeUp();
*/
void observeCreatedItem(const QUrl &url);
+ /**
+ * Selects the next item after prev selection deleted/trashed
+ */
+ void selectNextItem();
+
/**
* Called when a redirection happens.
* Testcase: fish://localhost
void slotTwoClicksRenamingTimerTimeout();
+ void onDirectoryLoadingCompleted();
+
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();
void updatePlaceholderLabel();
- void tryShowNameToolTip(QHelpEvent *event);
+ bool tryShowNameToolTip(QHelpEvent *event);
private:
void updatePalette();
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.
+ bool m_selectNextItem;
enum class LoadingState { Idle, Loading, Canceled, Completed };
LoadingState m_loadingState = LoadingState::Idle;
bool m_scrollToCurrentItem; // Used for marking we need to scroll to current item or not
QPoint m_restoredContentsPosition;
- QList<QUrl> m_selectedUrls; // Used for making the view to remember selections after F5
+ // Used for tracking the accumulated scroll amount (for zooming with high
+ // resolution scroll wheels)
+ int m_controlWheelAccumulatedDelta;
+
+ QList<QUrl> m_selectedUrls; // Used for making the view to remember selections after F5 and file operations
bool m_clearSelectionBeforeSelectingNewItems;
bool m_markFirstNewlySelectedItemAsCurrent;
+ /// Decides whether items created by jobs should automatically be selected.
+ bool m_selectJobCreatedItems;
VersionControlObserver *m_versionControlObserver;
QLabel *m_placeholderLabel;
QTimer *m_showLoadingPlaceholderTimer;
+ /// The information roleIndex of the list column header currently hovered
+ std::optional<int> m_hoveredColumnHeaderIndex;
+
/// Used for selection mode. @see setSelectionMode()
std::unique_ptr<QProxyStyle> m_proxyStyle;
friend class DolphinDetailsViewTest;
friend class DolphinMainWindowTest;
friend class DolphinPart; // Accesses m_model
+ void updateSelectionState();
};
/// Allow using DolphinView::Mode in QVariant