mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 13:47:45 +00:00
FileManager: Add Rename action to context and application menu
Prior to this change, the only way to rename a file was to press F2 on keyboard.
This commit is contained in:
parent
886e011608
commit
d34ef6d997
3 changed files with 16 additions and 3 deletions
|
@ -538,9 +538,10 @@ void DirectoryView::handle_selection_change()
|
||||||
{
|
{
|
||||||
update_statusbar();
|
update_statusbar();
|
||||||
|
|
||||||
bool can_delete = !current_view().selection().is_empty() && access(path().characters(), W_OK) == 0;
|
bool can_modify = !current_view().selection().is_empty() && access(path().characters(), W_OK) == 0;
|
||||||
m_delete_action->set_enabled(can_delete);
|
m_delete_action->set_enabled(can_modify);
|
||||||
m_force_delete_action->set_enabled(can_delete);
|
m_force_delete_action->set_enabled(can_modify);
|
||||||
|
m_rename_action->set_enabled(can_modify);
|
||||||
|
|
||||||
if (on_selection_change)
|
if (on_selection_change)
|
||||||
on_selection_change(current_view());
|
on_selection_change(current_view());
|
||||||
|
@ -591,6 +592,10 @@ void DirectoryView::setup_actions()
|
||||||
});
|
});
|
||||||
|
|
||||||
m_delete_action = GUI::CommonActions::make_delete_action([this](auto&) { do_delete(true); }, window());
|
m_delete_action = GUI::CommonActions::make_delete_action([this](auto&) { do_delete(true); }, window());
|
||||||
|
m_rename_action = GUI::CommonActions::make_rename_action([this](auto&) {
|
||||||
|
current_view().begin_editing(current_view().cursor_index());
|
||||||
|
},
|
||||||
|
window());
|
||||||
|
|
||||||
m_force_delete_action = GUI::Action::create(
|
m_force_delete_action = GUI::Action::create(
|
||||||
"Delete Without Confirmation", { Mod_Shift, Key_Delete },
|
"Delete Without Confirmation", { Mod_Shift, Key_Delete },
|
||||||
|
|
|
@ -123,6 +123,7 @@ public:
|
||||||
GUI::Action& open_terminal_action() { return *m_open_terminal_action; }
|
GUI::Action& open_terminal_action() { return *m_open_terminal_action; }
|
||||||
GUI::Action& delete_action() { return *m_delete_action; }
|
GUI::Action& delete_action() { return *m_delete_action; }
|
||||||
GUI::Action& force_delete_action() { return *m_force_delete_action; }
|
GUI::Action& force_delete_action() { return *m_force_delete_action; }
|
||||||
|
GUI::Action& rename_action() { return *m_rename_action; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit DirectoryView(Mode);
|
explicit DirectoryView(Mode);
|
||||||
|
@ -168,6 +169,7 @@ private:
|
||||||
RefPtr<GUI::Action> m_open_terminal_action;
|
RefPtr<GUI::Action> m_open_terminal_action;
|
||||||
RefPtr<GUI::Action> m_delete_action;
|
RefPtr<GUI::Action> m_delete_action;
|
||||||
RefPtr<GUI::Action> m_force_delete_action;
|
RefPtr<GUI::Action> m_force_delete_action;
|
||||||
|
RefPtr<GUI::Action> m_rename_action;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -375,6 +375,7 @@ int run_in_desktop_mode([[maybe_unused]] RefPtr<Core::ConfigFile> config)
|
||||||
desktop_context_menu->add_action(cut_action);
|
desktop_context_menu->add_action(cut_action);
|
||||||
desktop_context_menu->add_action(paste_action);
|
desktop_context_menu->add_action(paste_action);
|
||||||
desktop_context_menu->add_action(directory_view.delete_action());
|
desktop_context_menu->add_action(directory_view.delete_action());
|
||||||
|
desktop_context_menu->add_action(directory_view.rename_action());
|
||||||
desktop_context_menu->add_separator();
|
desktop_context_menu->add_separator();
|
||||||
desktop_context_menu->add_action(properties_action);
|
desktop_context_menu->add_action(properties_action);
|
||||||
|
|
||||||
|
@ -393,6 +394,7 @@ int run_in_desktop_mode([[maybe_unused]] RefPtr<Core::ConfigFile> config)
|
||||||
file_context_menu->add_action(cut_action);
|
file_context_menu->add_action(cut_action);
|
||||||
file_context_menu->add_action(paste_action);
|
file_context_menu->add_action(paste_action);
|
||||||
file_context_menu->add_action(directory_view.delete_action());
|
file_context_menu->add_action(directory_view.delete_action());
|
||||||
|
file_context_menu->add_action(directory_view.rename_action());
|
||||||
file_context_menu->add_separator();
|
file_context_menu->add_separator();
|
||||||
|
|
||||||
if (node.full_path().ends_with(".zip", AK::CaseSensitivity::CaseInsensitive)) {
|
if (node.full_path().ends_with(".zip", AK::CaseSensitivity::CaseInsensitive)) {
|
||||||
|
@ -846,6 +848,7 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> config, String initial_locatio
|
||||||
file_menu.add_action(mkdir_action);
|
file_menu.add_action(mkdir_action);
|
||||||
file_menu.add_action(touch_action);
|
file_menu.add_action(touch_action);
|
||||||
file_menu.add_action(focus_dependent_delete_action);
|
file_menu.add_action(focus_dependent_delete_action);
|
||||||
|
file_menu.add_action(directory_view.rename_action());
|
||||||
file_menu.add_separator();
|
file_menu.add_separator();
|
||||||
file_menu.add_action(properties_action);
|
file_menu.add_action(properties_action);
|
||||||
file_menu.add_separator();
|
file_menu.add_separator();
|
||||||
|
@ -1040,6 +1043,7 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> config, String initial_locatio
|
||||||
directory_context_menu->add_action(cut_action);
|
directory_context_menu->add_action(cut_action);
|
||||||
directory_context_menu->add_action(folder_specific_paste_action);
|
directory_context_menu->add_action(folder_specific_paste_action);
|
||||||
directory_context_menu->add_action(directory_view.delete_action());
|
directory_context_menu->add_action(directory_view.delete_action());
|
||||||
|
directory_context_menu->add_action(directory_view.rename_action());
|
||||||
directory_context_menu->add_action(shortcut_action);
|
directory_context_menu->add_action(shortcut_action);
|
||||||
directory_context_menu->add_separator();
|
directory_context_menu->add_separator();
|
||||||
directory_context_menu->add_action(properties_action);
|
directory_context_menu->add_action(properties_action);
|
||||||
|
@ -1059,6 +1063,7 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> config, String initial_locatio
|
||||||
tree_view_directory_context_menu->add_action(cut_action);
|
tree_view_directory_context_menu->add_action(cut_action);
|
||||||
tree_view_directory_context_menu->add_action(paste_action);
|
tree_view_directory_context_menu->add_action(paste_action);
|
||||||
tree_view_directory_context_menu->add_action(tree_view_delete_action);
|
tree_view_directory_context_menu->add_action(tree_view_delete_action);
|
||||||
|
tree_view_directory_context_menu->add_action(directory_view.rename_action());
|
||||||
tree_view_directory_context_menu->add_separator();
|
tree_view_directory_context_menu->add_separator();
|
||||||
tree_view_directory_context_menu->add_action(properties_action);
|
tree_view_directory_context_menu->add_action(properties_action);
|
||||||
tree_view_directory_context_menu->add_separator();
|
tree_view_directory_context_menu->add_separator();
|
||||||
|
@ -1083,6 +1088,7 @@ int run_in_windowed_mode(RefPtr<Core::ConfigFile> config, String initial_locatio
|
||||||
file_context_menu->add_action(cut_action);
|
file_context_menu->add_action(cut_action);
|
||||||
file_context_menu->add_action(paste_action);
|
file_context_menu->add_action(paste_action);
|
||||||
file_context_menu->add_action(directory_view.delete_action());
|
file_context_menu->add_action(directory_view.delete_action());
|
||||||
|
file_context_menu->add_action(directory_view.rename_action());
|
||||||
file_context_menu->add_action(shortcut_action);
|
file_context_menu->add_action(shortcut_action);
|
||||||
file_context_menu->add_separator();
|
file_context_menu->add_separator();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue