From f3d84b601fdfa6cae36843f8aad51b3cccfc2428 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 1 Jul 2024 13:44:21 +0200 Subject: [PATCH] PD: Fix convoluted event handling of dress-up task boxes --- .../PartDesign/Gui/TaskChamferParameters.cpp | 5 --- .../PartDesign/Gui/TaskChamferParameters.h | 1 - .../PartDesign/Gui/TaskDraftParameters.cpp | 5 --- src/Mod/PartDesign/Gui/TaskDraftParameters.h | 1 - .../PartDesign/Gui/TaskDressUpParameters.cpp | 37 ++++++++++--------- .../PartDesign/Gui/TaskDressUpParameters.h | 4 +- .../PartDesign/Gui/TaskFilletParameters.cpp | 5 --- src/Mod/PartDesign/Gui/TaskFilletParameters.h | 3 +- .../Gui/TaskThicknessParameters.cpp | 5 --- .../PartDesign/Gui/TaskThicknessParameters.h | 1 - 10 files changed, 23 insertions(+), 44 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskChamferParameters.cpp b/src/Mod/PartDesign/Gui/TaskChamferParameters.cpp index 4914511509..75f30d13ca 100644 --- a/src/Mod/PartDesign/Gui/TaskChamferParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskChamferParameters.cpp @@ -293,11 +293,6 @@ TaskChamferParameters::~TaskChamferParameters() } } -bool TaskChamferParameters::event(QEvent* e) -{ - return TaskDressUpParameters::KeyEvent(e); -} - void TaskChamferParameters::changeEvent(QEvent* e) { TaskBox::changeEvent(e); diff --git a/src/Mod/PartDesign/Gui/TaskChamferParameters.h b/src/Mod/PartDesign/Gui/TaskChamferParameters.h index 0d93bf3c21..0131424bcf 100644 --- a/src/Mod/PartDesign/Gui/TaskChamferParameters.h +++ b/src/Mod/PartDesign/Gui/TaskChamferParameters.h @@ -56,7 +56,6 @@ private Q_SLOTS: protected: void setButtons(const selectionModes mode) override; - bool event(QEvent *e) override; void changeEvent(QEvent *e) override; void onSelectionChanged(const Gui::SelectionChanges& msg) override; diff --git a/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp b/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp index 9e6b27b2bd..fd99eab737 100644 --- a/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskDraftParameters.cpp @@ -272,11 +272,6 @@ TaskDraftParameters::~TaskDraftParameters() } } -bool TaskDraftParameters::event(QEvent* e) -{ - return TaskDressUpParameters::KeyEvent(e); -} - void TaskDraftParameters::changeEvent(QEvent* e) { TaskBox::changeEvent(e); diff --git a/src/Mod/PartDesign/Gui/TaskDraftParameters.h b/src/Mod/PartDesign/Gui/TaskDraftParameters.h index bb170a1b79..b827493c44 100644 --- a/src/Mod/PartDesign/Gui/TaskDraftParameters.h +++ b/src/Mod/PartDesign/Gui/TaskDraftParameters.h @@ -57,7 +57,6 @@ private Q_SLOTS: protected: void setButtons(const selectionModes mode) override; - bool event(QEvent *e) override; void changeEvent(QEvent *e) override; void onSelectionChanged(const Gui::SelectionChanges& msg) override; diff --git a/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp b/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp index 3feec5643a..6bb7b87e0e 100644 --- a/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskDressUpParameters.cpp @@ -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(e); + if (event->type() == QEvent::ShortcutOverride) { + QKeyEvent * kevent = static_cast(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(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 TaskDressUpParameters::getReferences() const diff --git a/src/Mod/PartDesign/Gui/TaskDressUpParameters.h b/src/Mod/PartDesign/Gui/TaskDressUpParameters.h index 905dbca9f3..9220f2395c 100644 --- a/src/Mod/PartDesign/Gui/TaskDressUpParameters.h +++ b/src/Mod/PartDesign/Gui/TaskDressUpParameters.h @@ -64,6 +64,8 @@ public: return transactionID; } + bool event(QEvent* event) override; + protected Q_SLOTS: void onButtonRefSel(const bool checked); void doubleClicked(QListWidgetItem* item); @@ -76,7 +78,7 @@ protected Q_SLOTS: protected: void referenceSelected(const Gui::SelectionChanges& msg, QListWidget* widget); bool wasDoubleClicked = false; - bool KeyEvent(QEvent *e); + void keyPressEvent(QKeyEvent* ke) override; void hideOnError(); void addAllEdges(QListWidget* listWidget); void deleteRef(QListWidget* listWidget); diff --git a/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp b/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp index 8fa4d7ee6f..3d34226178 100644 --- a/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskFilletParameters.cpp @@ -176,11 +176,6 @@ TaskFilletParameters::~TaskFilletParameters() } } -bool TaskFilletParameters::event(QEvent* e) -{ - return TaskDressUpParameters::KeyEvent(e); -} - void TaskFilletParameters::changeEvent(QEvent* e) { TaskBox::changeEvent(e); diff --git a/src/Mod/PartDesign/Gui/TaskFilletParameters.h b/src/Mod/PartDesign/Gui/TaskFilletParameters.h index d5142d3f8a..5fdfe8767f 100644 --- a/src/Mod/PartDesign/Gui/TaskFilletParameters.h +++ b/src/Mod/PartDesign/Gui/TaskFilletParameters.h @@ -50,8 +50,7 @@ private Q_SLOTS: protected: double getLength() const; void setButtons(const selectionModes mode) override; - bool event(QEvent *e) override; - void changeEvent(QEvent *e) override; + void changeEvent(QEvent* e) override; void onSelectionChanged(const Gui::SelectionChanges& msg) override; private: diff --git a/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp b/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp index 31ccf74721..b6cffe4200 100644 --- a/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskThicknessParameters.cpp @@ -245,11 +245,6 @@ TaskThicknessParameters::~TaskThicknessParameters() } } -bool TaskThicknessParameters::event(QEvent* e) -{ - return TaskDressUpParameters::KeyEvent(e); -} - void TaskThicknessParameters::changeEvent(QEvent* e) { TaskBox::changeEvent(e); diff --git a/src/Mod/PartDesign/Gui/TaskThicknessParameters.h b/src/Mod/PartDesign/Gui/TaskThicknessParameters.h index 35c2194044..408dd33c69 100644 --- a/src/Mod/PartDesign/Gui/TaskThicknessParameters.h +++ b/src/Mod/PartDesign/Gui/TaskThicknessParameters.h @@ -63,7 +63,6 @@ private Q_SLOTS: protected: void setButtons(const selectionModes mode) override; - bool event(QEvent* e) override; void changeEvent(QEvent* e) override; void onSelectionChanged(const Gui::SelectionChanges& msg) override;