aboutsummaryrefslogtreecommitdiff
path: root/src/core/kcoreconfigskeleton.cpp
AgeCommit message (Collapse)Author
2021-11-14Avoid some allocations by QString/QByteArray's toLower()Friedrich W. H. Kossebau
NO_CHANGELOG
2021-08-28GIT_SILENT: we can use std::as_const directlyLaurent Montel
2021-08-13clang-tidy: one declaration per line; braces around statementsAhmad Samir
clang-tidy checks: readability-isolate-declaration and readability-braces-around-statements KF task: https://phabricator.kde.org/T14729 GIT_SILENT
2021-03-06Minor code optimisationAhmad Samir
- Use more range-for loops where appropriate - Use auto instead of the usually-long iterator type names - Use cbegin/cend(), to match the std:: containers, less confusion - Use qDeleteAll instead of a for loop - Make a QRE with a long-ish pattern static NO_CHANGELOG
2021-02-22Run clang-format on all cpp/h filesAhmad Samir
NO_CHANGELOG
2021-01-18Use Q_EMIT instead of emitAhmad Samir
In C++20 there are new classes that have member functions named emit(). c.f.: https://lists.qt-project.org/pipermail/development/2020-February/038812.html https://en.cppreference.com/w/cpp/io/basic_osyncstream/emit GIT_SILENT
2020-08-28Introduce method to query KConfigSkeletonItem default valueDavid Edmundson
5.64 added an isDefault method however this doesn't suffice for usage in KConfigDialogManager which compares a current value to the default. KConfigDialogManager currently uses a hack with side effects. Exposing the value directly solves that.
2020-03-22KConfig: Convert to SPDX license statementsAndreas Cord-Landwehr
Summary: Convert license headers to SPDX statements and add license files as required by REUSE specification. Reviewers: cgiboudeaux Reviewed By: cgiboudeaux Subscribers: ognarb, cgiboudeaux, kde-frameworks-devel Tags: #frameworks Maniphest Tasks: T11550 Differential Revision: https://phabricator.kde.org/D27601
2020-03-08KconfigXT: Add a value attribute to Enum field choicesMéven Car
Summary: Allow to write choices such as : ``` <choices> <choice name="enum_name" value="I can't containt (anything)"></choice> <choice name="normal_choice"></choice> </choices> ``` Test Plan: ctest Reviewers: ervin, bport, crossi, #frameworks Reviewed By: ervin Subscribers: ngraham, davidre, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27463
2020-02-24KConfigSkeletonItem : allow to set a KconfigGroup to read and write items in ↵Cyril Rossi
nested groups Summary: Currently KConfgiSkeleton cannot manage item entry in subgroup, like ``` [General][Colors] MyItem=foo ``` Example of use ``` // Generated Class with KConfig compiler, inherits KConfigSkeleton KConfigGroup generalGroup( &config, "General" ); KConfigGroup colorsGroup = config.group( "Colors" ) myItem->setGroup(cg); // Now can take a KConfigGroup addItem(myItem, "MyItem"); ``` Evolution of kconfig compiler will follow to consider this. Reviewers: ervin, dfaure, #frameworks, mdawson Reviewed By: ervin, dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27059
2020-02-12Add setNotifyFunction to KPropertySkeletonItemBenjamin Port
Summary: This function will be called when the property value change Reviewers: ervin, meven, crossi Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D27342
2019-12-10Fix writeFlags with KConfigCompilerSignallingItemDavid Edmundson
Summary: KConfigCompilerSignallingItem both inherits KConfigSkeletonItem and internally is powered by a separate KConfigSkeletonItem The generated code calls setWriteFlags on the outer KConfigCompilerSignallingItem instance, but the real writing is performed by the internal version. We need to set the flags in the right place. Ideally we would do this in an overload of KConfigSkeletonItem, but given we can't, I've shadowed the method. This isn't pretty, but given the docs say it should generally only be used from auto generated code, should be fine. Test Plan: Used in workspace KCM Reviewers: ervin Reviewed By: ervin Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25791
2019-11-12Add KPropertySkeletonItemKevin Ottens
Summary: This new item allows to use a QObject property as a source for a setting. This is especially convenient for using with KCMs present in systemsettings which tend to store information outside of KConfig (for interfacing deeper with the system). Reviewers: #frameworks, dfaure, davidedmundson, bport, crossi Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25211
2019-11-12Prepare KConfigSkeletonItem to allow inheriting its private classKevin Ottens
Reviewers: #frameworks, dfaure, davidedmundson, bport, crossi Subscribers: vkrause, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D25210
2019-10-18Use ECMGenerateExportHeader to manage deprecated API betterFriedrich W. H. Kossebau
Summary: Allows * projects linking to KConfigCore/Gui to hide deprecated API up to a given version or silence deprecation warnings after a given version, using * -DKCONFIGCORE_DISABLE_DEPRECATED_BEFORE_AND_AT * -DKCONFIGCORE_NO_DEPRECATED * -DKCONFIGCORE_DEPRECATED_WARNINGS_SINCE * -DKCONFIGCORE_NO_DEPRECATED_WARNINGS * -DKCONFIGGUI_DISABLE_DEPRECATED_BEFORE_AND_AT * -DKCONFIGGUI_NO_DEPRECATED * -DKCONFIGGUI_DEPRECATED_WARNINGS_SINCE * -DKCONFIGGUI_NO_DEPRECATED_WARNINGS or * -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT * -DKF_NO_DEPRECATED * -DKF_DEPRECATED_WARNINGS_SINCE * -DKF_NO_DEPRECATED_WARNINGS * to build KConfigCore/Gui optionally with deprecated API excluded from the build, using "EXCLUDE_DEPRECATED_BEFORE_AND_AT" cmake argument. Test Plan: Builds with EXCLUDE_DEPRECATED_BEFORE_AND_AT set to 0, 4.0.0, 5.0.0, 5.11.0, 5.24.0, 5.39.0, 5.42.0, CURRENT. Reviewers: #frameworks, mlaurent Reviewed By: mlaurent Subscribers: mlaurent, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D24496
2019-10-10Add convenience for defaults/dirty states to KCoreConfigSkeletonKevin Ottens
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
2019-09-30Small performance enhacementsAlbert Astals Cid
Summary: suggested by clang-tidy Reviewers: davidedmundson Reviewed By: davidedmundson Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D24312
2019-09-17[KConfig] port away from deprecated methods in Qt 5.14David Faure
Summary: In kconf_update, the ctime usage used to be about metadata change time (buff.st_ctime, before it got ported to the misnamed created()). I ported it to birthTime, because I think date of birth is a more useful way to identify a file than date of permission change which doesn't really matter to us. But in practice, I can't help but wonder if mtime alone wouldn't be enough. For the QStringLiteral("%%1").arg(i) bit, I tested it in tst_qstring, the first % is left untouched. Test Plan: make && ctest Reviewers: mdawson, arichardson, vkrause Reviewed By: vkrause Subscribers: pino, arojas, mlaurent, kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D23815
2019-04-24Add Notify capability to KConfigXTKai Uwe Broulik
Lets you specify Notifiers= in .kcfg for config entries that should be written with Notify flag, i.e. announce the change to KConfigWatcher Differential Revision: https://phabricator.kde.org/D20196
2019-03-03[Kconfig] Compile without foreachLaurent Montel
Summary: compile without foreach Test Plan: Unittest Ok as previously Reviewers: dfaure Reviewed By: dfaure Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D19326
2018-04-19Warning--Laurent Montel
2015-08-19Rename private class to avoid exporting it accidentallyMontel Laurent
2015-01-07Fix KCoreConfigSkeleton when toggling a value with saves in betweenAlbert Astals Cid
REVIEW: 121838 Acked by Matthew Dawson
2014-09-18Move diagnostic pragmas outside/around functions.Nicolás Alvarez
gcc 4.5 doesn't support "#pragma GCC diagnostic" inside functions. Apparently it also doesn't support "#pragma GCC diagnostic push/pop", but it doesn't fail for that, so meh.
2014-03-28guard gcc-specific things with Q_CC_GNU to avoid problems elsewhereDavid Faure
2014-03-28Stop re-loading values inside KCoreConfigSkeleton::save().Matthew Dawson
The extra load of values in KCoreConfigSkeleton is not documented anywhere that it happens, and in normal circumstances re-loading new values isn't expecterd during a save operation. Update various mentions of readConfig/writeConfig to read/save. Update documentation to match the new names of functions. Rename writeConfig() to save() and usrWriteConfig() to usrSave() Rename functions to match the new naming conventions. Also create old deprecated instances of both functions to ensure that old code continues to operate correctly. Also make save() non-virtual, for the same reasons read() is now non-virtual. Rename usrReadConfig to usrRead, to be consistent with the new name for readConfig. Rename usrReadConfig to usrRead, and mark the former as deprecated. To maintain compatibility, usrRead still calls usrReadConfig in its default implementation. usrReadConfig remains empty. REVIEW: 117010
2014-03-23Rename readConfig() to load(), to make it clear it's loading from disk.David Faure
As discussed with Matthew Dawson in review 116461.
2014-03-23Remove unnecessary debug outputDavid Faure
2014-03-23Add KCoreConfigSkeleton::read() which doesn't call reparseConfiguration.David Faure
Call it from generated singletons, since the constructor creates a KConfig from a filename, which already loads from disk. This removes the need for using DelayedParsing. REVIEW: 116845
2014-03-13KCoreConfigSkeleton: delay parsing until the call to readConfig()David Faure
2014-02-27Add sharedConfig() accessor, to avoid manipulating a raw KConfig * as ↵David Faure
returned by config(). This is useful when using kconfigxt and some other code to read from the same config file (e.g. KColorScheme::contrastF(config)) - no need to call KSharedConfig::openConfig twice, just grab the KSharedConfig from the generated class. REVIEW: 115960
2014-02-20Make kconfig_compiler signals actually useful + add unit testAlex Richardson
Previously the classes generated by kconfig_compiler would only emit the defined signals when using the setters provided by that class. However, when using e.g. KConfigDialog which uses KConfigSkeletonItem::setProperty() to change the items no signal was generated. This patch fixes this by using a wrapper KConfigSkeletonItem subclass that calls a private itemChanged() method in the generated class which updates the set of changed properties. As soon as the item is saved (usrWriteConfig() in the generated class is called) the signal will be emitted REVIEW: 115635 REVIEW: 115634
2013-12-18Code reformatted using kde-dev-scripts/astyle-kdelibs.David Faure
Use git blame -w 867e7a5 to show authorship as it was before this commit.
2013-12-18Move kconfig code to the root directory.Jenkins CI