PD: Fix convoluted event handling of dress-up task boxes

This commit is contained in:
wmayer
2024-07-01 13:44:21 +02:00
committed by wwmayer
parent a4bc06219b
commit f3d84b601f
10 changed files with 23 additions and 44 deletions

View File

@@ -319,11 +319,10 @@ void TaskDressUpParameters::createDeleteAction(QListWidget* parentList)
parentList->setContextMenuPolicy(Qt::ActionsContextMenu);
}
bool TaskDressUpParameters::KeyEvent(QEvent *e)
bool TaskDressUpParameters::event(QEvent* event)
{
// in case another instance takes key events, accept the overridden key event
if (e && e->type() == QEvent::ShortcutOverride) {
QKeyEvent * kevent = static_cast<QKeyEvent*>(e);
if (event->type() == QEvent::ShortcutOverride) {
QKeyEvent * kevent = static_cast<QKeyEvent*>(event); // NOLINT
if (deleteAction && Gui::QtTools::matches(kevent, deleteAction->shortcut())) {
kevent->accept();
return true;
@@ -333,22 +332,24 @@ bool TaskDressUpParameters::KeyEvent(QEvent *e)
return true;
}
}
// if we have a Del key, trigger the deleteAction
else if (e && e->type() == QEvent::KeyPress) {
QKeyEvent * kevent = static_cast<QKeyEvent*>(e);
if (deleteAction && deleteAction->isEnabled() &&
Gui::QtTools::matches(kevent, deleteAction->shortcut())) {
deleteAction->trigger();
return true;
}
if (addAllEdgesAction && addAllEdgesAction->isEnabled() &&
Gui::QtTools::matches(kevent, addAllEdgesAction->shortcut())) {
addAllEdgesAction->trigger();
return true;
}
return TaskBox::event(event);
}
void TaskDressUpParameters::keyPressEvent(QKeyEvent* ke)
{
if (deleteAction && deleteAction->isEnabled() &&
Gui::QtTools::matches(ke, deleteAction->shortcut())) {
deleteAction->trigger();
return;
}
if (addAllEdgesAction && addAllEdgesAction->isEnabled() &&
Gui::QtTools::matches(ke, addAllEdgesAction->shortcut())) {
addAllEdgesAction->trigger();
return;
}
return TaskDressUpParameters::event(e);
TaskBox::keyPressEvent(ke);
}
const std::vector<std::string> TaskDressUpParameters::getReferences() const