Age | Commit message (Collapse) | Author |
|
|
|
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
|
|
so that the test doesn't fail after `rm -rf ~/.qttest`
|
|
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
|
|
This enables KConfigWatcher to detect those changes, too.
Differential Revision: https://phabricator.kde.org/D20039
|
|
Summary:
When using kconfig_compiler generated sources in projects where the used
file extensions for C++ files are not ".h" and/or ".cpp", the include for
the generated header looks a bit alien to the project, as well as the
generated source file if one looks closer at it.
This code adds new optional flags HeaderExtension & SourceExtension which
can be used to control the file extensions used for the generated files.
Test Plan:
All unit tests and the new test_fileextensions pass, existing projects using
kcfg without & with the new flags build fine.
Reviewers: #frameworks, apol
Reviewed By: apol
Subscribers: apol, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D19565
|
|
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:
of the generated class that has a pointer and raw copy would be bad.
Those generated classes are internal and nobody would probably have this, but being safe never hurts
Reviewers: vkrause
Reviewed By: vkrause
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D18136
|
|
|
|
|
|
|
|
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:
Since "Use override" (3985f2a0) kconfig_compiler.cpp
generates usrSave with override instead of Q_DECL_OVERRIDE. This causes
the KConfigCompiler_Test to fail [1], as the reference file of the test
was not updated.
[1]: https://build.kde.org/job/Frameworks%20kconfig%20kf5-qt5%20SUSEQt5.10/32/
Reviewers: #frameworks, mlaurent
Reviewed By: mlaurent
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D12892
|
|
|
|
|
|
Summary:
The SortOrder key is deprecated by the Desktop Entry Specification:
https://standards.freedesktop.org/desktop-entry-spec/latest/apc.html
Reviewers: dfaure, #frameworks
Reviewed By: dfaure
Subscribers: #frameworks
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D9224
|
|
Summary:
KDesktopFile::sortOrder() returns the value of SortOrder key
as a string whithout parsing it as a list.
But according to Desktop Entry Specification
https://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
it's type is "string(s)", i.e. the same type as the type of
Actions and MimeType keys, and thus it should be read the same way.
Reviewers: #frameworks, dfaure
Reviewed By: dfaure
Subscribers: dfaure, #frameworks
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D8689
|
|
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.
|
|
|
|
Summary: We will be using an external version of it in practice
Reviewers: #frameworks, davidedmundson
Reviewed By: davidedmundson
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D8457
|
|
As per the Desktop Entry spec, we strip trailing whitespace from the key
when we split an entry into a key/value pair at the '='. Now we also
strip leading whitespace from the resulting value like we should.
CCBUG:310674
Differential Revision: https://phabricator.kde.org/D7169
|
|
Summary:
This is particularly useful for cross-compilation, where we only need the
kconfig_compiler on the host system.
Reviewers: #frameworks, apol, aacid
Reviewed By: aacid
Subscribers: aacid
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D6994
|
|
1) some of them can't run in parallel
2) kconfigskeletontest failed due to KSharedConfig being used under the
scene (for a year now), and there's probably some QPA or widget style
holding a ref (here, not in the CI). Indirectly, simply setting
QStandardPaths::setTestModeEnabled(true) fixes this since KSharedConfig
will then not share the instance with the non-test-mode-enabled instance.
|
|
This way, different newline endings in OSes are handled as \n when
reading, and thus fixing the comparison on non-\n OSes.
|
|
Use the QProcess::start() variant with explicit (empty, in this case)
arguments, so the program string is not parsed as shell command, thus
preserving paths with spaces as such.
|
|
The "dir" and "path" variables were obviously swapped here by mistake.
This resulted in the relativePath always being empty, and made the
function return "~/.local/share/" (or "~/.config/") instead of the
correct path.
BUG: 345100
FIXED-IN: 5.34.0
Differential Revision: https://phabricator.kde.org/D5502
|
|
It's not needed, this is purely a test for the standalone KEntryMap class.
|
|
It is internal.
|
|
Due to eab822e206207c51d47f0f0da109caacfbee4e2f, KEntryMap is now an
exported type. As such it is no longer needed to link in kconfigdata.cpp
into this test.
|
|
|
|
|
|
+ simplify using recursive-remove and testmode.
|
|
|
|
Summary:
In case a kcfg with arg="true" was used and singleton the static
instance method only accepted a QString config name. This made it
impossible to combine a singleton config with an already existing and
open KSharedConfig::Ptr.
With this change an overloaded instance method is added which takes a
KSharedConfig::Ptr as argument. The private ctor, though, only takes a
KSharedConfig::Ptr and the instance method taking a QString argument
uses KSharedConfig::openConfig on the config file name.
The change is source-incompatible in the following situation:
* kcfgfile arg="true"
* Singleton = true
* Inherits is specified
In this situation the previous revision created an instance method with
a QString argument and passed that to the parent constructor. This is
not in accordance with the documentation. Any user of this behavior was
relying on a bug. With this change now the call to the parent
constructor carries a KSharedConfigPtr.
Test Plan:
kconfigcompiler tests still pass and a config with singleton
and arg="true" generates the code as I need it
Reviewers: #frameworks, dfaure, mdawson
Differential Revision: https://phabricator.kde.org/D3690
|
|
REVIEW: 129745
|
|
Reviewers: #frameworks, davidedmundson
Reviewed By: davidedmundson
Differential Revision: https://phabricator.kde.org/D3702
|
|
This reverts commit cd4e6504dfbdface00037625f0cedda511e6d839.
As suggested by Martin on release-team@kde.org, given that it breaks SC.
|
|
This reverts commit 71f16741a0288d8587876dcc7dbb33ba8f00546a.
|
|
Sorry.
|
|
Summary:
In case a kcfg with arg="true" was used and singleton the static
instance method only accepted a QString config name. This made it
impossible to combine a singleton config with an already existing and
open KSharedConfig::Ptr.
With this change an overloaded instance method is added which takes a
KSharedConfig::Ptr as argument. The private ctor, though, only takes a
KSharedConfig::Ptr and the instance method taking a QString argument
uses KSharedConfig::openConfig on the config file name.
This provides full API compatibility and at the same time allows to use
KSharedConfig in addition to the arg name based variant.
Test Plan:
kconfigcompiler tests still pass and a config with singleton
and arg="true" generates the code as I need it
Reviewers: #frameworks
Differential Revision: https://phabricator.kde.org/D3386
|
|
REVIEW: 129382
|
|
Summary:
Instead of having an odd fake of it. Will help some required
refactorings and already showed some issues, fixed by this patch,
namely:
- don't use string(regex replace) to extract a string from another
string. in case it doesn't match it will offer the whole content which
is never what we want.
- messages(ERROR), the correct parameter is FATAL_ERROR, cmake
understands "ERROR" as mere output string
- turn the macro into a function, otherwise 2 calls in the same
subdirectory are dangerous.
CCBUG: 371562
Test Plan: tests still pass, projects that use the macro still build
Reviewers: #frameworks, dfaure
Reviewed By: dfaure
Subscribers: dfaure
Differential Revision: https://phabricator.kde.org/D3178
|
|
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
|