/* * QtInputHandler - Qt-based input mapping for GUI mode */ #pragma once #include #include #include "InputHandler.h" class QKeyEvent; class QtInputHandler final : public InputHandler { public: QtInputHandler() = default; ~QtInputHandler() override = default; void Attach(Editor *ed) override { ed_ = ed; } // Translate a Qt key event to editor command and enqueue if applicable. // Returns true if it produced a mapped command or consumed input. bool ProcessKeyEvent(const QKeyEvent &e); bool Poll(MappedInput &out) override; private: std::mutex mu_; std::queue q_; bool k_prefix_ = false; bool k_ctrl_pending_ = false; // C-k C-… qualifier bool esc_meta_ = false; // ESC-prefix for next key bool suppress_text_input_once_ = false; // reserved (Qt sends text in keyPressEvent) Editor *ed_ = nullptr; };