HackStudio: Implement removing file from disk

This commit is contained in:
Bui Quang Minh 2021-03-02 12:18:59 +07:00 committed by Andreas Kling
parent c7777ff289
commit ee7c8fbd7b
Notes: sideshowbarker 2024-07-18 21:46:22 +09:00

View file

@ -376,15 +376,32 @@ NonnullRefPtr<GUI::Action> HackStudioWidget::create_delete_action()
return;
for (auto& file : files) {
if (1) {
// FIXME: Remove `file` from disk
} else {
struct stat st;
if (lstat(file.characters(), &st) < 0) {
GUI::MessageBox::show(window(),
String::formatted("Removing file {} from the project failed.", file),
String::formatted("lstat ({}) failed: {}", file, strerror(errno)),
"Removal failed",
GUI::MessageBox::Type::Error);
break;
}
bool is_directory = S_ISDIR(st.st_mode);
auto result = Core::File::remove(file, Core::File::RecursionMode::Allowed, false);
if (result.is_error()) {
auto& error = result.error();
if (is_directory) {
GUI::MessageBox::show(window(),
String::formatted("Removing directory {} from the project failed: {}", error.file, error.error_code),
"Removal failed",
GUI::MessageBox::Type::Error);
} else {
GUI::MessageBox::show(window(),
String::formatted("Removing file {} from the project failed: {}", error.file, error.error_code),
"Removal failed",
GUI::MessageBox::Type::Error);
}
break;
}
}
});
delete_action->set_enabled(false);