#include <kmimetypetrader.h>
#include <knewmenu.h>
#include <konqmimedata.h>
+#include <konq_fileitemcapabilities.h>
#include <konq_operations.h>
#include <konq_menuactions.h>
+#include <konq_popupmenuinformation.h>
#include <klocale.h>
#include <kpropertiesdialog.h>
#include <krun.h>
const KFileItem& fileInfo,
const KUrl& baseUrl) :
m_mainWindow(parent),
+ m_capabilities(0),
m_fileInfo(fileInfo),
m_baseUrl(baseUrl),
m_context(NoContext)
DolphinContextMenu::~DolphinContextMenu()
{
+ delete m_capabilities;
+ m_capabilities = 0;
}
void DolphinContextMenu::open()
}
// Insert 'Open With...' sub menu
+ // TODO: port to menuActions.addOpenWithActionsTo(popup);
QVector<KService::Ptr> openWithVector;
const QList<QAction*> openWithActions = insertOpenWithItems(popup, openWithVector);
+ KonqPopupMenuInformation popupInfo;
+ popupInfo.setItems(m_selectedItems);
+ popupInfo.setParentWidget(m_mainWindow);
+
// Insert 'Actions' sub menu
KonqMenuActions menuActions;
- menuActions.setItems(m_selectedItems);
+ menuActions.setPopupMenuInfo(popupInfo);
if (menuActions.addActionsTo(popup)) {
popup->addSeparator();
}
// Insert 'Copy To' and 'Move To' sub menus
if (DolphinSettings::instance().generalSettings()->showCopyMoveMenu()) {
m_copyToMenu.setItems(m_selectedItems);
+ m_copyToMenu.setReadOnly(!capabilities().supportsWriting());
m_copyToMenu.addActionsTo(popup);
popup->addSeparator();
}
action = new QAction(KIcon("edit-paste"), i18nc("@action:inmenu", "Paste Into Folder"), this);
const QMimeData* mimeData = QApplication::clipboard()->mimeData();
const KUrl::List pasteData = KUrl::List::fromMimeData(mimeData);
- action->setEnabled(!pasteData.isEmpty());
+ action->setEnabled(!pasteData.isEmpty() && capabilities().supportsWriting());
connect(action, SIGNAL(triggered()), m_mainWindow, SLOT(pasteIntoFolder()));
} else {
action = m_mainWindow->actionCollection()->action(KStandardAction::name(KStandardAction::Paste));
return action;
}
+KonqFileItemCapabilities& DolphinContextMenu::capabilities()
+{
+ if (m_capabilities == 0) {
+ m_capabilities = new KonqFileItemCapabilities(m_selectedItems);
+ }
+ return *m_capabilities;
+}
+
#include "dolphincontextmenu.moc"