summaryrefslogtreecommitdiffhomepage
path: root/opentrack/shortcuts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'opentrack/shortcuts.cpp')
-rw-r--r--opentrack/shortcuts.cpp130
1 files changed, 0 insertions, 130 deletions
diff --git a/opentrack/shortcuts.cpp b/opentrack/shortcuts.cpp
deleted file mode 100644
index 06c246af..00000000
--- a/opentrack/shortcuts.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Copyright (c) 2014-2015, Stanislaw Halik <sthalik@misaki.pl>
-
- * Permission to use, copy, modify, and/or distribute this
- * software for any purpose with or without fee is hereby granted,
- * provided that the above copyright notice and this permission
- * notice appear in all copies.
- */
-
-#include "shortcuts.h"
-#include "win32-shortcuts.h"
-
-void Shortcuts::free_binding(K& key)
-{
-#ifndef _WIN32
- if (key)
- {
- key->setEnabled(false);
- key->setShortcut(QKeySequence::UnknownKey);
- std::shared_ptr<QxtGlobalShortcut> tmp(nullptr);
- key.swap(tmp);
- }
-#else
- key.keycode = 0;
- key.guid = "";
-#endif
-}
-
-void Shortcuts::bind_keyboard_shortcut(K &key, const key_opts& k, unused_on_unix(bool, held))
-{
-#if !defined(_WIN32)
- using sh = QxtGlobalShortcut;
- if (key)
- {
- free_binding(key);
- }
-
- key = std::make_shared<sh>();
-
- if (k.keycode != "")
- {
- key->setShortcut(QKeySequence::fromString(k.keycode, QKeySequence::PortableText));
- key->setEnabled();
- }
-}
-#else
- key = K();
- int idx = 0;
- QKeySequence code;
-
- if (k.guid != "")
- {
- key.guid = k.guid;
- key.keycode = k.button & ~Qt::KeyboardModifierMask;
- key.ctrl = !!(k.button & Qt::ControlModifier);
- key.alt = !!(k.button & Qt::AltModifier);
- key.shift = !!(k.button & Qt::ShiftModifier);
- }
- else
- {
- if (k.keycode == "")
- code = QKeySequence(Qt::Key_unknown);
- else
- code = QKeySequence::fromString(k.keycode, QKeySequence::PortableText);
-
- Qt::KeyboardModifiers mods = Qt::NoModifier;
- 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);
- key.keycode = idx;
- key.held = held;
- }
-}
-#endif
-
-#ifdef _WIN32
-void Shortcuts::receiver(const Key& k)
-{
- const unsigned sz = keys.size();
- for (unsigned i = 0; i < sz; i++)
- {
- K& k_ = std::get<0>(keys[i]);
- auto& fun = std::get<1>(keys[i]);
- if (k.guid != k_.guid)
- continue;
- if (k.keycode != k_.keycode)
- continue;
- if (k_.held && !k.held) continue;
- if (k_.alt != k.alt) continue;
- if (k_.ctrl != k.ctrl) continue;
- if (k_.shift != k.shift) continue;
- if (!k_.should_process())
- continue;
-
- fun(k.held);
- }
-}
-#endif
-
-void Shortcuts::reload(const std::vector<std::tuple<key_opts&, fun, bool>> &keys_)
-{
- const unsigned sz = keys_.size();
- keys = std::vector<tt>();
-
- for (unsigned i = 0; i < sz; i++)
- {
- const auto& kk = keys_[i];
- const key_opts& opts = std::get<0>(kk);
- const bool held = std::get<2>(kk);
- auto fun = std::get<1>(kk);
- K k;
- bind_keyboard_shortcut(k, opts, held);
- keys.push_back(tt(k, [=](unused_on_unix(bool, flag)) -> void
- {
-#ifdef _WIN32
- fun(flag);
-#else
- fun(true);
-#endif
- },
- held));
-#ifndef _WIN32
- const int idx = keys.size() - 1;
- tt& kk_ = keys[idx];
- auto& fn = std::get<1>(kk_);
- connect(k.get(), &QxtGlobalShortcut::activated, [=]() -> void { fn(true); });
-#endif
- }
-}