X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/b5e97174d08ab59eca35deaaa9a84a7838f51bfb..39f89141b06c:/src/dolphinpart.h diff --git a/src/dolphinpart.h b/src/dolphinpart.h index e21141b12..dd5fe1e37 100644 --- a/src/dolphinpart.h +++ b/src/dolphinpart.h @@ -22,7 +22,10 @@ #include #include -class KNewMenu; + +#include + +class KNewFileMenu; class DolphinViewActionHandler; class QActionGroup; class KAction; @@ -30,10 +33,10 @@ class KFileItemList; class KFileItem; class DolphinPartBrowserExtension; class DolphinSortFilterProxyModel; +class DolphinRemoteEncoding; class DolphinModel; class KDirLister; class DolphinView; -class QLineEdit; class KAboutData; class DolphinPart : public KParts::ReadOnlyPart @@ -49,6 +52,9 @@ class DolphinPart : public KParts::ReadOnlyPart // 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( KUrl::List filesToSelect READ filesToSelect WRITE setFilesToSelect ) + public: explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args); ~DolphinPart(); @@ -112,7 +118,7 @@ Q_SIGNALS: 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 @@ -129,22 +135,23 @@ private Q_SLOTS: void createNewWindow(const KUrl& 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. - */ - void slotOpenContextMenu(const KFileItem& item, const KUrl& url); - - /** - * Asks the host to open the URL \a url if the current view has - * a different URL. + * @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 slotRequestUrlChange(const KUrl& url); + void slotOpenContextMenu(const KFileItem& item, + const KUrl& url, + const QList& customActions); /** - * Informs the host that we are opening \a url (e.g. after a redirection). + * 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 slotRedirection(const KUrl& oldUrl, const KUrl& newUrl); /** * Updates the state of the 'Edit' menu actions and emits @@ -168,6 +175,18 @@ private Q_SLOTS: */ void slotEditMimeType(); + /** + * 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 slotUnselectItemsMatchingPattern(); + /** * Open a terminal window, starting with the current directory. */ @@ -178,20 +197,46 @@ private Q_SLOTS: */ 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 KUrl::List& files); + KUrl::List filesToSelect() const { return KUrl::List(); } // silence moc + private: void createActions(); void createGoAction(const char* name, const char* iconName, const QString& text, const QString& url, QActionGroup* actionGroup); + void openSelectionDialog(const QString& title, const QString& text, + QItemSelectionModel::SelectionFlags command); + + QItemSelection childrenMatchingPattern(const QModelIndex& parent, const QRegExp& patternRegExp); + private: DolphinView* m_view; DolphinViewActionHandler* m_actionHandler; + DolphinRemoteEncoding* m_remoteEncoding; KDirLister* m_dirLister; DolphinModel* m_dolphinModel; DolphinSortFilterProxyModel* m_proxyModel; DolphinPartBrowserExtension* m_extension; - KNewMenu* m_newMenu; + KNewFileMenu* m_newFileMenu; QString m_nameFilter; Q_DISABLE_COPY(DolphinPart) }; @@ -203,10 +248,14 @@ public: DolphinPartBrowserExtension( DolphinPart* part ) : KParts::BrowserExtension( part ), m_part(part) {} + virtual void restoreState(QDataStream &stream); + virtual void saveState(QDataStream &stream); + public Q_SLOTS: void cut(); void copy(); void paste(); + void pasteTo(const KUrl&); void reparseConfiguration(); private: