mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
48b58f830a
Summary: I used CLion inspection to hunt all unused #include Reviewers: #dolphin, elvisangelaccio, markg Reviewed By: #dolphin, elvisangelaccio, markg Subscribers: bcooksley, markg, elvisangelaccio, #dolphin Differential Revision: https://phabricator.kde.org/D10985
251 lines
7.7 KiB
C++
251 lines
7.7 KiB
C++
/* 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.
|
|
*/
|
|
|
|
#ifndef DOLPHINPART_H
|
|
#define DOLPHINPART_H
|
|
|
|
#include <KParts/ReadOnlyPart>
|
|
|
|
#include <QUrl>
|
|
|
|
class DolphinNewFileMenu;
|
|
class DolphinViewActionHandler;
|
|
class QActionGroup;
|
|
class KFileItemList;
|
|
class KFileItem;
|
|
class DolphinPartBrowserExtension;
|
|
class DolphinRemoteEncoding;
|
|
class KDirLister;
|
|
class DolphinView;
|
|
class KAboutData;
|
|
class DolphinRemoveAction;
|
|
|
|
class DolphinPart : public KParts::ReadOnlyPart
|
|
{
|
|
Q_OBJECT
|
|
// Used by konqueror. Technically it means "we want undo enabled if
|
|
// there are things in the undo history and the current part is a dolphin part".
|
|
// 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 )
|
|
|
|
// Used by konqueror to implement the --select command-line option
|
|
Q_PROPERTY( QList<QUrl> filesToSelect READ filesToSelect WRITE setFilesToSelect )
|
|
|
|
public:
|
|
explicit DolphinPart(QWidget* parentWidget, QObject* parent, const QVariantList& args);
|
|
~DolphinPart() override;
|
|
|
|
static KAboutData* createAboutData();
|
|
|
|
/**
|
|
* Standard KParts::ReadOnlyPart openUrl method.
|
|
* Called by Konqueror to view a directory in DolphinPart.
|
|
*/
|
|
bool openUrl(const QUrl& url) override;
|
|
|
|
/// 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.
|
|
*/
|
|
bool openFile() override { 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 slotMessage(const QString& msg);
|
|
void slotErrorMessage(const QString& msg);
|
|
/**
|
|
* Shows the information for the item \a item inside the statusbar. If the
|
|
* item is null, the default statusbar information is shown.
|
|
*/
|
|
void slotRequestItemInfo(const KFileItem& item);
|
|
/**
|
|
* 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 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.
|
|
* @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 QUrl& url,
|
|
const QList<QAction*>& customActions);
|
|
|
|
/**
|
|
* 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 slotDirectoryRedirection(const QUrl& oldUrl, const QUrl& newUrl);
|
|
|
|
/**
|
|
* Updates the state of the 'Edit' menu actions and emits
|
|
* the signal selectionChanged().
|
|
*/
|
|
void slotSelectionChanged(const KFileItemList& selection);
|
|
|
|
/**
|
|
* Updates the text of the paste action dependent from
|
|
* the number of items which are in the clipboard.
|
|
*/
|
|
void updatePasteAction();
|
|
|
|
/**
|
|
* Connected to all "Go" menu actions provided by DolphinPart
|
|
*/
|
|
void slotGoTriggered(QAction* action);
|
|
|
|
/**
|
|
* Connected to the "editMimeType" action
|
|
*/
|
|
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 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<QUrl> &files);
|
|
QList<QUrl> filesToSelect() const { return QList<QUrl>(); } // silence moc
|
|
|
|
bool eventFilter(QObject*, QEvent*) override;
|
|
|
|
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;
|
|
DolphinPartBrowserExtension* m_extension;
|
|
DolphinNewFileMenu* m_newFileMenu;
|
|
QAction* m_findFileAction;
|
|
QAction* m_openTerminalAction;
|
|
QString m_nameFilter;
|
|
DolphinRemoveAction* m_removeAction;
|
|
Q_DISABLE_COPY(DolphinPart)
|
|
};
|
|
|
|
#endif /* DOLPHINPART_H */
|