FileManager: Deny rename in PropertiesDialog if user can't write in path
The FileManager PropertiesDialog always let the user change the name of files and folders to then be prompted with write permissions error. Now it checks for write permissions on the containing folder so it can "disable" the TextBox input. We can't really disable TextBox right now, hence the quotes.
This commit is contained in:
parent
1d874c03af
commit
cb118111b6
Notes:
sideshowbarker
2024-07-19 07:14:14 +09:00
Author: https://github.com/zlotny Commit: https://github.com/SerenityOS/serenity/commit/cb118111b66 Pull-request: https://github.com/SerenityOS/serenity/pull/1967 Reviewed-by: https://github.com/awesomekling Reviewed-by: https://github.com/sunverwerth
1 changed files with 4 additions and 1 deletions
|
@ -428,13 +428,16 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> config, String initial_locatio
|
|||
= GUI::Action::create(
|
||||
"Properties...", { Mod_Alt, Key_Return }, Gfx::Bitmap::load_from_file("/res/icons/16x16/properties.png"), [&](const GUI::Action& action) {
|
||||
auto& model = directory_view.model();
|
||||
String container_dir_path;
|
||||
String path;
|
||||
Vector<String> selected;
|
||||
if (action.activator() == directory_context_menu || directory_view.active_widget()->is_focused()) {
|
||||
path = directory_view.path();
|
||||
container_dir_path = path;
|
||||
selected = selected_file_paths();
|
||||
} else {
|
||||
path = directories_model->full_path(tree_view.selection().first());
|
||||
container_dir_path = FileSystemPath(path).basename();
|
||||
selected = tree_view_selected_file_paths();
|
||||
}
|
||||
|
||||
|
@ -442,7 +445,7 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> config, String initial_locatio
|
|||
if (selected.is_empty()) {
|
||||
properties = window->add<PropertiesDialog>(model, path, true);
|
||||
} else {
|
||||
properties = window->add<PropertiesDialog>(model, selected.first(), false);
|
||||
properties = window->add<PropertiesDialog>(model, selected.first(), access(container_dir_path.characters(), W_OK) != 0);
|
||||
}
|
||||
|
||||
properties->exec();
|
||||
|
|
Loading…
Add table
Reference in a new issue