#include "treeviewcontextmenu.h"
-#include <KFileItem>
+#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 <QIcon>
+#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>
{
}
-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);
+ 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);
autoScrollingAction->setCheckable(true);
}
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);
}
m_parent->setShowHiddenFiles(show);
}
+void TreeViewContextMenu::setLimitFoldersPanelToHome(bool enable)
+{
+ m_parent->setLimitFoldersPanelToHome(enable);
+}
+
void TreeViewContextMenu::setAutoScrolling(bool enable)
{
m_parent->setAutoScrolling(enable);