summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--facetracknoir/options-dialog.cpp14
-rw-r--r--facetracknoir/options-dialog.hpp2
-rw-r--r--opentrack/shortcuts.cpp15
-rw-r--r--opentrack/shortcuts.h4
4 files changed, 21 insertions, 14 deletions
diff --git a/facetracknoir/options-dialog.cpp b/facetracknoir/options-dialog.cpp
index 1d8e636a..8ac95b71 100644
--- a/facetracknoir/options-dialog.cpp
+++ b/facetracknoir/options-dialog.cpp
@@ -54,14 +54,14 @@ OptionsDialog::OptionsDialog()
connect(ui.bind_zero, &QPushButton::pressed, [&]() -> void { bind_key(s.zero.keycode, ui.zero_text); });
connect(ui.bind_toggle, &QPushButton::pressed, [&]() -> void { bind_key(s.toggle.keycode, ui.toggle_text); });
- ui.center_text->setText(QKeySequence(s.center.keycode).toString());
- ui.zero_text->setText(QKeySequence(s.zero.keycode).toString());
- ui.toggle_text->setText(QKeySequence(s.toggle.keycode).toString());
+ ui.center_text->setText(s.center.keycode == "" ? "None" : static_cast<QString>(s.center.keycode));
+ ui.toggle_text->setText(s.toggle.keycode == "" ? "None" : static_cast<QString>(s.toggle.keycode));
+ ui.zero_text->setText(s.zero.keycode == "" ? "None" : static_cast<QString>(s.zero.keycode));
}
-void OptionsDialog::bind_key(value<int>& ret, QLabel* label)
+void OptionsDialog::bind_key(value<QString>& ret, QLabel* label)
{
- ret = 0;
+ ret = "";
QDialog d;
auto l = new QHBoxLayout;
l->setMargin(0);
@@ -70,9 +70,9 @@ void OptionsDialog::bind_key(value<int>& ret, QLabel* label)
d.setLayout(l);
d.setFixedSize(QSize(500, 500));
d.setWindowFlags(Qt::Dialog);
- connect(k, &KeyboardListener::key_pressed, [&] (QKeySequence s) -> void { ret = static_cast<QVariant>(s).toInt(); d.close(); });
+ connect(k, &KeyboardListener::key_pressed, [&] (QKeySequence s) -> void { ret = s.toString(QKeySequence::PortableText); d.close(); });
d.exec();
- label->setText(QKeySequence(ret).toString());
+ label->setText(ret == "" ? "None" : static_cast<QString>(ret));
delete k;
delete l;
}
diff --git a/facetracknoir/options-dialog.hpp b/facetracknoir/options-dialog.hpp
index 0ab9849d..9ad656a4 100644
--- a/facetracknoir/options-dialog.hpp
+++ b/facetracknoir/options-dialog.hpp
@@ -18,5 +18,5 @@ private:
private slots:
void doOK();
void doCancel();
- void bind_key(value<int>& ret, QLabel* label);
+ void bind_key(value<QString>& ret, QLabel* label);
};
diff --git a/opentrack/shortcuts.cpp b/opentrack/shortcuts.cpp
index d68da30e..81393ae3 100644
--- a/opentrack/shortcuts.cpp
+++ b/opentrack/shortcuts.cpp
@@ -132,18 +132,25 @@ void Shortcuts::bind_keyboard_shortcut(K &key, key_opts& k)
key->setShortcut(QKeySequence::UnknownKey);
}
- if (k.keycode)
+ if (k.keycode != "")
{
- key->setShortcut(QKeySequence(k.keycode));
+ key->setShortcut(QKeySequence::fromString(k.keycode, QKeySequence::PortableText));
key->setEnabled();
}
}
#else
key = K();
int idx = 0;
+ QKeySequence seq;;
+
+ if (k.keycode == "")
+ code = QKeySequence(Qt::Key_unknown);
+ else
+ code = QKeySequence::fromString(k.keycode, QKeySequence::PortableText)
+
Qt::KeyboardModifiers mods = Qt::NoModifier;
- if (k.keycode != Qt::Key_unknown)
- win_key::from_qt(QKeySequence(k.keycode), idx, mods);
+ if (code != Qt::Key_unknown)
+ win_key::from_qt(code, idx, mods);
key.shift = !!(mods & Qt::ShiftModifier);
key.alt = !!(mods & Qt::AltModifier);
key.ctrl = !!(mods & Qt::ControlModifier);
diff --git a/opentrack/shortcuts.h b/opentrack/shortcuts.h
index 6a9a6f77..2d7fec54 100644
--- a/opentrack/shortcuts.h
+++ b/opentrack/shortcuts.h
@@ -27,10 +27,10 @@ using namespace options;
extern QList<QString> global_key_sequences;
struct key_opts {
- value<int> keycode;
+ value<QString> keycode;
key_opts(pbundle b, const QString& name) :
- keycode(b, QString("keycode-%1").arg(name), 0)
+ keycode(b, QString("keycode-%1").arg(name), "")
{}
};