X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/60f40aaa4dcf789ccdd09d12030787c501986252..41253c0c81bafb54a0b6c82e5282e3add85e8a50:/src/dolphinpart.h diff --git a/src/dolphinpart.h b/src/dolphinpart.h index 5942d651e..48aff5602 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -20,20 +20,21 @@ #ifndef DOLPHINPART_H #define DOLPHINPART_H -#include -#include +#include +#include + + +class DolphinNewFileMenu; class DolphinViewActionHandler; class QActionGroup; -class KAction; class KFileItemList; class KFileItem; class DolphinPartBrowserExtension; -class DolphinSortFilterProxyModel; -class DolphinModel; +class DolphinRemoteEncoding; class KDirLister; class DolphinView; -class QLineEdit; class KAboutData; +class DolphinRemoveAction; class DolphinPart : public KParts::ReadOnlyPart { @@ -45,8 +46,14 @@ class DolphinPart : public KParts::ReadOnlyPart Q_PROPERTY( QString currentViewMode READ currentViewMode WRITE setCurrentViewMode ) + // Used by konqueror when typing something like /home/dfaure/*.diff in the location bar + Q_PROPERTY( QString nameFilter READ nameFilter WRITE setNameFilter ) + + // Used by konqueror to implement the --select command-line option + Q_PROPERTY( QList filesToSelect READ filesToSelect WRITE setFilesToSelect ) + public: - explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QStringList& args); + explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args); ~DolphinPart(); static KAboutData* createAboutData(); @@ -55,7 +62,7 @@ public: * Standard KParts::ReadOnlyPart openUrl method. * Called by Konqueror to view a directory in DolphinPart. */ - virtual bool openUrl(const KUrl& url); + virtual bool openUrl(const QUrl& url) Q_DECL_OVERRIDE; /// see the supportsUndo property bool supportsUndo() const { return true; } @@ -77,11 +84,21 @@ public: /// Returns the view owned by this part; used by DolphinPartBrowserExtension DolphinView* view() { return m_view; } + /** + * Sets a name filter, like *.diff + */ + void setNameFilter(const QString& nameFilter); + + /** + * Returns the current name filter. Used by konqueror to show it in the URL. + */ + QString nameFilter() const { return m_nameFilter; } + protected: /** * We reimplement openUrl so no need to implement openFile. */ - virtual bool openFile() { return true; } + virtual bool openFile() override { return true; } Q_SIGNALS: /** @@ -92,13 +109,11 @@ Q_SIGNALS: /** * Emitted whenever the current URL is about to be changed. - */ + */ void aboutToOpenURL(); private Q_SLOTS: - void slotCompleted(const KUrl& url); - void slotCanceled(const KUrl& url); - void slotInfoMessage(const QString& msg); + void slotMessage(const QString& msg); void slotErrorMessage(const QString& msg); /** * Shows the information for the item \a item inside the statusbar. If the @@ -108,20 +123,36 @@ private Q_SLOTS: /** * Handles clicking on an item */ - void slotItemTriggered(const KFileItem& item); + void slotItemActivated(const KFileItem& item); + /** + * Handles activation of multiple items + */ + void slotItemsActivated(const KFileItemList& items); + /** + * Creates a new window showing the content of \a url. + */ + void createNewWindow(const QUrl &url); /** * Opens the context menu on the current mouse position. - * @item File item context. If item is 0, the context menu - * should be applied to \a url. - * @url URL which contains \a item. + * @pos Position in screen coordinates. + * @item File item context. If item is null, the context menu + * should be applied to \a url. + * @url URL which contains \a item. + * @customActions Actions that should be added to the context menu, + * if the file item is null. */ - void slotOpenContextMenu(const KFileItem& item, const KUrl& url); + void slotOpenContextMenu(const QPoint& pos, + const KFileItem& item, + const QUrl& url, + const QList& customActions); /** - * Asks the host to open the URL \a url if the current view has - * a different URL. + * Informs the host that we are opening \a url (e.g. after a redirection + * coming from KDirLister). + * Testcase 1: fish://localhost + * Testcase 2: showing a directory that is being renamed by another window (#180156) */ - void slotUrlChanged(const KUrl& url); + void slotDirectoryRedirection(const QUrl& oldUrl, const QUrl& newUrl); /** * Updates the state of the 'Edit' menu actions and emits @@ -146,9 +177,53 @@ private Q_SLOTS: void slotEditMimeType(); /** - * Connected to the "properties" action + * Connected to the "select_items_matching" action. + * Opens a dialog which permits to select all items matching a pattern like "*.jpg". + */ + void slotSelectItemsMatchingPattern(); + + /** + * Connected to the "unselect_items_matching" action. + * Opens a dialog which permits to unselect all items matching a pattern like "*.jpg". */ - void slotProperties(); + void slotUnselectItemsMatchingPattern(); + + /** + * Open a terminal window, starting with the current directory. + */ + void slotOpenTerminal(); + + /** + * Open KFind with the current path. + */ + void slotFindFile(); + + /** + * Updates the 'Create New...' sub menu, just before it's shown. + */ + void updateNewMenu(); + + /** + * Updates the number of items (= number of files + number of + * directories) in the statusbar. If files are selected, the number + * of selected files and the sum of the filesize is shown. + */ + void updateStatusBar(); + + /** + * Notify container of folder loading progress. + */ + void updateProgress(int percent); + + void createDirectory(); + + /** + * Called by konqueror --select + */ + void setFilesToSelect(const QList &files); + QList filesToSelect() const { return QList(); } // silence moc + + virtual bool eventFilter(QObject*, QEvent*) Q_DECL_OVERRIDE; private: void createActions(); @@ -156,31 +231,20 @@ private: const QString& text, const QString& url, QActionGroup* actionGroup); + void openSelectionDialog(const QString& title, const QString& text, + bool selectItems); + private: DolphinView* m_view; DolphinViewActionHandler* m_actionHandler; - KDirLister* m_dirLister; - DolphinModel* m_dolphinModel; - DolphinSortFilterProxyModel* m_proxyModel; + DolphinRemoteEncoding* m_remoteEncoding; DolphinPartBrowserExtension* m_extension; + DolphinNewFileMenu* m_newFileMenu; + QAction* m_findFileAction; + QAction* m_openTerminalAction; + QString m_nameFilter; + DolphinRemoveAction* m_removeAction; Q_DISABLE_COPY(DolphinPart) }; -class DolphinPartBrowserExtension : public KParts::BrowserExtension -{ - Q_OBJECT -public: - DolphinPartBrowserExtension( DolphinPart* part ) - : KParts::BrowserExtension( part ), m_part(part) {} - -public Q_SLOTS: - void cut(); - void copy(); - void paste(); - void reparseConfiguration(); - -private: - DolphinPart* m_part; -}; - #endif /* DOLPHINPART_H */