|
|
|
@ -304,6 +304,8 @@ void Window::set_menu_actions() { |
|
|
|
if(!ec && last_write_time >= time_now) { |
|
|
|
if(!ec && last_write_time >= time_now) { |
|
|
|
if(!Directories::get().path.empty()) |
|
|
|
if(!Directories::get().path.empty()) |
|
|
|
Directories::get().update(); |
|
|
|
Directories::get().update(); |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
Directories::get().open(path); |
|
|
|
Terminal::get().print("New folder " + path.string() + " created.\n"); |
|
|
|
Terminal::get().print("New folder " + path.string() + " created.\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
@ -419,8 +421,11 @@ void Window::set_menu_actions() { |
|
|
|
}); |
|
|
|
}); |
|
|
|
menu.add_action("file_open_folder", []() { |
|
|
|
menu.add_action("file_open_folder", []() { |
|
|
|
auto path = Dialog::open_folder(Project::get_preferably_directory_folder()); |
|
|
|
auto path = Dialog::open_folder(Project::get_preferably_directory_folder()); |
|
|
|
if(!path.empty()) |
|
|
|
if(!path.empty()) { |
|
|
|
Directories::get().open(path); |
|
|
|
Directories::get().open(path); |
|
|
|
|
|
|
|
if(auto view = Notebook::get().get_current_view()) |
|
|
|
|
|
|
|
Directories::get().select(view->file_path); |
|
|
|
|
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
menu.add_action("file_reload_file", []() { |
|
|
|
menu.add_action("file_reload_file", []() { |
|
|
|
@ -476,6 +481,29 @@ void Window::set_menu_actions() { |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
menu.add_action("file_close_file", []() { |
|
|
|
|
|
|
|
if(Notebook::get().get_current_view()) |
|
|
|
|
|
|
|
Notebook::get().close_current(); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
menu.add_action("file_close_folder", []() { |
|
|
|
|
|
|
|
Directories::get().close(Directories::get().path); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
menu.add_action("file_close_project", []() { |
|
|
|
|
|
|
|
if(!Notebook::get().get_current_view() && Directories::get().path.empty()) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
auto project_path = Project::get_preferably_view_folder(); |
|
|
|
|
|
|
|
auto build = Project::Build::create(project_path); |
|
|
|
|
|
|
|
if(!build->project_path.empty()) |
|
|
|
|
|
|
|
project_path = build->project_path; |
|
|
|
|
|
|
|
for(size_t c = Notebook::get().size() - 1; c != static_cast<size_t>(-1); --c) { |
|
|
|
|
|
|
|
if(filesystem::file_in_path(Notebook::get().get_view(c)->file_path, project_path)) { |
|
|
|
|
|
|
|
if(!Notebook::get().close(c)) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Directories::get().close(project_path); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
menu.add_action("file_print", [this]() { |
|
|
|
menu.add_action("file_print", [this]() { |
|
|
|
if(auto view = Notebook::get().get_current_view()) { |
|
|
|
if(auto view = Notebook::get().get_current_view()) { |
|
|
|
auto print_operation = Gtk::PrintOperation::create(); |
|
|
|
auto print_operation = Gtk::PrintOperation::create(); |
|
|
|
@ -1531,10 +1559,6 @@ void Window::set_menu_actions() { |
|
|
|
menu.add_action("window_previous_tab", []() { |
|
|
|
menu.add_action("window_previous_tab", []() { |
|
|
|
Notebook::get().previous(); |
|
|
|
Notebook::get().previous(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
menu.add_action("window_close_tab", []() { |
|
|
|
|
|
|
|
if(Notebook::get().get_current_view()) |
|
|
|
|
|
|
|
Notebook::get().close_current(); |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
menu.add_action("window_toggle_split", [] { |
|
|
|
menu.add_action("window_toggle_split", [] { |
|
|
|
Notebook::get().toggle_split(); |
|
|
|
Notebook::get().toggle_split(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
|