Add configurable Plasma panel scroll and click actions

This commit is contained in:
ajp_anton
2026-09-07 19:47:47 +00:00
parent ed2bb7f92c
commit f5988605c8
29 changed files with 1707 additions and 0 deletions
@@ -0,0 +1,46 @@
// SPDX-License-Identifier: MIT
#include "settings.h"
#include <QTemporaryDir>
#include <QTest>
class SettingsTest : public QObject
{
Q_OBJECT
private Q_SLOTS:
void savesWithoutAWidget()
{
QTemporaryDir directory;
QVERIFY(directory.isValid());
qputenv("XDG_CONFIG_HOME", directory.path().toUtf8());
Settings settings;
auto values = settings.values();
QCOMPARE(values.value(QStringLiteral("spacerLength")).toInt(), 48);
QCOMPARE(values.value(QStringLiteral("tasksAction")).toString(), QStringLiteral("volume"));
values[QStringLiteral("tasksAction")] = QStringLiteral("normal");
values[QStringLiteral("spacerLength")] = 128;
QVERIFY(settings.save(values));
Settings reopened;
QCOMPARE(reopened.values(), values);
auto invalid = values;
invalid[QStringLiteral("tasksAction")] = QStringLiteral("invalid");
QVERIFY(!settings.save(invalid));
QCOMPARE(settings.values(), values);
auto launch = values;
launch[QStringLiteral("leftDoubleClick")] = QStringLiteral("command");
QVERIFY(!settings.save(launch)); // empty command cannot be enabled
launch[QStringLiteral("leftDoubleClickCommand")] = QStringLiteral("true");
QVERIFY(settings.save(launch));
QCOMPARE(settings.values(), launch);
launch[QStringLiteral("middleDoubleClick")] = QStringLiteral("application");
QVERIFY(!settings.save(launch));
launch[QStringLiteral("middleDoubleClickApplication")] = QStringLiteral("org.kde.plasma-systemmonitor.desktop");
QVERIFY(settings.save(launch));
QCOMPARE(settings.values(), launch);
invalid = values;
invalid[QStringLiteral("spacerLength")] = -1;
QVERIFY(!settings.save(invalid));
QCOMPARE(settings.values(), launch);
}
};
QTEST_GUILESS_MAIN(SettingsTest)
#include "test-settings.moc"