diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.cpp b/Userland/DevTools/HackStudio/HackStudioWidget.cpp index 132f41231a0..cfb045a53d0 100644 --- a/Userland/DevTools/HackStudio/HackStudioWidget.cpp +++ b/Userland/DevTools/HackStudio/HackStudioWidget.cpp @@ -1171,6 +1171,7 @@ void HackStudioWidget::set_current_editor_wrapper(RefPtr editor_w update_window_title(); update_current_editor_title(); update_tree_view(); + update_toolbar_actions(); set_current_editor_tab_widget(static_cast(m_current_editor_wrapper->parent())); m_current_editor_tab_widget->set_active_widget(editor_wrapper); update_statusbar(); @@ -1263,9 +1264,9 @@ void HackStudioWidget::create_toolbar(GUI::Widget& parent) toolbar.add_action(*m_delete_action); toolbar.add_separator(); - toolbar.add_action(GUI::CommonActions::make_cut_action([this](auto&) { current_editor().cut_action().activate(); }, m_editors_splitter)); - toolbar.add_action(GUI::CommonActions::make_copy_action([this](auto&) { current_editor().copy_action().activate(); }, m_editors_splitter)); - toolbar.add_action(GUI::CommonActions::make_paste_action([this](auto&) { current_editor().paste_action().activate(); }, m_editors_splitter)); + m_cut_button = toolbar.add_action(current_editor().cut_action()); + m_copy_button = toolbar.add_action(current_editor().copy_action()); + m_paste_button = toolbar.add_action(current_editor().paste_action()); toolbar.add_separator(); toolbar.add_action(GUI::CommonActions::make_undo_action([this](auto&) { current_editor().undo_action().activate(); }, m_editors_splitter)); toolbar.add_action(GUI::CommonActions::make_redo_action([this](auto&) { current_editor().redo_action().activate(); }, m_editors_splitter)); @@ -1653,6 +1654,13 @@ void HackStudioWidget::update_tree_view() } } +void HackStudioWidget::update_toolbar_actions() +{ + m_copy_button->set_action(current_editor().copy_action()); + m_paste_button->set_action(current_editor().paste_action()); + m_cut_button->set_action(current_editor().cut_action()); +} + void HackStudioWidget::update_window_title() { window()->set_title(DeprecatedString::formatted("{} - {} - Hack Studio", m_current_editor_wrapper->filename_title(), m_project->name())); diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.h b/Userland/DevTools/HackStudio/HackStudioWidget.h index 290e11de31d..670bc2f680a 100644 --- a/Userland/DevTools/HackStudio/HackStudioWidget.h +++ b/Userland/DevTools/HackStudio/HackStudioWidget.h @@ -16,6 +16,7 @@ #include "GMLPreviewWidget.h" #include "Git/DiffViewer.h" #include "Git/GitWidget.h" +#include "LibGUI/Button.h" #include "Locator.h" #include "Project.h" #include "ProjectBuilder.h" @@ -163,6 +164,7 @@ private: void update_gml_preview(); void update_tree_view(); + void update_toolbar_actions(); void on_cursor_change(); void file_renamed(DeprecatedString const& old_name, DeprecatedString const& new_name); @@ -257,6 +259,10 @@ private: RefPtr m_wrap_anywhere_action; RefPtr m_wrap_at_words_action; + RefPtr m_cut_button; + RefPtr m_paste_button; + RefPtr m_copy_button; + Mode m_mode { Mode::Code }; OwnPtr m_coredump_inspector; OwnPtr m_project_builder;