#include <config.h>
#include "GuiKeySymbol.h"
-#if defined(Q_OS_MAC) && QT_VERSION > 0x050000
+#if defined(Q_OS_MAC)
#include "GuiApplication.h"
#endif
#include "qt_helpers.h"
#include <QKeyEvent>
#include <QKeySequence>
#include <QEvent>
-#include <QTextCodec>
#include <map>
#include <string>
}
-#if 0
-static char encode(string const & encoding, QString const & str)
-{
- typedef map<string, QTextCodec *> EncodingMap;
- EncodingMap encoding_map;
-
- QTextCodec * codec = 0;
-
- EncodingMap::const_iterator cit = encoding_map.find(encoding);
- if (cit == encoding_map.end()) {
- LYXERR(Debug::KEY, "Unrecognised encoding '" << encoding << "'.");
- codec = encoding_map.find("")->second;
- } else {
- codec = cit->second;
- }
-
- if (!codec) {
- LYXERR(Debug::KEY, "No codec for encoding '" << encoding << "' found.");
- return 0;
- }
-
- LYXERR(Debug::KEY, "Using codec " << codec->name());
-
- if (!codec->canEncode(str)) {
- LYXERR(Debug::KEY, "Oof. Can't encode the text !");
- return 0;
- }
-
- return codec->fromUnicode(str).data()[0];
-}
-#endif
-
-
void setKeySymbol(KeySymbol * sym, QKeyEvent const * ev)
{
sym->setKey(ev->key());
}
+void KeySymbol::init(int key)
+{
+ key_ = key;
+ text_ = from_utf8(qkey_to_string(key));
+ LYXERR(Debug::KEY, "Init key to " << key_ << ", " << to_utf8(text_));
+}
+
+
bool KeySymbol::isOK() const
{
bool const ok = !(text_.empty() && qkey_to_string(key_).empty());
KeyModifier q_key_state(Qt::KeyboardModifiers state)
{
KeyModifier k = NoModifier;
-#if defined(Q_OS_MAC) && QT_VERSION > 0x050000
+#if defined(Q_OS_MAC) && (QT_VERSION < QT_VERSION_CHECK(5, 12, 0))
/// Additional check for Control and Meta modifier swap state.
/// Starting with Qt 5 the modifiers aren't reported correctly.
/// Until this is fixed a correction is required.
+ /// AFAIK it is fixed at least with Qt 5.12.0
const bool dontSwapCtrlAndMeta =
frontend::theGuiApp()->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta);
#else