diff --git a/src/NotepadNext/dialogs/MainWindow.cpp b/src/NotepadNext/dialogs/MainWindow.cpp index 1eb56c5a8..5ebcd18a8 100644 --- a/src/NotepadNext/dialogs/MainWindow.cpp +++ b/src/NotepadNext/dialogs/MainWindow.cpp @@ -300,8 +300,8 @@ MainWindow::MainWindow(NotepadNextApplication *app) : copyAsFormat(&rtf, "Rich Text Format"); }); - connect(ui->actionIncrease_Indent, &QAction::triggered, this, [=]() { currentEditor()->tab(); }); - connect(ui->actionDecrease_Indent, &QAction::triggered, this, [=]() { currentEditor()->backTab(); }); + connect(ui->actionIncreaseIndent, &QAction::triggered, this, [=]() { currentEditor()->tab(); }); + connect(ui->actionDecreaseIndent, &QAction::triggered, this, [=]() { currentEditor()->backTab(); }); addAction(ui->actionToggleOverType); connect(ui->actionToggleOverType, &QAction::triggered, this, [=]() { @@ -843,18 +843,36 @@ MainWindow::~MainWindow() void MainWindow::applyCustomShortcuts() { ApplicationSettings *settings = app->getSettings(); - settings->beginGroup("Shortcuts"); for (const QString &actionName : settings->childKeys()) { QAction *action = findChild(QStringLiteral("action") + actionName, Qt::FindDirectChildrenOnly); - const QString shortcutString = settings->value(actionName).toString(); - if (action != Q_NULLPTR) { - action->setShortcut(QKeySequence(shortcutString)); + if (!action) { + qWarning() << "CustomShortcut: Cannot find action" << actionName; + continue; } - else { - qWarning() << "Cannot find action" << actionName; + + const QVariant value = settings->value(actionName); + if (!value.canConvert()) { + qWarning() << "CustomShortcut: Invalid shortcut format for" << actionName; + continue; + } + + QList shortcuts; + for (const QString &shortcutString : value.toStringList()) { + auto sequence = QKeySequence(shortcutString); + + if (sequence.count() > 0 && sequence[0].key() != Qt::Key_unknown) { + shortcuts.append(sequence); + } + else { + qWarning() << "CustomShortcut: Cannot create QKeySequence(" << shortcutString << ") for " << actionName; + } + } + + if (!shortcuts.empty()) { + action->setShortcuts(shortcuts); } } diff --git a/src/NotepadNext/dialogs/MainWindow.ui b/src/NotepadNext/dialogs/MainWindow.ui index d8885cb1d..68bc4040a 100644 --- a/src/NotepadNext/dialogs/MainWindow.ui +++ b/src/NotepadNext/dialogs/MainWindow.ui @@ -108,8 +108,6 @@ Indent - - @@ -575,7 +573,7 @@ Ctrl+A - + :/icons/text_indent.png:/icons/text_indent.png @@ -584,7 +582,7 @@ Increase Indent - + :/icons/text_indent_remove.png:/icons/text_indent_remove.png