mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 17:10:23 +00:00
HackStudio: Ask to create a non-existent directory when making a project
Previously, if the parent directory didn't exist when making a project, it would say that the creation directory was 'invalid' which isn't necessarily true. This patch prompts the user to ask if they would like to create the parent directory when creating a project, instead of treating it as an 'invalid' directory.
This commit is contained in:
parent
5d0851cb0e
commit
cc1b2b95f7
Notes:
sideshowbarker
2024-07-17 22:05:52 +09:00
Author: https://github.com/caoimhebyrne Commit: https://github.com/SerenityOS/serenity/commit/cc1b2b95f74 Pull-request: https://github.com/SerenityOS/serenity/pull/11450 Reviewed-by: https://github.com/itamar8910 ✅
1 changed files with 13 additions and 3 deletions
|
@ -154,9 +154,6 @@ Optional<String> NewProjectDialog::get_available_project_name()
|
|||
if (!s_project_name_validity_regex.has_match(chosen_name))
|
||||
return {};
|
||||
|
||||
if (!Core::File::exists(create_in) || !Core::File::is_directory(create_in))
|
||||
return {};
|
||||
|
||||
// Check for up-to 999 variations of the project name, in case it's already taken
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
auto candidate = (i == 0)
|
||||
|
@ -200,6 +197,19 @@ void NewProjectDialog::do_create_project()
|
|||
return;
|
||||
}
|
||||
|
||||
auto create_in = m_create_in_input->text();
|
||||
if (!Core::File::exists(create_in) || !Core::File::is_directory(create_in)) {
|
||||
auto result = GUI::MessageBox::show(this, String::formatted("The directory {} does not exist yet, would you like to create it?", create_in), "New project", GUI::MessageBox::Type::Question, GUI::MessageBox::InputType::YesNo);
|
||||
if (result != GUI::MessageBox::ExecResult::ExecYes)
|
||||
return;
|
||||
|
||||
auto created = Core::File::ensure_parent_directories(maybe_project_full_path.value());
|
||||
if (!created) {
|
||||
GUI::MessageBox::show_error(this, String::formatted("Could not create directory {}", create_in));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
auto creation_result = project_template->create_project(maybe_project_name.value(), maybe_project_full_path.value());
|
||||
if (!creation_result.is_error()) {
|
||||
// Successfully created, attempt to open the new project
|
||||
|
|
Loading…
Reference in a new issue