X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/3188ef05b26e9b150678fef83e64dceb86f2c3fe..48b58f830a585b773435c9af5ee2fe8f0c7c641d:/src/panels/folders/folderspanel.h diff --git a/src/panels/folders/folderspanel.h b/src/panels/folders/folderspanel.h index 44acfb88f..5b9dc3b15 100644 --- a/src/panels/folders/folderspanel.h +++ b/src/panels/folders/folderspanel.h @@ -20,14 +20,14 @@ #ifndef FOLDERSPANEL_H #define FOLDERSPANEL_H -#include -#include +#include "panels/panel.h" + +#include -class KDirLister; class KFileItemModel; class KItemListController; class QGraphicsSceneDragDropEvent; - +class KFileItem; /** * @brief Shows a tree view of the directories starting from * the currently selected place. @@ -40,11 +40,13 @@ class FoldersPanel : public Panel Q_OBJECT public: - FoldersPanel(QWidget* parent = 0); - virtual ~FoldersPanel(); + explicit FoldersPanel(QWidget* parent = nullptr); + ~FoldersPanel() override; void setShowHiddenFiles(bool show); + void setLimitFoldersPanelToHome(bool enable); bool showHiddenFiles() const; + bool limitFoldersPanelToHome() const; void setAutoScrolling(bool enable); bool autoScrolling() const; @@ -52,20 +54,19 @@ public: void rename(const KFileItem& item); signals: - /** - * Is emitted if the an URL change is requested. - */ - void changeUrl(const KUrl& url, Qt::MouseButtons buttons); + void folderActivated(const QUrl& url); + void folderMiddleClicked(const QUrl& url); + void errorMessage(const QString& error); protected: /** @see Panel::urlChanged() */ - virtual bool urlChanged(); + bool urlChanged() override; /** @see QWidget::showEvent() */ - virtual void showEvent(QShowEvent* event); + void showEvent(QShowEvent* event) override; /** @see QWidget::keyPressEvent() */ - virtual void keyPressEvent(QKeyEvent* event); + void keyPressEvent(QKeyEvent* event) override; private slots: void slotItemActivated(int index); @@ -73,6 +74,7 @@ private slots: void slotItemContextMenuRequested(int index, const QPointF& pos); void slotViewContextMenuRequested(const QPointF& pos); void slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event); + void slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value); void slotLoadingCompleted(); @@ -82,13 +84,24 @@ private slots: */ void startFadeInAnimation(); + private: + /** + * Indicate if it is allowed to leave current location. + */ + enum NavigationBehaviour { + StayWhereYouAre, ///< Don't leave current location. + AllowJumpHome ///< Go Home only when context menu option got checked. + }; /** * Initializes the base URL of the tree and expands all * directories until \a url. * @param url URL of the leaf directory that should get expanded. + * @param navigationBehaviour Navigation behaviour \see NavigationBehaviour */ - void loadTree(const KUrl& url); + void loadTree(const QUrl& url, NavigationBehaviour navigationBehaviour = StayWhereYouAre); + + void reloadTree(); /** * Sets the item with the index \a index as current item, selects @@ -96,12 +109,10 @@ private: */ void updateCurrentItem(int index); - KFileItemModel* fileItemModel() const; - private: bool m_updateCurrentItem; - KDirLister* m_dirLister; KItemListController* m_controller; + KFileItemModel* m_model; }; #endif // FOLDERSPANEL_H