Floating polish: visibility, resize, saved geometry, D-Bus, desktop entry
- 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>
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#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"
|
||||
Reference in New Issue
Block a user