From 6e51fe146cfabee4ccad8ebdf53aad43c1d74c9f Mon Sep 17 00:00:00 2001 From: Karol Kosek Date: Fri, 16 Jul 2021 17:09:45 +0200 Subject: [PATCH] HackStudio: Disable Delete action on insufficient permissions Hack Studio will now disable the action when any parent of selected files do not have write permission. --- Userland/DevTools/HackStudio/HackStudioWidget.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.cpp b/Userland/DevTools/HackStudio/HackStudioWidget.cpp index 55a48f8b925..65be304ca2e 100644 --- a/Userland/DevTools/HackStudio/HackStudioWidget.cpp +++ b/Userland/DevTools/HackStudio/HackStudioWidget.cpp @@ -796,7 +796,13 @@ void HackStudioWidget::configure_project_tree_view() m_project_tree_view->on_selection_change = [this] { m_open_selected_action->set_enabled(!m_project_tree_view->selection().is_empty()); - m_delete_action->set_enabled(!m_project_tree_view->selection().is_empty()); + + auto selections = m_project_tree_view->selection().indices(); + auto it = selections.find_if([&](auto selected_file) { + return access(m_project->model().full_path(selected_file.parent()).characters(), W_OK) == 0; + }); + bool has_permissions = it != selections.end(); + m_delete_action->set_enabled(!m_project_tree_view->selection().is_empty() && has_permissions); }; m_project_tree_view->on_activation = [this](auto& index) {