diff options
author | Aayush <aayushsharma889@gmail.com> | 2022-12-24 19:49:32 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-12-25 15:40:46 +0100 |
commit | bc1293925a271976f0646c6741e402db1f48d2fd (patch) | |
tree | 4cca6ded250e09a895fe5ae09df2b9c8b16b16b6 /Userland/DevTools/HackStudio/HackStudioWidget.cpp | |
parent | 2b1342b1204941a8e1fbb2c33403659b000f46e1 (diff) | |
download | serenity-bc1293925a271976f0646c6741e402db1f48d2fd.zip |
Hackstudio: Use `GUI::TextEditor' actions for cut/copy/paste buttons
This fixes a bug where hackstudio's language server will crash upon
clicking the 'cut' button when no text is selected. This was because
the actions were not disabled on empty selection.
We now disable the actions depending on if there is empty selection
inside current tab. We update the cut/copy/paste buttons' actions when
changing tabs.
Diffstat (limited to 'Userland/DevTools/HackStudio/HackStudioWidget.cpp')
-rw-r--r-- | Userland/DevTools/HackStudio/HackStudioWidget.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Userland/DevTools/HackStudio/HackStudioWidget.cpp b/Userland/DevTools/HackStudio/HackStudioWidget.cpp index 132f41231a..cfb045a53d 100644 --- a/Userland/DevTools/HackStudio/HackStudioWidget.cpp +++ b/Userland/DevTools/HackStudio/HackStudioWidget.cpp @@ -1171,6 +1171,7 @@ void HackStudioWidget::set_current_editor_wrapper(RefPtr<EditorWrapper> editor_w update_window_title(); update_current_editor_title(); update_tree_view(); + update_toolbar_actions(); set_current_editor_tab_widget(static_cast<GUI::TabWidget*>(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())); |