case Qt::Key_THORN: return "THORN";
case Qt::Key_ssharp: return "ssharp";
case Qt::Key_ydiaeresis: return "ydiaeresis";
+ case Qt::Key_Bar: return "bar";
// FIXME: these ones I don't know the names of ... help !
// what's here is basically guesses ...
case Qt::Key_Hyper_L: return "Hyper_L";
case Qt::Key_Hyper_R: return "Hyper_R";
case Qt::Key_Help: return "Help";
- case Qt::Key_Bar: return "Bar";
case Qt::Key_Backtab: return "BackTab";
default:
bool KeySymbol::isOK() const
{
- bool const ok = !(text_.empty() && key_ == Qt::Key_unknown);
+ bool const ok = !(text_.empty() && qkey_to_string(key_).empty());
LYXERR(Debug::KEY, "isOK is " << ok);
return ok;
}
{
int tmpkey = key_;
- if (mod & ShiftModifier)
+ if (mod & ShiftModifier && !(tmpkey == Qt::Key_Shift))
tmpkey += Qt::ShiftModifier;
- if (mod & ControlModifier)
+ if (mod & ControlModifier && !(tmpkey == Qt::Key_Control))
tmpkey += Qt::ControlModifier;
- if (mod & AltModifier)
+ if (mod & AltModifier && !(tmpkey == Qt::Key_Alt))
tmpkey += Qt::AltModifier;
+ if (mod & MetaModifier && !(tmpkey == Qt::Key_Meta))
+ tmpkey += Qt::MetaModifier;
QKeySequence seq(tmpkey);
QString str;
-
+
if (forgui)
str = seq.toString(QKeySequence::NativeText);
else {
k |= ControlModifier;
if (state & Qt::ShiftModifier)
k |= ShiftModifier;
- if (state & Qt::AltModifier || state & Qt::MetaModifier)
+ if (state & Qt::AltModifier)
+ k |= AltModifier;
+#if defined(USE_MACOSX_PACKAGING) || defined(USE_META_KEYBINDING)
+ if (state & Qt::MetaModifier)
+ k |= MetaModifier;
+#else
+ if (state & Qt::MetaModifier)
k |= AltModifier;
+#endif
return k;
}