-void ShortcutEdit::keyPressEvent(QKeyEvent * e)
-{
- int keyQt = e->key();
- switch(e->key()) {
- case Qt::Key_AltGr: //or else we get unicode salad
- case Qt::Key_Shift:
- case Qt::Key_Control:
- case Qt::Key_Alt:
- case Qt::Key_Meta:
- break;
- default:
- if (keyQt) {
- uint modifierKeys = e->modifiers();
-
- QString txt;
- if (modifierKeys & Qt::SHIFT)
- txt += "S-";
- if (modifierKeys & Qt::CTRL)
- txt += "C-";
- if (modifierKeys & Qt::ALT)
- txt += "M-";
-
- KeySymbol sym;
- setKeySymbol(&sym, e);
- txt += toqstr(sym.getSymbolName());
-
- if (text().isEmpty())
- setText(txt);
- else
- setText(text() + " " + txt);
- }
- }
-}
-
-
-//prevent Qt from special casing Tab and Backtab
-bool ShortcutEdit::event(QEvent* e)
-{
- if (e->type() == QEvent::ShortcutOverride)
- return false;
-
- if (e->type() == QEvent::KeyPress) {
- keyPressEvent(static_cast<QKeyEvent *>(e));
- return true;
- }
-
- return QLineEdit::event(e);
-}
-
-