Merge pull request #15085 from wwmayer/issue_15068

Sketcher: Delete key in non-functional in macOS
This commit is contained in:
Chris Hennes
2024-07-15 10:34:55 -05:00
committed by GitHub
9 changed files with 30 additions and 52 deletions

View File

@@ -74,7 +74,7 @@ Array2D::Array2D(const QString& propertyName,
connect(ui->tableView, &QWidget::customContextMenuRequested, this, &Array2D::onContextMenu);
_deleteAction.setText(tr("Delete row"));
_deleteAction.setShortcut(Qt::Key_Delete);
_deleteAction.setShortcut(QKeySequence::Delete);
connect(&_deleteAction, &QAction::triggered, this, &Array2D::onDelete);
ui->tableView->addAction(&_deleteAction);

View File

@@ -75,12 +75,10 @@ Array3D::Array3D(const QString& propertyName,
connect(ui->table2D, &QWidget::customContextMenuRequested, this, &Array3D::on2DContextMenu);
_deleteDepthAction.setText(tr("Delete row"));
// _deleteDepthAction.setShortcut(Qt::Key_Delete);
connect(&_deleteDepthAction, &QAction::triggered, this, &Array3D::onDepthDelete);
ui->table3D->addAction(&_deleteDepthAction);
_delete2DAction.setText(tr("Delete row"));
// _delete2DAction.setShortcut(Qt::Key_Delete);
connect(&_delete2DAction, &QAction::triggered, this, &Array3D::on2DDelete);
ui->table2D->addAction(&_delete2DAction);

View File

@@ -87,7 +87,7 @@ MaterialSave::MaterialSave(const std::shared_ptr<Materials::Material>& material,
&MaterialSave::onContextMenu);
_deleteAction.setText(tr("Delete"));
_deleteAction.setShortcut(Qt::Key_Delete);
_deleteAction.setShortcut(QKeySequence::Delete);
connect(&_deleteAction, &QAction::triggered, this, &MaterialSave::onDelete);
ui->treeMaterials->addAction(&_deleteAction);
@@ -525,9 +525,6 @@ void MaterialSave::onContextMenu(const QPoint& pos)
{
QMenu contextMenu(tr("Context menu"), this);
// QAction action1(tr("Delete"), this);
// action1.setShortcut(Qt::Key_Delete);
// connect(&action1, &QAction::triggered, this, &MaterialSave::onDelete);
contextMenu.addAction(&_deleteAction);
contextMenu.exec(ui->treeMaterials->mapToGlobal(pos));
@@ -542,10 +539,7 @@ void MaterialSave::onDelete(bool checked)
return;
}
int res = confirmDelete(this);
if (res == QMessageBox::Cancel) {
return;
}
confirmDelete(this);
}
int MaterialSave::confirmDelete(QWidget* parent)

View File

@@ -1283,12 +1283,10 @@ void MaterialsEditor::onContextMenu(const QPoint& pos)
QMenu contextMenu(tr("Context menu"), this);
QAction action1(tr("Inherit from"), this);
// action1.setShortcut(Qt::Key_Delete);
connect(&action1, &QAction::triggered, this, &MaterialsEditor::onInherit);
contextMenu.addAction(&action1);
QAction action2(tr("Inherit new material"), this);
// action1.setShortcut(Qt::Key_Delete);
connect(&action2, &QAction::triggered, this, &MaterialsEditor::onInheritNew);
contextMenu.addAction(&action2);

View File

@@ -100,9 +100,9 @@ void DrawSketchKeyboardManager::detectKeyboardEventHandlingMode(QKeyEvent* keyEv
auto match = rx.match(keyEvent->text());
if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return
|| keyEvent->key() == Qt::Key_Tab || keyEvent->key() == Qt::Key_Backtab
|| keyEvent->key() == Qt::Key_Backspace || keyEvent->key() == Qt::Key_Delete
|| keyEvent->key() == Qt::Key_Minus || keyEvent->key() == Qt::Key_Period
|| keyEvent->key() == Qt::Key_Comma || match.hasMatch()) {
|| keyEvent->key() == Qt::Key_Comma || match.hasMatch()
|| keyEvent->matches(QKeySequence::Backspace) || keyEvent->matches(QKeySequence::Delete)) {
keyMode = KeyboardEventHandlingMode::DSHControl;
timer.start(timeOutValue);
}

View File

@@ -23,6 +23,7 @@
#include "PreCompiled.h"
#ifndef _PreComp_
#include <QKeyEvent>
#include <QKeySequence>
#endif
#include "ShortcutListener.h"
@@ -33,28 +34,21 @@ using namespace SketcherGui;
// ******************** ShortcutListener *********************************************//
ShortcutListener::ShortcutListener(ViewProviderSketch* vp)
{
pViewProvider = vp;
}
ShortcutListener::~ShortcutListener()
: pViewProvider {vp}
{}
ShortcutListener::~ShortcutListener() = default;
bool ShortcutListener::eventFilter(QObject* obj, QEvent* event)
{
if (event->type() == QEvent::ShortcutOverride) {
QKeyEvent* kevent = static_cast<QKeyEvent*>(event);
if (kevent->modifiers() == Qt::NoModifier || kevent->modifiers() == Qt::ShiftModifier
|| kevent->modifiers() == Qt::KeypadModifier) {
switch (kevent->key()) {
case Qt::Key_Delete:
kevent->accept();
pViewProvider->deleteSelected();
return true;
default:
break;
}
QKeyEvent* kevent = static_cast<QKeyEvent*>(event); // NOLINT
if (kevent->matches(QKeySequence::Delete)) {
kevent->accept();
pViewProvider->deleteSelected();
return true;
}
}
return QObject::eventFilter(obj, event);
}

View File

@@ -120,7 +120,7 @@ bool QGIViewPart::sceneEventFilter(QGraphicsItem *watched, QEvent *event)
// which will be processed by QGVPage/QGVNavStyle keypress logic, but not forwarded to
// Std_Delete
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
if (keyEvent->key() == Qt::Key_Delete) {
if (keyEvent->matches(QKeySequence::Delete)) {
bool success = removeSelectedCosmetic();
if (success) {
updateView(true);