aboutsummaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)Author
2021-05-11Docs: make a complete reference to reparseConfiguration() from KSharedConfigAdriaan de Groot
NO_CHANGELOG
2021-05-09Revert QStringView portAhmad Samir
QStringView has some bits of API that were only added in 5.15.2, whereas KF requires 5.15.0. This reverts commit 1780fb2a237af80ddc1f9cfb70cb892b53b91990.
2021-05-07Order macro for attribute for symbol export before that for deprecatedFriedrich W. H. Kossebau
The symbol export/visibility attribute is not standardized so far and needs to be set by language extension attribute declaration at least with clang & MSVC, who both support that when it appears before the standard attribute declaration. NO_CHANGELOG
2021-05-02Port away from ECMSetupVersion's deprecated *_VERSION_STRING CMake variableFriedrich W. H. Kossebau
NO_CHANGELOG
2021-05-02Minor code refactoringAhmad Samir
Some methods in ConfigLoaderHandler always returned true, change them to return void instead. Also port them to take a QStringView instead of QStringRef, this doesn't require a lot of changes because a QStringView can be constructed from a QStringRef. QXmlStreamAttribute methods like value() and name() return QStringRef in Qt5 and QStringView in Qt6, "fix" the issue by using auto keyword, which works in both cases. QStringView::toInt() isn't efficient in Qt5 so make the build conditional. NO_CHANGELOG
2021-04-28Make the docs state that KConfig::reparseConfiguration() calls sync() if neededAhmad Samir
This matches the method actually does, and makes it clearer that you don't need to do config->sync() followed by config()->reparseConfiguration(), the latter should suffice.
2021-04-26Use new version-controlled enumerator deprecation warning macrosFriedrich W. H. Kossebau
2021-04-18Deprecate KDesktopFile::readDevice()Ahmad Samir
Since the FSDevice .desktop template hasn't been installed for a long time, this method in KDesktopFile hasn't been useful. The whole FSDesktop concept seems to be redundant nowadays, since CDRom and Floppy drives have been replaced by USB sticks. See this KF6 taks for more details: https://phabricator.kde.org/T14295#253759
2021-04-15KConfig: rename kconfigdata.h to kconfigdata_p.hDavid Faure
It's internal, the symbols are not exported, the header is not installed. The _p.h naming makes this more obvious, when grepping for stuff in public API.
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-03-06Optimise string operations a bitAhmad Samir
- Use QString::arg(Args...) instead of .arg().arg() - Use QLatin1String for string comparisons, should be faster - Use QLatin1String::arg() for better readability - Add the comment dfaure suggested in the MR, to explain why it's '2%' then '%1' in a QString().arg().arg() NO_CHANGELOG
2021-02-28Make QByteArray -> char* conversion explicitNicolas Fella
The implicit conversion fails in Qt6
2021-02-24Use KEntryMapIterator/KEntryMapConstIterator typedef's everywhereAhmad Samir
NO_CHANGELOG
2021-02-24Add KEntryMap::constFindEntry() methodAhmad Samir
- This has the same logic as QMap::constFind(); less detaching and now we can use auto keyword when creating iterators and always get a const_iterator even when calling constFindEntry() on a non-const map. - Use QCOMPARE() where appropriate in the unit tests.
2021-02-22Fix formatting in a couple of places after running clang-formatAhmad Samir
NO_CHANGELOG
2021-02-22Run clang-format on all cpp/h filesAhmad Samir
NO_CHANGELOG
2021-02-22Add a trailing comma to last member in enumAhmad Samir
GIT_SILENT
2021-02-06Minor code optimisationsAhmad Samir
- Use a global var for a QString that's used many times - Break up long-all-cap variable names, it makes it harder to read (and I've fixed one typo in one of those ALLCAPS) - Fix some clazy warnings, make global QString objects in unit tests static (so that the compiler doesn't create symbols for them, it doesn't matter in a unit test but KF code acts as a reference sometimes that others copy from, tip from dfaure) - Add TODO note about changing kconfig_compiler to generate C++ code that uses multi-arg QString::arg(QString, QString, QString) instead of QString::arg().arg() - More const; more QString::at() instead of operator[] where appropriate - Use a ternary where it makes the code more readable (and uses less lines :)) NO_CHANGELOG
2021-02-06Preincerment/predecrement operator where the post ones aren't neededAhmad Samir
NO_CHANGELOG
2021-02-06General code cleanupAhmad Samir
Fix some clazy warnings, and some other minor code optimisations. NO_CHANGELOG
2021-02-04SVN_SILENT made messages (.desktop file) - always resolve oursl10n daemon script
In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2021-01-29Replace KF5_VERSION with KF_VERSIONNicolas Fella
Frameworks will be Frameworks 6 at some point and there is no good reason to have the major version in the variable name. Given this is purely internal we can to this now, making it a bit more future-proof GIT_SILENT NO_CHANGELOG
2021-01-27Remove dead cmake codeNicolas Fella
KDEWIN_LIBRARIES is never defined
2021-01-26KConfig: preserve the milliseconds component of QDateTimeDavid Faure
I stored a file's lastModified() into KConfig, to compare with it again on next start, and the loss of milliseconds made the code think the timestamps didn't match, even when they did.
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
2021-01-12Port to QRecursiveMutexNicolas Fella
Using QMutex in recursive mode is deprecated.
2020-12-18Remove ifdefs, we require Qt 5.14 nowAlbert Astals Cid
2020-12-12Properly include QStringListNicolas Fella
Forward declaring it breaks with Qt6
2020-12-03Fix commentAhmad Samir
GIT_SILENT
2020-11-07Add KF6 TODO to use the just-approved (*) XDG_STATE_HOME env var.David Faure
See https://gitlab.freedesktop.org/xdg/xdg-specs/-/merge_requests/4 (*) by me :-)
2020-11-07Fix KConfigGroup::copyTo with KConfigBase::NotifyFabian Vogt
Without this, bNotify was not set on copies, making Notify a noop. CCBUG: 428771
2020-10-23If include is define in .h remove it if it's defined in .cpp too (scripted)Laurent Montel
2020-09-21SVN_SILENT made messages (.desktop file) - always resolve oursl10n daemon script
In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2020-09-14Use reverse order in KDesktopFile::locateLocal to iterate over generic ↵Jeremy Whiting
config paths. Since windows has some generic config paths that are parents of other generic config paths e.g. c:/CraftRoot/build/_/<hash>/build/bin followed by c:/CraftRoot/build/_/<hash>/build/bin/data we need to search for locations from the last location to the first.
2020-08-29API dox: consistently use version number without product name for @deprecatedFriedrich W. H. Kossebau
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-08-24Fix qt warning:Laurent Montel
"QtPrivate::DeprecatedRefClassBehavior::warn|?libKF5ConfigCore.so.5?|?libKF5ConfigCore.so.5? Using QCharRef with an index pointing outside the valid range of a QString. The corresponding behavior is deprecated, and will be changed in a future version of Qt." We try to access to an invalid index.
2020-07-25Update sGlobalFileName when QStandardPaths TestMode is toggledAhmad Samir
When running unit tests, usually QStandardPaths TestMode is enabled so as not to mess up the config files in the home dir of the dev running the unit tests; sGlobalFileName, a global static, was defined only once, which meant that if KSharedConfig::openConfig() is called before the unit test has had a chance to call QStandardPaths::setTestModeEnabled(true), then sGlobalFileName will go on referring to the wrong kdeglobals file (as can be seen in dfaure's debugging of the issue at [1]). Change the code so as to detect QStandardPaths TestMode status and change sGlobalFileName as needed. All unit tests still pass. [1] https://invent.kde.org/frameworks/kio/-/merge_requests/77#note_74124
2020-07-25API dox: state explicitly expected encoding for KConfig key & group namesFriedrich W. H. Kossebau
While the API might have been once designed to allow random byte strings to be used as ids and only converted QString to UTF-8, the current implementation in many places assumes the byte strings passed via const char* or QByteArray are also in of UTF-8 encoding (or at least ASCII7-only). See e.g. KConfigGroup::entryMap() or KConfigGroup::name(). Stating the supported encoding explicitly should avoid any misassumptions.
2020-07-14SVN_SILENT made messages (.desktop file) - always resolve oursl10n daemon script
In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2020-07-13Use KF-standardized Qt logging categoriesFriedrich W. H. Kossebau
See https://community.kde.org/Frameworks/Frameworks_Logging_Policy
2020-07-07Use camelcase include. (scripted)Laurent Montel
2020-06-18SVN_SILENT made messages (.desktop file) - always resolve oursl10n daemon script
In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2020-06-17SVN_SILENT made messages (.desktop file) - always resolve oursl10n daemon script
In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2020-05-31SVN_SILENT made messages (.desktop file) - always resolve oursl10n daemon script
In case of conflict in i18n, keep the version of the branch "ours" To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2020-05-08Adjust name of internally-exported method as suggested in D29347David Faure
2020-05-03GIT_SILENT add commentDavid Faure
2020-05-03KAuthorized: export method to reload restrictionsDavid Faure
Summary: This is useful for unittests. Example: ``` KCONFIGCORE_EXPORT void reloadUrlActionRestrictions(); void someTestMethod() { KConfigGroup cg(KSharedConfig::openConfig(), "KDE URL Restrictions"); cg.writeEntry("rule_count", 1); cg.writeEntry("rule_1", QStringList{"open", {}, {}, {}, "file", "", "", "false"}); cg.sync(); reloadUrlActionRestrictions(); // Some test for code that uses KUrlAuthorized cg.deleteEntry("rule_1"); cg.deleteEntry("rule_count"); cg.sync(); reloadUrlActionRestrictions(); } ``` This is consistent with the fact that other functions used by KUrlAuthorized are defined here and exported internally. Test Plan: Used this in a KIO unittest I'm writing for the future OpenUrlJob Reviewers: aacid, apol, mdawson Reviewed By: aacid Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D29347
2020-04-20API dox: document Q_DECLARE_FLAGS-based flagsFriedrich W. H. Kossebau
Summary: KApiDox & ECMAddQch have been just teached about Q_DECLARE_FLAGS, so the underlying typedefs are no longer skipped by doxygen, but can be documented now, allowing links to be generated for these types e.g. when used as arguments. The "#" prefix to the enum name in the description text of all the Q_DECLARE_FLAGS docs seems needed to properly trigger doxygen autolinks. GIT_SILENT
2020-04-17Add force save behavior to KEntryMapBenjamin Port
Summary: Fix the following bug, if an entry is set on HOME/.config/kdeglobals and on a specific config file like kcmfonts When you hit restore defaults button and apply, value will be not wrote on the specific file, but then the value is the one from kdeglobals This patch ensure we write the key to the specific configuration file on those case with an empty value. KConfig will take default value automatically Test Plan: Added a test to ensure flag is working Tested using some KCM to ensure all is working fine Reviewers: ervin, dfaure, meven, crossi, hchain Reviewed By: ervin, dfaure, meven Subscribers: kde-frameworks-devel Tags: #frameworks Differential Revision: https://phabricator.kde.org/D28128