Age | Commit message (Collapse) | Author |
|
|
|
GIT_SILENT
|
|
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
|
|
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
|
|
std::cout/std::cerr
Summary: Port endl to "\n" as it's qt namespaced
Test Plan: autotest ok
Reviewers: dfaure
Reviewed By: dfaure
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D26860
|
|
|
|
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
|
|
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
|
|
Summary:
It is very unclear at this point what a valid use case for this feature
would possibly be. The old documentation only mentions $(hostname) as
an example, which can be done with $HOSTNAME instead.
Note that $(...) is still supported in Exec lines of desktop files,
this does not require [$e] anyway (and actually works better without it,
otherwise the $ signs need to be doubled to obey kconfig $e escaping rules...).
Test Plan:
ctest passes; various testcases with $(...) in desktop files,
directory files, and config files, no longer execute commands.
Reviewers: mdawson, aacid, broulik, davidedmundson, kossebau, apol, sitter, security-team
Reviewed By: mdawson, davidedmundson
Subscribers: ZaWertun, rikmills, fvogt, ngraham, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D22979
|
|
This enables KConfigWatcher to detect those changes, too.
Differential Revision: https://phabricator.kde.org/D20039
|
|
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
|
|
Summary:
commit 6a18528 introduced escaping of bytes >= 127 to ensure that
KConfig files are valid UTF8.
The simplistic approach with a cutoff results in many escaped bytes
where it is not required. Especially non-western configuration files
would have many escapes.
This commit fixes that by only escaping bytes that are not valid UTF8.
BUG: 403557
FIXED-IN: 5.56
Test Plan: ninja && ninja test
Reviewers: dfaure, arichardson, apol, #frameworks, thiago
Subscribers: rapiteanu, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D19107
|
|
|
|
|
|
|
|
Summary:
UserBase tells me that KDE configuration files are encoded in UTF-8.
https://userbase.kde.org/KDE_System_Administration/Configuration_Files
In practice some *rc files have bytes outside that encoding. In my home directory I found two files that are not valid UTF-8.
I searched with
find ~/.config/ -name '*rc' -exec file {} +
which gives these exceptions:
akonadiconsolerc: Non-ISO extended-ASCII text, with very long lines
kmail2rc: Non-ISO extended-ASCII text, with very long lines
In kmail2rc, the offending fields are
[AttachmentView]/State
[CollectionFolderView]/HeaderState
Both are QByteArray values saved from QHeaderView::saveState().
In the instance I found, the offending bytes were 0x81 and 0x84.
akonadiconsolerc had way more of these values. All seem related to saving widget state and hence probably QByteArrays.
The written QByteArray values look very strange. The bytes in the non-printable ASCII range are written as \xXX but the values above 127 are written literally.
The encoding is done by KConfigIniBackend::stringToPrintable. It does not currently escape bytes that are larger than or equal to 127.
Reviewers: dfaure, arichardson, apol
Reviewed By: apol
Subscribers: apol, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D17651
|
|
|
|
Summary:
Intention is not to create a registry like system, but to replace
KDElibs4Support::KGlobalSettings and to replace other system settingss
-> some app communication in a more generic way.
writeEntry gains an additional flag Notify which if set, will notify
clients of what has actually changed when we sync.
Rationale to put this into KConfig was so that we could have everything
batched and sychronised to the file sync and to get the fine detailed
exposure of what has actually changed which we don't get with a file
watcher.
Default behaviour remains identical without any broadcast messages.
As it is a new dependency it is purely optional and anything referencing
DBus is not in the public API. Our deployment on platforms without DBus
tend to be standalone applications anyway.
Test Plan: Attached unit test
Reviewers: broulik, dfaure
Reviewed By: broulik, dfaure
Subscribers: dfaure, broulik, zzag, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D13034
|
|
Summary: They were not being split properly.
Test Plan: Tests pass, including the new one.
Reviewers: #frameworks, dfaure
Reviewed By: dfaure
Subscribers: dfaure, anthonyfieroni, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D14162
|
|
Summary:
We expand the path of kdeglobals to
~/.qttest/kconfigtests/../kdeglobals
which works during the test, but this cleanup is run both on startup and
after removing ~/.qttest/kconfigtests at which point the expansion
fails.
Test Plan: Ran test, looked at qttest dir. It had cleaned up
Reviewers: broulik
Reviewed By: broulik
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D13032
|
|
|
|
Summary:
The CI has $HOME=/home/jenkins/ with a trailing slash, which leads to
FAIL! : KConfigTest::testPath() Compared values are not the same
Actual (sc3.readPathEntry("homepath", QString())): "/home/jenkins//foo"
Expected (HOMEPATH): "/home/jenkins/foo"
QDir::homePath() is too clean for our purposes, use $HOME on Unix.
Test Plan:
kconfigtest now passes with HOME=/home/dfaure/
|
|
QStringLiteral is latin1, not utf8.
|
|
|
|
The test checks that saving a read-only config file fails. But because root can write into read-only files, the test is failing when running by root. Check for uid when running the test and make it XFAIL if we are running as root.
REVIEW: 128916
|
|
Inside desktop files we want to reach also data, cache and config home
to create files inside these directories.
REVIEW: 127462
CHANGELOG: Add support for get QStandardPaths locations inside desktop files.
|
|
Due to https://codereview.qt-project.org/#/c/106473/, Qt 5.6 keeps null
characters in QByteArray -> QString conversions, which breaks this test as
one QByteArray contains nulls. Instead, convert the QByteArray to const
char * first, so QString stops at the first null.
The actual behaviour of KConfig is unchanged, as internally the conversion
always went through a const char *, which avoids creating QStrings with
null characters.
REVIEW: 126001
|
|
strings-made-from-floats/doubles.
Qt 5.5 writes out "123.567001" for 123.567f. No matter, what we want is the
roundtrip float-string-float to work, and it does.
|
|
|
|
|
|
Previously the warning "Invalid escape sequence "\;"." would appear and
"\;" was replaced with just the backslash as is done for all
unrecognized escape sequences. Keep both characters so that
readXdgListEntry() works with values containing semicolons
REVIEW: 119074
|
|
|
|
This enables the mainConfig optimization in all threads,
and ensures the user warning only happens in the main thread.
The test-mode-enabled logic is only really useful in the main thread,
but it's simpler to just do it in all threads.
REVIEW: 118985
|
|
Visual C++ 2010 throws an internal compiler error trying to compile
kconfigtest, since 5f4dc2973f. I couldn't figure out a non-intrusive
code tweak that would work around the ICE, so I had to skip compiling
this particular initialization code on this particular compiler version,
and skip running the test that relies on it (testEnums).
The dummy=42 entry is so that the config group isn't empty,
which makes testGroupCopyTo and testReparent still run and pass,
so we don't need to skip them.
REVIEW:118852
|
|
The underlying KConfig used QLocale::name() for getting the locale
aware part. But this returns "de_DE" while the desktop files store
"de".
In addition it constructs a QLocale object instead of using the
system locale. This has the advantage that the usage of
QLocale::setDafault() gets honored by KConfig.
REVIEW: 118564
|
|
Simplify KConfigGroup::readEntry/writeEntry.
KConfigGroup::readCheck/writeCheck caused some compilers to complain
since they were private functions that were being reimplemented outside
the class definition.
Updated KCONFIGGROUP_DECLARE_ENUM_QOBJECT/
deprecated global functions created in KDE4 times.
|
|
Open a new QFile for reading after calling close() on the temp file
|
|
|
|
This test keeps deleting the whole ~/.qttest directory. By moving all
data into a subdirectory it is now possible to run multiple tests that
use kconfig in parallel.
REVIEW: 115875
|
|
Use git blame -w 867e7a5 to show authorship as it was before this commit.
|
|
|