From 7d30cf71223e27db4569a11d8e1c750056650ee7 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 24 Sep 2020 11:31:24 +0200 Subject: [PATCH] FileManager: Teach DirectoryView subviews to create editing delegates This enables inline editing of filenames for table views, where this is already supported. More work in LibGUI will be required to support the feature in icon and columns views. --- Applications/FileManager/DirectoryView.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Applications/FileManager/DirectoryView.cpp b/Applications/FileManager/DirectoryView.cpp index d22a21aee8..9fcd7cbd4e 100644 --- a/Applications/FileManager/DirectoryView.cpp +++ b/Applications/FileManager/DirectoryView.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -202,6 +203,11 @@ void DirectoryView::setup_model() void DirectoryView::setup_icon_view() { m_icon_view = add(); + m_icon_view->set_editable(true); + m_icon_view->set_edit_triggers(GUI::AbstractView::EditTrigger::EditKeyPressed); + m_icon_view->aid_create_editing_delegate = [](auto&) { + return make(); + }; if (is_desktop()) { m_icon_view->set_frame_shape(Gfx::FrameShape::NoFrame); @@ -229,6 +235,12 @@ void DirectoryView::setup_icon_view() void DirectoryView::setup_columns_view() { m_columns_view = add(); + m_columns_view->set_editable(true); + m_columns_view->set_edit_triggers(GUI::AbstractView::EditTrigger::EditKeyPressed); + m_columns_view->aid_create_editing_delegate = [](auto&) { + return make(); + }; + m_columns_view->set_model(m_sorting_model); m_columns_view->set_model_column(GUI::FileSystemModel::Column::Name); @@ -253,8 +265,13 @@ void DirectoryView::setup_columns_view() void DirectoryView::setup_table_view() { m_table_view = add(); - m_table_view->set_model(m_sorting_model); + m_table_view->set_editable(true); + m_table_view->set_edit_triggers(GUI::AbstractView::EditTrigger::EditKeyPressed); + m_table_view->aid_create_editing_delegate = [](auto&) { + return make(); + }; + m_table_view->set_model(m_sorting_model); m_table_view->set_key_column_and_sort_order(GUI::FileSystemModel::Column::Name, GUI::SortOrder::Ascending); m_table_view->on_activation = [&](auto& index) {