X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/c00478bbc1001d10dcfc04e9b0ea251620837e85..b1c9b5126d:/src/dolphinpart.h diff --git a/src/dolphinpart.h b/src/dolphinpart.h index 04161b6be..a25bc72f3 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -22,6 +22,8 @@ #include #include +class KNewMenu; +class DolphinViewActionHandler; class QActionGroup; class KAction; class KFileItemList; @@ -42,25 +44,71 @@ class DolphinPart : public KParts::ReadOnlyPart // Even though it's konqueror doing the undo... Q_PROPERTY( bool supportsUndo READ supportsUndo ) + 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 ) + public: - explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QStringList& args); + explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args); ~DolphinPart(); static KAboutData* createAboutData(); + /** + * Standard KParts::ReadOnlyPart openUrl method. + * Called by Konqueror to view a directory in DolphinPart. + */ virtual bool openUrl(const KUrl& url); /// see the supportsUndo property bool supportsUndo() const { return true; } + /** + * Used by konqueror for setting the view mode + * @param viewModeName internal name for the view mode, like "icons" + * Those names come from the Actions line in dolphinpart.desktop, + * and have to match the name of the KActions. + */ + void setCurrentViewMode(const QString& viewModeName); + + /** + * Used by konqueror for displaying the current view mode. + * @see setCurrentViewMode + */ + QString currentViewMode() const; + + /// 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; } +Q_SIGNALS: + /** + * Emitted when the view mode changes. Used by konqueror. + */ + void viewModeChanged(); + + + /** + * 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); @@ -76,33 +124,40 @@ private Q_SLOTS: */ void slotItemTriggered(const KFileItem& item); /** - * 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. + * Creates a new window showing the content of \a url. */ - void slotOpenContextMenu(const KFileItem& item, const KUrl& url); + void createNewWindow(const KUrl& url); /** - * Emitted when the user requested a change of view mode + * Opens the context menu on the current mouse position. + * @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 slotViewModeActionTriggered(QAction*); + void slotOpenContextMenu(const KFileItem& item, + const KUrl& url, + const QList& customActions); /** * Asks the host to open the URL \a url if the current view has * a different URL. */ - void slotUrlChanged(const KUrl& url); + void slotRequestUrlChange(const KUrl& url); /** - * Updates the state of the 'Edit' menu actions and emits - * the signal selectionChanged(). + * 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 slotSelectionChanged(const KFileItemList& selection); + void slotRedirection(const KUrl& oldUrl, const KUrl& newUrl); /** - * Same as in DolphinMainWindow: updates the view menu actions + * Updates the state of the 'Edit' menu actions and emits + * the signal selectionChanged(). */ - void updateViewActions(); + void slotSelectionChanged(const KFileItemList& selection); /** * Updates the text of the paste action dependent from @@ -110,11 +165,6 @@ private Q_SLOTS: */ void updatePasteAction(); - /** - * Connected to the "move_to_trash" action; adds "shift means del" handling. - */ - void slotTrashActivated(Qt::MouseButtons, Qt::KeyboardModifiers); - /** * Connected to all "Go" menu actions provided by DolphinPart */ @@ -126,15 +176,26 @@ private Q_SLOTS: void slotEditMimeType(); /** - * Connected to the "properties" action + * Open a terminal window, starting with the current directory. */ - void slotProperties(); + void slotOpenTerminal(); /** - * Opens the dialog for creating a directory. Is connected - * with the key shortcut for "new directory" (F10). + * Updates the 'Create New...' sub menu, just before it's shown. */ - void createDir(); + 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); private: void createActions(); @@ -144,10 +205,13 @@ private: private: DolphinView* m_view; + DolphinViewActionHandler* m_actionHandler; KDirLister* m_dirLister; DolphinModel* m_dolphinModel; DolphinSortFilterProxyModel* m_proxyModel; DolphinPartBrowserExtension* m_extension; + KNewMenu* m_newMenu; + QString m_nameFilter; Q_DISABLE_COPY(DolphinPart) }; @@ -162,6 +226,7 @@ public Q_SLOTS: void cut(); void copy(); void paste(); + void reparseConfiguration(); private: DolphinPart* m_part;