Add additional escape key sequences for AZERTY layouts

Using the Escape key followed by Shift and a number key to insert a
foreground mosaic attribute doesn't work on an AZERTY keyboard layout where
the Shift key is always needed to type a number.

The additional escape keys are on the top row of letters situated below the
equivalent number key as those letters were not previously not used.

Red:     1 or A
Green:   2 or Z
Yellow:  3 or E
Blue:    4 or R
Magenta: 5 or T
Cyan:    6 or Y
White:   7 or U
Black:   0 or P
This commit is contained in:
Gavin MacGregor
2025-11-23 22:01:54 +00:00
parent f708765d7b
commit eea73592f9

View File

@@ -824,16 +824,23 @@ void MainWindow::createActions()
QMenu *alphaColourSubMenu = insertMenu->addMenu(tr("Alphanumeric colour")); QMenu *alphaColourSubMenu = insertMenu->addMenu(tr("Alphanumeric colour"));
QMenu *mosaicColourSubMenu = insertMenu->addMenu(tr("Mosaic colour")); QMenu *mosaicColourSubMenu = insertMenu->addMenu(tr("Mosaic colour"));
for (int i=0; i<=7; i++) { for (int i=0; i<=7; i++) {
const char *colours[] = { "Black", "Red", "Green", "Yellow", "Blue", "Magenta", "Cyan", "White" }; const char *colourNames[] = { "Black", "Red", "Green", "Yellow", "Blue", "Magenta", "Cyan", "White" };
const QChar azertyKeys[] = { 'P', 'A', 'Z', 'E', 'R', 'T', 'Y', 'U' };
QAction *alphaColour = alphaColourSubMenu->addAction(tr(colours[i])); QAction *alphaColour = alphaColourSubMenu->addAction(tr(colourNames[i]));
alphaColour->setShortcut(QKeySequence(QString("Esc, %1").arg(i))); alphaColour->setShortcuts(QList<QKeySequence> {
alphaColour->setStatusTip(QString("Insert alphanumeric %1 attribute").arg(QString(colours[i]).toLower())); QKeySequence(QString("Esc, %1").arg(i)),
QKeySequence(QString("Esc, %1").arg(azertyKeys[i]))
} );
alphaColour->setStatusTip(QString("Insert alphanumeric %1 attribute").arg(QString(colourNames[i]).toLower()));
connect(alphaColour, &QAction::triggered, [=]() { m_textWidget->setCharacter(i); }); connect(alphaColour, &QAction::triggered, [=]() { m_textWidget->setCharacter(i); });
QAction *mosaicColour = mosaicColourSubMenu->addAction(tr(colours[i])); QAction *mosaicColour = mosaicColourSubMenu->addAction(tr(colourNames[i]));
mosaicColour->setShortcut(QKeySequence(QString("Esc, Shift+%1").arg(i))); mosaicColour->setShortcuts(QList<QKeySequence> {
mosaicColour->setStatusTip(QString("Insert mosaic %1 attribute").arg(QString(colours[i]).toLower())); QKeySequence(QString("Esc, Shift+%1").arg(i)),
QKeySequence(QString("Esc, Shift+%1").arg(azertyKeys[i]))
} );
mosaicColour->setStatusTip(QString("Insert mosaic %1 attribute").arg(QString(colourNames[i]).toLower()));
connect(mosaicColour, &QAction::triggered, [=]() { m_textWidget->setCharacter(i+0x10); }); connect(mosaicColour, &QAction::triggered, [=]() { m_textWidget->setCharacter(i+0x10); });
} }