]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.h
Merge branch 'Applications/19.08'
[dolphin.git] / src / views / dolphinview.h
index d1a5d5005f81bfc07dcb62bfc38b3d0ac06a5f11..a4da92f2db317250dbe81b368781a2d78a3a6999 100644 (file)
 #ifndef DOLPHINVIEW_H
 #define DOLPHINVIEW_H
 
-#include <config-baloo.h>
-
+#include "dolphintabwidget.h"
 #include "dolphin_export.h"
+#include "tooltips/tooltipmanager.h"
 
-#include <kparts/part.h>
 #include <KFileItem>
-#include <kio/fileundomanager.h>
 #include <KIO/Job>
-#include <QUrl>
+#include <config-baloo.h>
+#include <kio/fileundomanager.h>
+#include <kparts/part.h>
+
 #include <QMimeData>
+#include <QUrl>
 #include <QWidget>
 
 typedef KIO::FileUndoManager::CommandType CommandType;
@@ -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.
@@ -363,14 +365,14 @@ public slots:
     void pasteIntoFolder();
 
     /**
-     * Handles a drop of @p dropEvent onto @p destUrl
+     * Handles a drop of @p dropEvent onto widget @p dropWidget and destination @p destUrl
      */
-    void dropUrls(const QUrl &destUrl, QDropEvent *dropEvent);
+    void dropUrls(const QUrl &destUrl, QDropEvent *dropEvent, QWidget *dropWidget);
 
     void stopLoading();
 
     /** 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 +380,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 +402,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,
@@ -546,12 +541,23 @@ signals:
      */
     void goForwardRequested();
 
+    /**
+     * Is emitted when the user wants to move the focus to another view.
+     */
+    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:
     /**
@@ -572,6 +578,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<QUrl>& urls);
+    void slotSelectedItemTextPressed(int index);
 
     /*
      * Is called when new items get pasted or dropped.
@@ -640,7 +648,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();
 
@@ -690,8 +698,6 @@ private slots:
      */
     void updateViewState();
 
-    void hideToolTip();
-
     /**
      * Calculates the number of currently shown files into
      * \a fileCount and the number of folders into \a folderCount.
@@ -702,6 +708,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);
 
@@ -724,6 +732,11 @@ private:
      */
     void applyModeToView();
 
+    /**
+     * Hides tooltip displayed over element.
+     */
+    void hideToolTip(const ToolTipManager::HideBehavior behavior = ToolTipManager::HideBehavior::Later);
+
     /**
      * Helper method for DolphinView::paste() and DolphinView::pasteIntoFolder().
      * Pastes the clipboard data into the URL \a url.
@@ -756,7 +769,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<QUrl>& selected);
+
+    void abortTwoClicksRenaming();
+
 private:
+    void updatePalette();
+
     bool m_active;
     bool m_tabsForFiles;
     bool m_assureVisibleCurrentIndex;
@@ -789,6 +814,9 @@ private:
 
     VersionControlObserver* m_versionControlObserver;
 
+    QTimer* m_twoClicksRenamingTimer;
+    QUrl m_twoClicksRenamingItemUrl;
+
     // For unit tests
     friend class TestBase;
     friend class DolphinDetailsViewTest;