/* This file is part of the KDE project
- Copyright (c) 2007 David Faure <faure@kde.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ SPDX-FileCopyrightText: 2007 David Faure <faure@kde.org>
+
+ SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef DOLPHINPART_H
#define DOLPHINPART_H
-#include <kparts/part.h>
-#include <kparts/browserextension.h>
-#include <kparts/fileinfoextension.h>
-#include <kparts/listingextension.h>
+#include <KParts/ReadOnlyPart>
-#include <QItemSelectionModel>
+#include <QAction>
+#include <QUrl>
-class KNewFileMenu;
+class DolphinNewFileMenu;
class DolphinViewActionHandler;
class QActionGroup;
-class KAction;
class KFileItemList;
class KFileItem;
class DolphinPartBrowserExtension;
-class DolphinSortFilterProxyModel;
class DolphinRemoteEncoding;
-class DolphinModel;
class KDirLister;
class DolphinView;
-class KAboutData;
+class DolphinRemoveAction;
class DolphinPart : public KParts::ReadOnlyPart
{
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 )
+ Q_PROPERTY( QList<QUrl> filesToSelect READ filesToSelect WRITE setFilesToSelect )
public:
- explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args);
- ~DolphinPart();
-
- static KAboutData* createAboutData();
+ explicit DolphinPart(QWidget* parentWidget, QObject* parent,
+ const KPluginMetaData& metaData, const QVariantList& args);
+ ~DolphinPart() override;
/**
* Standard KParts::ReadOnlyPart openUrl method.
* Called by Konqueror to view a directory in DolphinPart.
*/
- virtual bool openUrl(const KUrl& url);
+ bool openUrl(const QUrl& url) override;
/// see the supportsUndo property
bool supportsUndo() const { return true; }
/**
* We reimplement openUrl so no need to implement openFile.
*/
- virtual bool openFile() { return true; }
+ bool openFile() override { return true; }
Q_SIGNALS:
/**
* Handles clicking on an 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);
+ void createNewWindow(const QUrl &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.
+ * @selectedItems The selected items for which the context menu
+ * is opened. This list generally includes \a item.
* @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 QPoint& pos,
- const KFileItem& item,
- const KUrl& url,
- const QList<QAction*>& customActions);
+ void slotOpenContextMenu(const QPoint &pos, const KFileItem &_item, const KFileItemList &selectedItems, const QUrl &);
/**
* Informs the host that we are opening \a url (e.g. after a redirection
* Testcase 1: fish://localhost
* Testcase 2: showing a directory that is being renamed by another window (#180156)
*/
- void slotDirectoryRedirection(const KUrl& oldUrl, const KUrl& newUrl);
+ void slotDirectoryRedirection(const QUrl& oldUrl, const QUrl& newUrl);
/**
* Updates the state of the 'Edit' menu actions and emits
void slotOpenTerminal();
/**
- * Open KFind with the current path.
+ * Open preferred search tool in the current directory to find files.
*/
void slotFindFile();
/**
* Called by konqueror --select
*/
- void setFilesToSelect(const KUrl::List& files);
- KUrl::List filesToSelect() const { return KUrl::List(); } // silence moc
+ void setFilesToSelect(const QList<QUrl> &files);
+ QList<QUrl> filesToSelect() const { return QList<QUrl>(); } // silence moc
+
+ bool eventFilter(QObject*, QEvent*) override;
private:
void createActions();
void openSelectionDialog(const QString& title, const QString& text,
bool selectItems);
+ QString urlToLocalFilePath(const QUrl &url);
+ QString localFilePathOrHome() const;
private:
DolphinView* m_view;
DolphinViewActionHandler* m_actionHandler;
DolphinRemoteEncoding* m_remoteEncoding;
DolphinPartBrowserExtension* m_extension;
- KNewFileMenu* m_newFileMenu;
- KAction* m_findFileAction;
- KAction* m_openTerminalAction;
+ 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) {}
-
- 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;
-};
-
-class DolphinPartListingFilterExtension : public KParts::ListingFilterExtension
-{
- Q_OBJECT
-
-public:
- DolphinPartListingFilterExtension (DolphinPart* part);
- virtual FilterModes supportedFilterModes() const;
- virtual bool supportsMultipleFilters (FilterMode mode) const;
- virtual QVariant filter (FilterMode mode) const;
- virtual void setFilter (FilterMode mode, const QVariant& filter);
-
-private:
- DolphinPart* m_part;
-};
-
#endif /* DOLPHINPART_H */