#include "dolphinremoveaction.h"
#include <KActionCollection>
-#include <kfileitemactionplugin.h>
-#include <kabstractfileitemactionplugin.h>
+#include <KAbstractFileItemActionPlugin>
#include <KFileItemActions>
#include <KFileItemListProperties>
#include <KIO/RestoreJob>
#include <KIO/EmptyTrashJob>
#include <KIO/JobUiDelegate>
+#include <KIO/Paste>
#include <KJobWidgets>
-#include <QMenu>
#include <KMimeTypeTrader>
-#include <KMimeType>
#include <KNewFileMenu>
-#include <konq_operations.h>
#include <KService>
#include <KLocalizedString>
#include <KStandardAction>
#include <KToolBar>
+#include <QApplication>
+#include <QClipboard>
+#include <QKeyEvent>
#include <QMenuBar>
+#include <QMenu>
+
#include <panels/places/placesitem.h>
#include <panels/places/placesitemmodel.h>
DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent,
const QPoint& pos,
const KFileItem& fileInfo,
- const KUrl& baseUrl) :
+ const QUrl& baseUrl) :
QMenu(parent),
m_pos(pos),
m_mainWindow(parent),
DolphinContextMenu::Command DolphinContextMenu::open()
{
// get the context information
- if (m_baseUrl.protocol() == QLatin1String("trash")) {
+ if (m_baseUrl.scheme() == QLatin1String("trash")) {
m_context |= TrashContext;
}
addAction(propertiesAction);
if (exec(m_pos) == restoreAction) {
- KUrl::List selectedUrls;
+ QList<QUrl> selectedUrls;
foreach (const KFileItem &item, m_selectedItems) {
selectedUrls.append(item.url());
}
}
addSeparator();
- } else if (m_baseUrl.protocol().contains("search") || m_baseUrl.protocol().contains("timeline")) {
+ } else if (m_baseUrl.scheme().contains("search") || m_baseUrl.scheme().contains("timeline")) {
openParentAction = new QAction(QIcon::fromTheme("document-open-folder"),
i18nc("@action:inmenu",
"Open Path"),
} else {
bool selectionHasOnlyDirs = true;
foreach (const KFileItem& item, m_selectedItems) {
- const KUrl& url = DolphinView::openItemAsFolderUrl(item);
+ const QUrl& url = DolphinView::openItemAsFolderUrl(item);
if (url.isEmpty()) {
selectionHasOnlyDirs = false;
break;
QAction* activatedAction = exec(m_pos);
if (activatedAction) {
if (activatedAction == addToPlacesAction) {
- const KUrl selectedUrl(m_fileInfo.url());
+ const QUrl selectedUrl(m_fileInfo.url());
if (selectedUrl.isValid()) {
PlacesItemModel model;
const QString text = selectedUrl.fileName();
}
}
-bool DolphinContextMenu::placeExists(const KUrl& url) const
+bool DolphinContextMenu::placeExists(const QUrl& url) const
{
PlacesItemModel model;
const int count = model.count();
for (int i = 0; i < count; ++i) {
- const KUrl placeUrl = model.placesItem(i)->url();
- if (placeUrl.equals(url, KUrl::CompareWithoutTrailingSlash)) {
+ const QUrl placeUrl = model.placesItem(i)->url();
+ if (placeUrl.matches(url, QUrl::StripTrailingSlash)) {
return true;
}
}
QAction* action = 0;
const bool isDir = !m_fileInfo.isNull() && m_fileInfo.isDir();
if (isDir && (m_selectedItems.count() == 1)) {
- const QPair<bool, QString> pasteInfo = KonqOperations::pasteInfo(m_fileInfo.url());
- action = new QAction(QIcon::fromTheme("edit-paste"), i18nc("@action:inmenu", "Paste Into Folder"), this);
- action->setEnabled(pasteInfo.first);
+ const QMimeData *mimeData = QApplication::clipboard()->mimeData();
+ bool canPaste;
+ const QString text = KIO::pasteActionText(mimeData, &canPaste, m_fileInfo);
+ action = new QAction(QIcon::fromTheme("edit-paste"), text, this);
+ action->setEnabled(canPaste);
connect(action, &QAction::triggered, m_mainWindow, &DolphinMainWindow::pasteIntoFolder);
} else {
action = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
KFileItem DolphinContextMenu::baseFileItem()
{
if (!m_baseFileItem) {
- m_baseFileItem = new KFileItem(KFileItem::Unknown, KFileItem::Unknown, m_baseUrl);
+ m_baseFileItem = new KFileItem(m_baseUrl);
}
return *m_baseFileItem;
}
continue;
}
- // Old API (kdelibs-4.6.0 only)
- KFileItemActionPlugin* plugin = service->createInstance<KFileItemActionPlugin>();
- if (plugin) {
- plugin->setParent(this);
- addActions(plugin->actions(props, m_mainWindow));
- }
- // New API (kdelibs >= 4.6.1)
KAbstractFileItemActionPlugin* abstractPlugin = service->createInstance<KAbstractFileItemActionPlugin>();
if (abstractPlugin) {
abstractPlugin->setParent(this);