From f5818306d014fafaf35ef10ee83e286eebea9cd7 Mon Sep 17 00:00:00 2001 From: Kostiantin Korchuhanov Date: Fri, 15 Aug 2025 16:29:34 +0300 Subject: itemactions: Add context menu actions to hide and unhide files using .hidden Summary: This patch introduces context menu actions that allow users to hide or unhide selected files by editing the .hidden file in their parent directories. What this patch does: - Implemented HideFileItemAction plugin based on KAbstractFileItemActionPlugin - Plugin is disabled by default unless explicitly enabled in kservicemenurc via the hidefileitemaction key - "Hide" action adds selected file names to the .hidden file, avoiding duplicates - "Unhide" action removes selected file names from the .hidden file - Action visibility logic: - If only visible or only hidden files are selected, only the relevant action is shown - If both are selected, both "Hide" and "Unhide" actions are shown - Write permission checks ensure actions are disabled if the .hidden file cannot be modified - Optimized redundant path computations by calculating parent directory and .hidden file paths once and reusing them --- src/itemactions/hidefileitemaction.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/itemactions/hidefileitemaction.json (limited to 'src/itemactions/hidefileitemaction.json') diff --git a/src/itemactions/hidefileitemaction.json b/src/itemactions/hidefileitemaction.json new file mode 100644 index 000000000..7b4627254 --- /dev/null +++ b/src/itemactions/hidefileitemaction.json @@ -0,0 +1,10 @@ +{ + "KPlugin": { + "Icon": "hide_table_row", + "MimeTypes": [ + "application/octet-stream" + ], + "Name": "Hide" + }, + "X-KDE-Show-In-Submenu": true +} -- cgit v1.3