- VisibilityController: show on field focus, dismiss until next focus, manual show/hide/toggle overrides - FloatingWindow: resize from the corner grip, clamp to screen - WindowSettings: geometry per screen, debounced saves - DBusControl: org.sloposk.Keyboard Show/Hide/Toggle for global shortcuts - org.sloposk.keyboard.desktop so System Settings lists it as a virtual keyboard - README with build/run/layout docs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
49 lines
997 B
C++
49 lines
997 B
C++
#include "window/VisibilityController.h"
|
|
|
|
#include <QTest>
|
|
|
|
class TestVisibility : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
private Q_SLOTS:
|
|
void followsFieldFocus()
|
|
{
|
|
VisibilityController v;
|
|
v.setFieldActive(true);
|
|
QVERIFY(v.isVisible());
|
|
v.setFieldActive(false);
|
|
QVERIFY(!v.isVisible());
|
|
}
|
|
|
|
void dismissLastsUntilFocusChanges()
|
|
{
|
|
VisibilityController v;
|
|
v.setFieldActive(true);
|
|
v.hide();
|
|
QVERIFY(!v.isVisible());
|
|
v.setFieldActive(false);
|
|
v.setFieldActive(true);
|
|
QVERIFY(v.isVisible());
|
|
}
|
|
|
|
void toggleShowsWithoutField()
|
|
{
|
|
VisibilityController v;
|
|
v.toggle();
|
|
QVERIFY(v.isVisible());
|
|
v.toggle();
|
|
QVERIFY(!v.isVisible());
|
|
}
|
|
|
|
void standaloneAlwaysVisible()
|
|
{
|
|
VisibilityController v;
|
|
v.setStandalone(true);
|
|
QVERIFY(v.isVisible());
|
|
}
|
|
};
|
|
|
|
QTEST_GUILESS_MAIN(TestVisibility)
|
|
#include "tst_visibility.moc"
|