#include "treeviewcontextmenu.h"
+#include "folderspanel.h"
+#include "global.h"
+
+#include <KConfigGroup>
+#include <KFileItemListProperties>
#include <KIO/CopyJob>
#include <KIO/DeleteJob>
+#include <KIO/FileUndoManager>
#include <KIO/JobUiDelegate>
-#include <QMenu>
+#include <KIO/Paste>
+#include <KIO/PasteJob>
#include <KJobWidgets>
-#include <KSharedConfig>
-#include <KConfigGroup>
-#include <KUrlMimeData>
-#include <KFileItemListProperties>
#include <KLocalizedString>
-#include <KIO/PasteJob>
-#include <KIO/Paste>
-#include <KIO/FileUndoManager>
#include <KPropertiesDialog>
-
-#include "folderspanel.h"
+#include <KSharedConfig>
+#include <KUrlMimeData>
#include <QApplication>
#include <QClipboard>
+#include <QMenu>
#include <QMimeData>
#include <QPointer>
-#include "global.h"
TreeViewContextMenu::TreeViewContextMenu(FoldersPanel* parent,
const KFileItem& fileInfo) :
{
}
-void TreeViewContextMenu::open()
+void TreeViewContextMenu::open(const QPoint& pos)
{
QMenu* popup = new QMenu(m_parent);
popup->addAction(showHiddenFilesAction);
connect(showHiddenFilesAction, &QAction::toggled, this, &TreeViewContextMenu::setShowHiddenFiles);
- // insert 'Limit to Home Directory'
- const QUrl url = m_fileItem.url();
- const bool enableLimitToHomeDirectory = url.isLocalFile();
- QAction* limitFoldersPanelToHomeAction = new QAction(i18nc("@action:inmenu", "Limit to Home Directory"), this);
- limitFoldersPanelToHomeAction->setCheckable(true);
- limitFoldersPanelToHomeAction->setEnabled(enableLimitToHomeDirectory);
- limitFoldersPanelToHomeAction->setChecked(m_parent->limitFoldersPanelToHome());
- popup->addAction(limitFoldersPanelToHomeAction);
- connect(limitFoldersPanelToHomeAction, &QAction::toggled, this, &TreeViewContextMenu::setLimitFoldersPanelToHome);
+ if (!m_fileItem.isNull()) {
+ // insert 'Limit to Home Directory'
+ const QUrl url = m_fileItem.url();
+ const bool enableLimitToHomeDirectory = url.isLocalFile();
+ QAction* limitFoldersPanelToHomeAction = new QAction(i18nc("@action:inmenu", "Limit to Home Directory"), this);
+ limitFoldersPanelToHomeAction->setCheckable(true);
+ limitFoldersPanelToHomeAction->setEnabled(enableLimitToHomeDirectory);
+ limitFoldersPanelToHomeAction->setChecked(m_parent->limitFoldersPanelToHome());
+ popup->addAction(limitFoldersPanelToHomeAction);
+ connect(limitFoldersPanelToHomeAction, &QAction::toggled, this, &TreeViewContextMenu::setLimitFoldersPanelToHome);
+ }
// insert 'Automatic Scrolling'
QAction* autoScrollingAction = new QAction(i18nc("@action:inmenu", "Automatic Scrolling"), this);
}
QPointer<QMenu> popupPtr = popup;
- popup->exec(QCursor::pos());
+ popup->exec(pos);
if (popupPtr.data()) {
popupPtr.data()->deleteLater();
}
kdeUrls.append(m_fileItem.url());
QList<QUrl> mostLocalUrls;
bool dummy;
- mostLocalUrls.append(m_fileItem.mostLocalUrl(dummy));
+ mostLocalUrls.append(m_fileItem.mostLocalUrl(&dummy));
KIO::setClipboardDataCut(mimeData, cut);
KUrlMimeData::setUrls(kdeUrls, mostLocalUrls, mimeData);
}