<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kconfig.git/autotests, branch v5.92.0</title>
<subtitle>hurd kconfig.git</subtitle>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/'/>
<entry>
<title>Remove broken Python bindings generation</title>
<updated>2022-02-25T23:52:26+00:00</updated>
<author>
<name>Friedrich W. H. Kossebau</name>
<email>kossebau@kde.org</email>
</author>
<published>2022-02-16T16:16:37+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=4a1710762b0a53d6a35e6d0cb630b9037a853c63'/>
<id>4a1710762b0a53d6a35e6d0cb630b9037a853c63</id>
<content type='text'>
pyqt broke sip4 compatibility in 5.15.6, and there is no more maintainer
of the KF Python bindings to fix things.

Future support might need different code, so no advantage in keeping the
old code around.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
pyqt broke sip4 compatibility in 5.15.6, and there is no more maintainer
of the KF Python bindings to fix things.

Future support might need different code, so no advantage in keeping the
old code around.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add KWindowStateSaver</title>
<updated>2022-02-24T16:43:05+00:00</updated>
<author>
<name>Volker Krause</name>
<email>vkrause@kde.org</email>
</author>
<published>2022-02-14T17:12:24+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=f446af2aa592997f6bc4aa3b5559cf477f9259f8'/>
<id>f446af2aa592997f6bc4aa3b5559cf477f9259f8</id>
<content type='text'>
This is basically the C++ counter-part to
https://invent.kde.org/frameworks/kconfig/-/merge_requests/94
and allows to easily retrofit window size persistence on existing windows/
dialogs, replacing e.g. code like
https://invent.kde.org/pim/pimcommon/-/blob/master/src/pimcommon/widgets/kpimprintpreviewdialog.cpp.

This is a bit more complicated than one might expect, as KWindowConfig
works with QWindows, but that's something freshly created QWidget windows/
dialogs don't have yet. Additionally, we are in a library here that doesn't
depend on Qt::Widgets. To overcome this we move the widget-dependent code
(basically just a call to QWidget::windowHandle()) to inline template code
(and thus into the consumer), use std::function's type erasure to pass it
into the library code, and an event filter on the widget to wait for the
QWindow to become available.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is basically the C++ counter-part to
https://invent.kde.org/frameworks/kconfig/-/merge_requests/94
and allows to easily retrofit window size persistence on existing windows/
dialogs, replacing e.g. code like
https://invent.kde.org/pim/pimcommon/-/blob/master/src/pimcommon/widgets/kpimprintpreviewdialog.cpp.

This is a bit more complicated than one might expect, as KWindowConfig
works with QWindows, but that's something freshly created QWidget windows/
dialogs don't have yet. Additionally, we are in a library here that doesn't
depend on Qt::Widgets. To overcome this we move the widget-dependent code
(basically just a call to QWidget::windowHandle()) to inline template code
(and thus into the consumer), use std::function's type erasure to pass it
into the library code, and an event filter on the widget to wait for the
QWindow to become available.
</pre>
</div>
</content>
</entry>
<entry>
<title>KConfigCompiler: support ItemAccessors=true with signalling items</title>
<updated>2022-02-18T22:24:41+00:00</updated>
<author>
<name>Friedrich W. H. Kossebau</name>
<email>kossebau@kde.org</email>
</author>
<published>2022-02-09T12:55:14+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=3583e0d2ed951365777122ae4b2ab4641125f756'/>
<id>3583e0d2ed951365777122ae4b2ab4641125f756</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix build on Windows</title>
<updated>2022-02-04T12:03:22+00:00</updated>
<author>
<name>David Redondo</name>
<email>kde@david-redondo.de</email>
</author>
<published>2022-02-04T12:03:22+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=978d69628b1d9aec95ef97aedacd2ccd28613b7b'/>
<id>978d69628b1d9aec95ef97aedacd2ccd28613b7b</id>
<content type='text'>
Since we are not building the library but the source files we
don't want the macro to expand to __declspec(dllimport).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since we are not building the library but the source files we
don't want the macro to expand to __declspec(dllimport).
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't use saveShortcut for setting up tests</title>
<updated>2022-02-01T13:06:35+00:00</updated>
<author>
<name>David Redondo</name>
<email>kde@david-redondo.de</email>
</author>
<published>2022-01-28T09:58:14+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=4d31ec78f80d6add09dc80404470cfae7f2b13c7'/>
<id>4d31ec78f80d6add09dc80404470cfae7f2b13c7</id>
<content type='text'>
It will trigger side effects like triggering the dbus signal
which depending on the timing may be delivered only in the next
test case causing an unexpected change signal emission.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It will trigger side effects like triggering the dbus signal
which depending on the timing may be delivered only in the next
test case causing an unexpected change signal emission.
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce StandardShortcutWatcher to watch for runtime changes</title>
<updated>2022-01-24T13:23:55+00:00</updated>
<author>
<name>David Redondo</name>
<email>kde@david-redondo.de</email>
</author>
<published>2022-01-13T09:04:13+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=820dc0a553e50cc4560733d43fca2674a61d43b3'/>
<id>820dc0a553e50cc4560733d43fca2674a61d43b3</id>
<content type='text'>
Currently an application needs to be restarted before it can see
any changes made to the standard shortcut configuration. To notify
about changes a new class is introduced that looks for those
changes using KConfigWatcher and also updates the global map.
CCBUG:426656
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently an application needs to be restarted before it can see
any changes made to the standard shortcut configuration. To notify
about changes a new class is introduced that looks for those
changes using KConfigWatcher and also updates the global map.
CCBUG:426656
</pre>
</div>
</content>
</entry>
<entry>
<title>Make singleton teardown work with Qt6 as well</title>
<updated>2022-01-22T11:35:06+00:00</updated>
<author>
<name>Volker Krause</name>
<email>vkrause@kde.org</email>
</author>
<published>2022-01-21T15:01:35+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=41d37407e80f5ccd110cf303c20a181f95fa7e73'/>
<id>41d37407e80f5ccd110cf303c20a181f95fa7e73</id>
<content type='text'>
In Qt6 the Q_GLOBAL_STATIC will already report to be null while it is in
the process of being deleted, we therefore cannot access it anymore from
destruction code path as we did before.

This problem is hit for example by the Breeze style, making all 6 based
widgets applications crash on exit without this.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In Qt6 the Q_GLOBAL_STATIC will already report to be null while it is in
the process of being deleted, we therefore cannot access it anymore from
destruction code path as we did before.

This problem is hit for example by the Breeze style, making all 6 based
widgets applications crash on exit without this.
</pre>
</div>
</content>
</entry>
<entry>
<title>Exclude deleted groups from groupList()</title>
<updated>2022-01-02T08:31:39+00:00</updated>
<author>
<name>Igor Kushnir</name>
<email>igorkuo@gmail.com</email>
</author>
<published>2021-12-24T11:22:35+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=295ea7632ac7cc2cc3eda79b7af8614d5ff95a41'/>
<id>295ea7632ac7cc2cc3eda79b7af8614d5ff95a41</id>
<content type='text'>
This commit is an alternative to the earlier incorrect and reverted
b3dc879e8b108c26c929bfbe551bcdf77f140e94. That commit contained several
mistakes and an algorithmic complexity increase:
1) the added conditions were inverted: should have been
   `hasNonDeletedEntries` (without `!`);
2) KConfigPrivate::groupList() passed group instead of key.mGroup to
   hasNonDeletedEntries();
3) The complexity of hasNonDeletedEntries() is O(entryMap.size()). Calls
   to this function were added into loops that iterated entryMap.size()
   times. So the overall complexity of groupList() increased from linear
   to quadratic.

This fix collects `mGroup`s of non-deleted key entries instead of
`mGroup`s of group entries. The number of key entries can be much
greater than the number of group entries, so this fix hurts performance.
But at least the algorithmic complexity of groupList() stays linear.
Future commits can optimize the loops and make them almost as fast or
even faster than before this fix.

The `!key.mKey.isNull() &amp;&amp; !entryMapIt-&gt;bDeleted` checks added in this
commit are consistent with the check in
KConfigPrivate::hasNonDeletedEntries(). KConfig::hasGroupImpl() forwards
its argument to hasNonDeletedEntries() with the following comment:
// No need to look for the actual group entry anymore, or for subgroups:
// a group exists if it contains any non-deleted entry.

BUG: 384039
FIXED-IN: 5.90
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit is an alternative to the earlier incorrect and reverted
b3dc879e8b108c26c929bfbe551bcdf77f140e94. That commit contained several
mistakes and an algorithmic complexity increase:
1) the added conditions were inverted: should have been
   `hasNonDeletedEntries` (without `!`);
2) KConfigPrivate::groupList() passed group instead of key.mGroup to
   hasNonDeletedEntries();
3) The complexity of hasNonDeletedEntries() is O(entryMap.size()). Calls
   to this function were added into loops that iterated entryMap.size()
   times. So the overall complexity of groupList() increased from linear
   to quadratic.

This fix collects `mGroup`s of non-deleted key entries instead of
`mGroup`s of group entries. The number of key entries can be much
greater than the number of group entries, so this fix hurts performance.
But at least the algorithmic complexity of groupList() stays linear.
Future commits can optimize the loops and make them almost as fast or
even faster than before this fix.

The `!key.mKey.isNull() &amp;&amp; !entryMapIt-&gt;bDeleted` checks added in this
commit are consistent with the check in
KConfigPrivate::hasNonDeletedEntries(). KConfig::hasGroupImpl() forwards
its argument to hasNonDeletedEntries() with the following comment:
// No need to look for the actual group entry anymore, or for subgroups:
// a group exists if it contains any non-deleted entry.

BUG: 384039
FIXED-IN: 5.90
</pre>
</div>
</content>
</entry>
<entry>
<title>WIP: Change the build system to enable building with Qt 6</title>
<updated>2021-12-16T18:05:02+00:00</updated>
<author>
<name>Ahmad Samir</name>
<email>a.samirh78@gmail.com</email>
</author>
<published>2021-12-03T20:33:28+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=10c4a4b4bdfdd468e52ae0fbbf84c77b64df2f8f'/>
<id>10c4a4b4bdfdd468e52ae0fbbf84c77b64df2f8f</id>
<content type='text'>
This was built with:
-DQT_MAJOR_VERSION=6 \
-DEXCLUDE_DEPRECATED_BEFORE_AND_AT=5.90.0 \
-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055a00

Move the include(KDEInstallDirs) call before the first find_package(Qt*,
the former is what auto-detects the Qt version, and defaults to 5. This is
needed to be able to build against Qt5 by default.

All unit tests still pass.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was built with:
-DQT_MAJOR_VERSION=6 \
-DEXCLUDE_DEPRECATED_BEFORE_AND_AT=5.90.0 \
-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055a00

Move the include(KDEInstallDirs) call before the first find_package(Qt*,
the former is what auto-detects the Qt version, and defaults to 5. This is
needed to be able to build against Qt5 by default.

All unit tests still pass.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix KDesktopFileTest::testIsAuthorizedDesktopFile running on gitlab CI</title>
<updated>2021-12-03T22:02:16+00:00</updated>
<author>
<name>Albert Astals Cid</name>
<email>aacid@kde.org</email>
</author>
<published>2021-11-29T13:38:17+00:00</published>
<link rel='alternate' type='text/html' href='https://netuse.dynamicmalloc.com/cgit/kconfig.git/commit/?id=dcc6e03840d0c80068cd5e838c62f60a83abcc9d'/>
<id>dcc6e03840d0c80068cd5e838c62f60a83abcc9d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
