X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/67099640b90588af1c72c340756253400da3e95b..d1a70c0b629b:/src/views/dolphinview.h diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 0b0d8196d..b2c66cdc3 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -21,16 +21,18 @@ #ifndef DOLPHINVIEW_H #define DOLPHINVIEW_H -#include - +#include "dolphintabwidget.h" #include "dolphin_export.h" +#include "tooltips/tooltipmanager.h" -#include #include -#include #include -#include +#include +#include +#include + #include +#include #include typedef KIO::FileUndoManager::CommandType CommandType; @@ -44,7 +46,7 @@ class ToolTipManager; class VersionControlObserver; class ViewProperties; class QGraphicsSceneDragDropEvent; -class QRegExp; +class QRegularExpression; /** * @short Represents a view for the directory content. @@ -93,7 +95,7 @@ public: */ DolphinView(const QUrl& url, QWidget* parent); - virtual ~DolphinView(); + ~DolphinView() override; /** * Returns the current active URL, where all actions are applied. @@ -181,10 +183,16 @@ public: void markUrlAsCurrent(const QUrl& url); /** - * All items that match to the pattern \a pattern will get selected - * if \a enabled is true and deselected if \a enabled is false. + * All items that match the regular expression \a regexp will get selected + * if \a enabled is true and deselected if \a enabled is false. + * + * Note that to match the whole string the pattern should be anchored: + * - you can anchor the pattern with QRegularExpression::anchoredPattern() + * - if you use QRegularExpresssion::wildcardToRegularExpression(), don't use + * QRegularExpression::anchoredPattern() as the former already returns an + * anchored pattern */ - void selectItems(const QRegExp& pattern, bool enabled); + void selectItems(const QRegularExpression ®exp, bool enabled); /** * Sets the zoom level to \a level. It is assured that the used @@ -194,6 +202,11 @@ public: void setZoomLevel(int level); int zoomLevel() const; + /** + * Resets the view's icon size to the default value + */ + void resetZoomLevel(); + void setSortRole(const QByteArray& role); QByteArray sortRole() const; @@ -305,6 +318,11 @@ public: */ static QUrl openItemAsFolderUrl(const KFileItem& item, const bool browseThroughArchives = true); + /** + * Hides tooltip displayed over element. + */ + void hideToolTip(const ToolTipManager::HideBehavior behavior = ToolTipManager::HideBehavior::Later); + public slots: /** * Changes the directory to \a url. If the current directory is equal to @@ -350,7 +368,7 @@ public slots: void cutSelectedItems(); /** Copies all selected items to the clipboard. */ - void copySelectedItems(); + void copySelectedItemsToClipboard(); /** Pastes the clipboard data to this view. */ void paste(); @@ -363,14 +381,26 @@ public slots: void pasteIntoFolder(); /** - * Handles a drop of @p dropEvent onto @p destUrl + * Creates duplicates of selected items, appending "copy" + * to the end. */ - void dropUrls(const QUrl &destUrl, QDropEvent *dropEvent); + void duplicateSelectedItems(); + + /** + * Handles a drop of @p dropEvent onto widget @p dropWidget and destination @p destUrl + */ + void dropUrls(const QUrl &destUrl, QDropEvent *dropEvent, QWidget *dropWidget); void stopLoading(); + /** + * Applies the state that has been restored by restoreViewState() + * to the view. + */ + void updateViewState(); + /** Activates the view if the item list container gets focus. */ - virtual bool eventFilter(QObject* watched, QEvent* event) Q_DECL_OVERRIDE; + bool eventFilter(QObject* watched, QEvent* event) override; signals: /** @@ -378,13 +408,6 @@ signals: */ void activated(); - /** - * Is emitted if the URL of the view will be changed to \a url. - * After the URL has been changed the signal urlChanged() will - * be emitted. - */ - void urlAboutToBeChanged(const QUrl& url); - /** Is emitted if the URL of the view has been changed to \a url. */ void urlChanged(const QUrl& url); @@ -407,7 +430,7 @@ signals: /** * Is emitted if a new tab should be opened for the URL \a url. */ - void tabRequested(const QUrl& url); + void tabRequested(const QUrl& url, DolphinTabWidget::TabPlacement tabPlacement); /** * Is emitted if the view mode (IconsView, DetailsView, @@ -551,12 +574,18 @@ signals: */ void toggleActiveViewRequested(); + /** + * Is emitted when the user clicks a tag or a link + * in the metadata widget of a tooltip. + */ + void urlActivated(const QUrl& url); + protected: /** Changes the zoom level if Control is pressed during a wheel event. */ - virtual void wheelEvent(QWheelEvent* event) Q_DECL_OVERRIDE; + void wheelEvent(QWheelEvent* event) override; - virtual void hideEvent(QHideEvent* event) Q_DECL_OVERRIDE; - virtual bool event(QEvent* event) Q_DECL_OVERRIDE; + void hideEvent(QHideEvent* event) override; + bool event(QEvent* event) override; private slots: /** @@ -577,6 +606,8 @@ private slots: void slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event); void slotModelChanged(KItemModelBase* current, KItemModelBase* previous); void slotMouseButtonPressed(int itemIndex, Qt::MouseButtons buttons); + void slotRenameDialogRenamingFinished(const QList& urls); + void slotSelectedItemTextPressed(int index); /* * Is called when new items get pasted or dropped. @@ -645,7 +676,7 @@ private slots: /** * 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. + * been completed. Assures that pasted items and renamed items get selected. */ void slotDirectoryLoadingCompleted(); @@ -689,14 +720,6 @@ private slots: */ void slotDirectoryRedirection(const QUrl& oldUrl, const QUrl& newUrl); - /** - * Applies the state that has been restored by restoreViewState() - * to the view. - */ - void updateViewState(); - - void hideToolTip(); - /** * Calculates the number of currently shown files into * \a fileCount and the number of folders into \a folderCount. @@ -707,6 +730,8 @@ private slots: */ void calculateItemCount(int& fileCount, int& folderCount, KIO::filesize_t& totalFileSize) const; + void slotTwoClicksRenamingTimerTimeout(); + private: void loadDirectory(const QUrl& url, bool reload = false); @@ -761,7 +786,19 @@ private: */ QUrl viewPropertiesUrl() const; + /** + * Clears the selection and updates current item and selection according to the parameters + * + * @param current URL to be set as current + * @param selected list of selected items + */ + void forceUrlsSelection(const QUrl& current, const QList& selected); + + void abortTwoClicksRenaming(); + private: + void updatePalette(); + bool m_active; bool m_tabsForFiles; bool m_assureVisibleCurrentIndex; @@ -794,6 +831,9 @@ private: VersionControlObserver* m_versionControlObserver; + QTimer* m_twoClicksRenamingTimer; + QUrl m_twoClicksRenamingItemUrl; + // For unit tests friend class TestBase; friend class DolphinDetailsViewTest;