mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 08:48:11 +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:
parent
2b1342b120
commit
bc1293925a
2 changed files with 17 additions and 3 deletions
|
@ -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()));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue