From acd5097a13fb075c8174666ba1b1d113ff2491e4 Mon Sep 17 00:00:00 2001 From: 0penBrain <48731257+0penBrain@users.noreply.github.com> Date: Tue, 25 Jan 2022 16:30:30 +0100 Subject: [PATCH] [RecentMacros] Check and warn for shortcut conflicts --- src/Gui/Action.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Gui/Action.cpp b/src/Gui/Action.cpp index d65ff69aa7..ad210694c1 100644 --- a/src/Gui/Action.cpp +++ b/src/Gui/Action.cpp @@ -921,9 +921,19 @@ void RecentMacrosAction::setFiles(const QStringList& files) recentFiles[index]->setData(QVariant(index)); QString accel(tr("none")); if (index < shortcut_count){ - accel = QString::fromStdString(shortcut_modifiers); - accel.append(QString::number(index+1,10)).toStdString(); - recentFiles[index]->setShortcut(accel); + auto accel_tmp = QString::fromStdString(shortcut_modifiers); + accel_tmp.append(QString::number(index+1,10)).toStdString(); + auto check = Application::Instance->commandManager().checkAcceleratorForConflicts(qPrintable(accel_tmp)); + if (check) { + recentFiles[index]->setShortcut(QKeySequence()); + auto msg = QStringLiteral("Recent macros : shortcut %1 disabled because conflicting with %2") + .arg(accel_tmp).arg(QLatin1String(check->getName())); + Base::Console().Warning("%s\n", qPrintable(msg)); + } + else { + accel = accel_tmp; + recentFiles[index]->setShortcut(accel); + } } recentFiles[index]->setStatusTip(tr("Run macro %1 (Shift+click to edit) shortcut: %2").arg(files[index]).arg(accel)); recentFiles[index]->setVisible(true);