menu: added hidden secondary delete option to pick up backspace shortcut

This commit is contained in:
itsmattkc
2021-05-23 10:16:39 +10:00
parent 45db6f4596
commit 6ff9ab9f54
3 changed files with 37 additions and 2 deletions
+22
View File
@@ -73,6 +73,9 @@ MainMenu::MainMenu(MainWindow *parent) :
//
edit_menu_ = new Menu(this);
connect(edit_menu_, &Menu::aboutToShow, this, &MainMenu::EditMenuAboutToShow);
connect(edit_menu_, &Menu::aboutToHide, this, &MainMenu::EditMenuAboutToHide);
edit_undo_item_ = Core::instance()->undo_stack()->GetUndoAction();
Menu::ConformItem(edit_undo_item_, "undo", "Ctrl+Z");
edit_menu_->addAction(edit_undo_item_);
@@ -82,6 +85,14 @@ MainMenu::MainMenu(MainWindow *parent) :
edit_menu_->addSeparator();
MenuShared::instance()->AddItemsForEditMenu(edit_menu_, true);
{
// Create "alternate delete" action so we can pick up backspace as well as delete while still
// keeping them configurable
edit_delete2_item_ = new QAction();
Menu::ConformItem(edit_delete2_item_, "delete2", MenuShared::instance(), &MenuShared::DeleteSelectedTriggered, "Backspace");
auto actions = edit_menu_->actions();
edit_menu_->insertAction(actions.at(actions.indexOf(MenuShared::instance()->edit_delete_item()) + 1), edit_delete2_item_);
}
edit_menu_->addSeparator();
edit_select_all_item_ = edit_menu_->AddItem("selectall", this, &MainMenu::SelectAllTriggered, "Ctrl+A");
edit_deselect_all_item_ = edit_menu_->AddItem("deselectall", this, &MainMenu::DeselectAllTriggered, "Ctrl+Shift+A");
@@ -298,6 +309,16 @@ void MainMenu::FileMenuAboutToShow()
}
}
void MainMenu::EditMenuAboutToShow()
{
edit_delete2_item_->setVisible(false);
}
void MainMenu::EditMenuAboutToHide()
{
edit_delete2_item_->setVisible(true);
}
void MainMenu::ViewMenuAboutToShow()
{
// Parent is QMainWindow
@@ -620,6 +641,7 @@ void MainMenu::Retranslate()
edit_menu_->setTitle(tr("&Edit"));
//edit_undo_item_->setText(tr("&Undo")); FIXME: Does Qt translate these automatically?
//edit_redo_item_->setText(tr("Redo"));
edit_delete2_item_->setText(tr("Delete (alt)"));
edit_insert_item_->setText(tr("Insert"));
edit_overwrite_item_->setText(tr("Overwrite"));
edit_select_all_item_->setText(tr("Select &All"));