Hotfix/2950 delete filters with keyboard (#3097)

* Shortcut setting checks for invalid keys

* Different message shown for invalid keys and used keys; warning message is displayed on start if conflic is detected

* Only shortcuts related to deck-builder are checked
This commit is contained in:
Vafthrudnir 2018-02-13 08:51:14 +01:00 committed by Zach H
parent 11ad677fe8
commit f302154df7
3 changed files with 77 additions and 19 deletions

View file

@ -139,19 +139,23 @@ int SequenceEdit::translateModifiers(Qt::KeyboardModifiers state, const QString
void SequenceEdit::finishShortcut()
{
QKeySequence secuence(keys);
if (!secuence.isEmpty() && valid) {
QString secuenceString = secuence.toString();
if (settingsCache->shortcuts().isValid(shorcutName, secuenceString)) {
if (!lineEdit->text().isEmpty()) {
if (lineEdit->text().contains(secuenceString)) {
return;
QKeySequence sequence(keys);
if (!sequence.isEmpty() && valid) {
QString sequenceString = sequence.toString();
if (settingsCache->shortcuts().isKeyAllowed(shorcutName, sequenceString)) {
if (settingsCache->shortcuts().isValid(shorcutName, sequenceString)) {
if (!lineEdit->text().isEmpty()) {
if (lineEdit->text().contains(sequenceString)) {
return;
}
lineEdit->setText(lineEdit->text() + ";");
}
lineEdit->setText(lineEdit->text() + ";");
lineEdit->setText(lineEdit->text() + sequenceString);
} else {
QToolTip::showText(lineEdit->mapToGlobal(QPoint()), tr("Shortcut already in use"));
}
lineEdit->setText(lineEdit->text() + secuenceString);
} else {
QToolTip::showText(lineEdit->mapToGlobal(QPoint()), tr("Shortcut already in use"));
QToolTip::showText(lineEdit->mapToGlobal(QPoint()), tr("Invalid key"));
}
}