mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-06 08:36:15 +00:00
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.
This commit is contained in:
@@ -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()));
|
||||
|
||||
Reference in New Issue
Block a user