diff --git a/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp b/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp index 950ebc2bcf..fba5c20899 100644 --- a/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -166,6 +167,10 @@ void TaskDressUpParameters::addAllEdges(QListWidget* widget) hideObject(); DressUpView->highlightReferences(true); onButtonRefAdd(true); + + if (deleteAction) { + deleteAction->setEnabled(widget->count() > 1); + } } } } @@ -308,28 +313,26 @@ bool TaskDressUpParameters::KeyEvent(QEvent *e) // in case another instance takes key events, accept the overridden key event if (e && e->type() == QEvent::ShortcutOverride) { QKeyEvent * kevent = static_cast(e); - if (kevent->modifiers() == Qt::NoModifier) { - if (deleteAction && kevent->key() == Qt::Key_Delete) { - kevent->accept(); - return true; - } - if (addAllEdgesAction && kevent->key() == Qt::Key_A && kevent->modifiers() == (Qt::ControlModifier | Qt::ShiftModifier)){ - kevent->accept(); - return true; - } + if (deleteAction && Gui::QtTools::matches(kevent, deleteAction->shortcut())) { + kevent->accept(); + return true; + } + if (addAllEdgesAction && Gui::QtTools::matches(kevent, addAllEdgesAction->shortcut())) { + kevent->accept(); + return true; } } // if we have a Del key, trigger the deleteAction else if (e && e->type() == QEvent::KeyPress) { QKeyEvent * kevent = static_cast(e); - if (kevent->key() == Qt::Key_Delete) { - if (deleteAction && deleteAction->isEnabled()) - deleteAction->trigger(); + if (deleteAction && deleteAction->isEnabled() && + Gui::QtTools::matches(kevent, deleteAction->shortcut())) { + deleteAction->trigger(); return true; } - if (kevent->key() == Qt::Key_A && kevent->modifiers() == (Qt::ControlModifier | Qt::ShiftModifier)) { - if (addAllEdgesAction && addAllEdgesAction->isEnabled()) - addAllEdgesAction->trigger(); + if (addAllEdgesAction && addAllEdgesAction->isEnabled() && + Gui::QtTools::matches(kevent, addAllEdgesAction->shortcut())) { + addAllEdgesAction->trigger(); return true; } }