- Double-space replaced the space via a Backspace keysym, which clients apply after the commit: use delete_surrounding_text with the commit - Tests use a shared FakeEngine that applies ops to a simulated field - Double-tap shift locks at a sentence start; typing between taps doesn't - Organization name set: config lives in ~/.config/sloposk/ - Settings (auto-capitalization, double-space period) with a ⚙ panel - Letter rows come from the compositor's XKB keymap; other letters of the layout become long-press alternates; globe switches the system layout over org.kde.keyboard - One JSON template for non-letter layers; stretch keys even out rows Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 lines
606 B
C++
19 lines
606 B
C++
#pragma once
|
|
|
|
#include <QString>
|
|
#include <qnamespace.h>
|
|
|
|
// Turns what the keyboard produces into text operations.
|
|
// DirectEngine passes them straight through; prediction and swipe engines
|
|
// will sit here too (preedit, candidates, auto-correction).
|
|
class InputEngine
|
|
{
|
|
public:
|
|
virtual ~InputEngine() = default;
|
|
|
|
virtual void commitText(const QString &text) = 0;
|
|
// See TextBackend::replaceBeforeCursor.
|
|
virtual void replaceBeforeCursor(const QString &before, const QString &text) = 0;
|
|
virtual void sendKeysym(quint32 keysym, Qt::KeyboardModifiers modifiers = Qt::NoModifier) = 0;
|
|
};
|