From 4c3d3751968422ff5cba56b5da2036a1bceba314 Mon Sep 17 00:00:00 2001 From: Kevin Ottens Date: Thu, 10 Oct 2019 13:25:44 +0200 Subject: Add convenience for defaults/dirty states to KCoreConfigSkeleton Summary: It allows to verify if all the items of the skeleton are in their default values or if they hold any value deviating from the latest loaded values from KConfig. We didn't really need this during the KCModule/QtWidgets time since we could write KConfigDialogManager just fine without it. But for use with QML and aiming at having similar magic in KQuickAddons::ConfigModule such convenience functions will be needed. Reviewers: #plasma, #frameworks, dfaure, mart Subscribers: apol, kossebau, davidedmundson, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D24494 --- autotests/kconfigskeletontest.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'autotests') diff --git a/autotests/kconfigskeletontest.cpp b/autotests/kconfigskeletontest.cpp index 3e37f6c5..1971da78 100644 --- a/autotests/kconfigskeletontest.cpp +++ b/autotests/kconfigskeletontest.cpp @@ -56,6 +56,9 @@ void KConfigSkeletonTest::init() QCOMPARE(mMyColor, DEFAULT_SETTING2); QCOMPARE(mMyFont, DEFAULT_SETTING3); QCOMPARE(mMyString, DEFAULT_SETTING4); + + QVERIFY(s->isDefaults()); + QVERIFY(!s->isSaveNeeded()); } void KConfigSkeletonTest::cleanup() @@ -70,15 +73,27 @@ void KConfigSkeletonTest::testSimple() mMyFont = WRITE_SETTING3; mMyString = WRITE_SETTING4; + QVERIFY(s->isSaveNeeded()); + QVERIFY(!s->isDefaults()); + s->save(); + QVERIFY(!s->isSaveNeeded()); + QVERIFY(!s->isDefaults()); + mMyBool = false; mMyColor = QColor(); mMyString.clear(); mMyFont = QFont(); + QVERIFY(s->isSaveNeeded()); + QVERIFY(!s->isDefaults()); + s->read(); + QVERIFY(!s->isSaveNeeded()); + QVERIFY(!s->isDefaults()); + QCOMPARE(mMyBool, WRITE_SETTING1); QCOMPARE(mMyColor, WRITE_SETTING2); QCOMPARE(mMyFont, WRITE_SETTING3); @@ -112,16 +127,28 @@ void KConfigSkeletonTest::testDefaults() mMyFont = WRITE_SETTING3; mMyString = WRITE_SETTING4; + QVERIFY(s->isSaveNeeded()); + QVERIFY(!s->isDefaults()); + s->save(); + QVERIFY(!s->isSaveNeeded()); + QVERIFY(!s->isDefaults()); + s->setDefaults(); + QVERIFY(s->isSaveNeeded()); + QVERIFY(s->isDefaults()); + QCOMPARE(mMyBool, DEFAULT_SETTING1); QCOMPARE(mMyColor, DEFAULT_SETTING2); QCOMPARE(mMyFont, DEFAULT_SETTING3); QCOMPARE(mMyString, DEFAULT_SETTING4); s->save(); + + QVERIFY(!s->isSaveNeeded()); + QVERIFY(s->isDefaults()); } void KConfigSkeletonTest::testKConfigDirty() -- cgit v1.2.1