#include <kparts/part.h>
#include <kparts/browserextension.h>
-class KNewMenu;
+#include <kparts/fileinfoextension.h>
+
+#include <QItemSelectionModel>
+
+class KNewFileMenu;
class DolphinViewActionHandler;
class QActionGroup;
class KAction;
class DolphinModel;
class KDirLister;
class DolphinView;
-class QLineEdit;
class KAboutData;
+class DolphinRemoveAction;
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();
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
/**
* 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 KUrl& url);
/**
* Opens the context menu on the current mouse position.
+ * @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,
+ void slotOpenContextMenu(const QPoint& pos,
+ const KFileItem& item,
const KUrl& url,
const QList<QAction*>& customActions);
- /**
- * Asks the host to open the URL \a url if the current view has
- * a different URL.
- */
- void slotRequestUrlChange(const KUrl& 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 slotRedirection(const KUrl& oldUrl, const KUrl& newUrl);
+ void slotDirectoryRedirection(const KUrl& oldUrl, const KUrl& newUrl);
/**
* Updates the state of the 'Edit' menu actions and emits
*/
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.
*/
void slotOpenTerminal();
+ /**
+ * Open KFind with the current path.
+ */
+ void slotFindFile();
+
/**
* Updates the 'Create New...' sub menu, just before it's shown.
*/
void createDirectory();
+ /**
+ * Called by konqueror --select
+ */
+ void setFilesToSelect(const KUrl::List& files);
+ KUrl::List filesToSelect() const { return KUrl::List(); } // silence moc
+
+ virtual bool eventFilter(QObject*, QEvent*);
+
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,
+ bool selectItems);
+
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;
+ KAction* m_findFileAction;
+ KAction* m_openTerminalAction;
QString m_nameFilter;
+ DolphinRemoveAction* m_removeAction;
Q_DISABLE_COPY(DolphinPart)
};
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:
DolphinPart* m_part;
};
+
+class DolphinPartFileInfoExtension : public KParts::FileInfoExtension
+{
+ Q_OBJECT
+
+public:
+ DolphinPartFileInfoExtension(DolphinPart* part);
+
+ virtual QueryModes supportedQueryModes() const;
+ virtual bool hasSelection() const;
+
+ virtual KFileItemList queryFor(QueryMode mode) const;
+protected:
+ DolphinPart* part() const;
+};
+
#endif /* DOLPHINPART_H */