]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/folders/treeviewcontextmenu.cpp
"Use newly-upstreamed rename dialog from KIO""
[dolphin.git] / src / panels / folders / treeviewcontextmenu.cpp
index bf97c6d8fcb274d4fc9a79069d36fd2b6b0e6942..6c4adf8836b95dbda1a5e51f16117305ae60eed0 100644 (file)
@@ -55,7 +55,7 @@ TreeViewContextMenu::~TreeViewContextMenu()
 {
 }
 
-void TreeViewContextMenu::open()
+void TreeViewContextMenu::open(const QPoint& pos)
 {
     QMenu* popup = new QMenu(m_parent);
 
@@ -123,15 +123,17 @@ void TreeViewContextMenu::open()
     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);
@@ -159,7 +161,7 @@ void TreeViewContextMenu::open()
     }
 
     QPointer<QMenu> popupPtr = popup;
-    popup->exec(QCursor::pos());
+    popup->exec(pos);
     if (popupPtr.data()) {
         popupPtr.data()->deleteLater();
     }
@@ -171,7 +173,7 @@ void TreeViewContextMenu::populateMimeData(QMimeData* mimeData, bool cut)
     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);
 }