<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/src/tests, branch pixelated-scaling-option</title>
<subtitle>Patched KDE Dolphin with Pixel Scaling</subtitle>
<id>https://fiftyfourth.xyz/git/dolphin/atom/src/tests?h=pixelated-scaling-option</id>
<link rel='self' href='https://fiftyfourth.xyz/git/dolphin/atom/src/tests?h=pixelated-scaling-option'/>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/'/>
<updated>2026-05-30T08:52:32Z</updated>
<entry>
<title>placespaneltest: implement 8 unittests</title>
<updated>2026-05-30T08:52:32Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-30T08:52:32Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=d56feb8151871065505c83eeaa8bd3d53750af10'/>
<id>urn:sha1:d56feb8151871065505c83eeaa8bd3d53750af10</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dolphinmainwindowtest: ensure consistent starting state for places panel tests</title>
<updated>2026-05-28T11:16:06Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-25T11:30:09Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=980d4f71a978e7e437bbe9d0100c095d84a0b4fa'/>
<id>urn:sha1:980d4f71a978e7e437bbe9d0100c095d84a0b4fa</id>
<content type='text'>
In a fresh test environment there is no saved session, so the places panel may
not be visible. Explicitly show it before testing.

Additionally, focus-related assertions require the window to be the active
window — setFocus() on dock widget contents has no effect on an inactive window.
Replace the weak QTRY_VERIFY_WITH_TIMEOUT(activeWindow() != nullptr, 100) with
requestActivate() + qWaitForWindowActive() to enforce this precondition.
</content>
</entry>
<entry>
<title>Add REUSE/SPDX compliance headers to all files</title>
<updated>2026-05-28T08:59:51Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-21T17:48:41Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=e343cbdfa52f5ff9b754e863830b08416e321ffd'/>
<id>urn:sha1:e343cbdfa52f5ff9b754e863830b08416e321ffd</id>
<content type='text'>
Dolphin was missing copyright and license information on ~750 files,
which would cause the KDE CI job `gitlab-templates/reuse-lint.yml` to fail.
This commit makes the project fully compliant with REUSE Specification 3.3.

REUSE.toml is used for file categories that cannot carry inline comments
or are managed externally:
- po/**: covered with precedence=aggregate so the bulk declaration
  combines with individual translators' existing inline headers
- **/*.kcfg, **/*.kcfgc: KConfigXT schema files, no comment syntax
- doc/*.png: documentation screenshots
- src/icons/*.png: application icons (LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL)
- src/**/*.{qrc,rc,desktop,xml,json,knsrc,upd,in}: resource and
  metadata files without usable comment syntax
- .gitignore, .git-blame-ignore-revs: infrastructure, CC0-1.0
- logo.png: application artwork (LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL)

Inline SPDX headers are added to all source files that support comments
(C++, QML, CMake, shell scripts, Python). A small number of remaining
binary or single-purpose files retain individual .license sidecars.

License inference heuristic (applied per file, in order):
1. Existing inline SPDX-License-Identifier — reused as-is
2. Most common license among sibling files in the same directory
   that already carry SPDX info, excluding infrastructure filenames
   (.gitignore etc.) and requiring at least two qualifying neighbors
   to prevent a single CC0 CI config from pulling source files along
3. Default: GPL-2.0-or-later

Copyright years and authors are sourced from `git log --follow` per
file. Automation accounts (l10n daemon scripty@kde.org, Weblate) are
excluded from author lists. If more than 5 authors are found only a
generic KDE Contributors was used.
</content>
</entry>
<entry>
<title>kitemlistcontrollertest: fix memory leaks</title>
<updated>2026-05-28T08:59:00Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-23T13:29:20Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=3efeaaffd4cb13168e9327ec146f0a40ff9d75af'/>
<id>urn:sha1:3efeaaffd4cb13168e9327ec146f0a40ff9d75af</id>
<content type='text'>
</content>
</entry>
<entry>
<title>kitemlistcontrollertest: add drag-move hover signal tests</title>
<updated>2026-05-28T08:55:39Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-27T17:22:30Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=e18a5136e557d91ab46368228e3de698a98aa009'/>
<id>urn:sha1:e18a5136e557d91ab46368228e3de698a98aa009</id>
<content type='text'>
Two tests via new simulateDragMove/simulateDragLeave helpers:
- testDragMoveHoverIdempotency: repeated drag-move over the same item
  must not emit itemHovered more than once; moving to a different item
  must emit itemUnhovered/itemHovered exactly once each.
- testDragLeaveHoverCleanup: dragLeaveEvent must emit itemUnhovered for
  the currently hovered item and nothing when no item is hovered.
</content>
</entry>
<entry>
<title>tests: create smoke test for dolphin</title>
<updated>2026-05-28T08:12:53Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-23T13:30:30Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=1330df1053a9ee9927dc27e1f333a67965dbf02e'/>
<id>urn:sha1:1330df1053a9ee9927dc27e1f333a67965dbf02e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tests: add ctest lint rule forbidding bare QTest::qWait()</title>
<updated>2026-05-25T11:05:50Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-23T11:28:32Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=a33d65a418bf5bdb13d83281ce665d630a95668e'/>
<id>urn:sha1:a33d65a418bf5bdb13d83281ce665d630a95668e</id>
<content type='text'>
Bare qWait(N) calls in tests are easy to reintroduce inadvertently.
Add a ctest check that greps test sources for qWait() and fails if
any call is found without an // UNAVOIDABLE: comment on the same line.

The error message explains why the pattern is forbidden, lists the
signal-based alternatives, and shows how to suppress the check for
the rare cases where no signal or pollable condition exists.
</content>
</entry>
<entry>
<title>tests: replace QTest::qWait(N) with signal-based waits</title>
<updated>2026-05-25T11:05:50Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-23T11:27:36Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=22d65e047ac75fc3527ddac2401e90a2805a6f04'/>
<id>urn:sha1:22d65e047ac75fc3527ddac2401e90a2805a6f04</id>
<content type='text'>
Fixed-time sleeps are a source of intermittent failures on slow CI
machines — if the delay is too short, the test races ahead of the
code under test.

Replacements made:
- dolphinmainwindowtest: qWait() calls replaced with QTRY_COMPARE,
  QTRY_VERIFY, qWaitFor lambdas and processEvents() where animations
  are disabled; one genuinely unavoidable timer wait marked
  // UNAVOIDABLE:
- kitemlistcontrollerexpandtest: qWaitFor(..., 100ms) / qWaitFor(...,
  300ms) replaced with spy-&gt;wait() loops that block until all
  expected directoryLoadingCompleted signals have arrived
- kitemlistkeyboardsearchmanagertest: timer-driven wait marked
  // UNAVOIDABLE: (must wait for keyboard search timeout to expire)

Add testhelpers.h providing TestHelpers::disableAnimations(), which
eliminates the need for delays that previously waited for Qt UI
animations to settle.
</content>
</entry>
<entry>
<title>viewproperties: fall back to .directory when xattr space is exhausted</title>
<updated>2026-05-24T15:27:40Z</updated>
<author>
<name>Sebastian Englbrecht</name>
<email>sebastian.englbrecht@tum.de</email>
</author>
<published>2026-05-23T11:27:54Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=1a813b8834f06c4b3a03fb5519cd72c713fd4cf7'/>
<id>urn:sha1:1a813b8834f06c4b3a03fb5519cd72c713fd4cf7</id>
<content type='text'>
When saving view properties to extended attributes failed with NoSpace,
the code cleared the xattr entry and returned without writing anything
to disk. The .directory fallback file was never created, silently
losing the user's view settings.

Fix by copying the current settings into a file-backed KConfig pointing
to .directory whenever the xattr write returns NoSpace. The copy uses
KConfigGroup::copyTo per group (not KConfig::copyFrom, which replaces
the entire entry map) so that unrelated groups already present in
.directory — such as a [Desktop Entry] group carrying a custom folder
icon — are left untouched by sync().
</content>
</entry>
<entry>
<title>viewproperties: respect saved properties for special folders with global view props enabled</title>
<updated>2026-05-23T10:25:19Z</updated>
<author>
<name>Pan Zhang</name>
<email>zhangpan@kylinos.cn</email>
</author>
<published>2026-05-23T10:25:19Z</published>
<link rel='alternate' type='text/html' href='https://fiftyfourth.xyz/git/dolphin/commit/?id=2e665e1b513b3f7c082bedc8faaf47bee8008c73'/>
<id>urn:sha1:2e665e1b513b3f7c082bedc8faaf47bee8008c73</id>
<content type='text'>
When "Use common display style for all folders" is enabled, the useDefaultSettings condition was always true because useGlobalViewProps was the first term in the OR chain. This caused special folders controlled by useSearchView, useTrashView, and useRecentDocumentsView to reset to their default view on every load, overriding any user customization.

Restrict the unconditional default-apply to non-special folders only. For special folders, the existing timestamp-based check handles the logic correctly, and the fallback in the else branch still applies defaults when no saved properties exist (first visit).

BUG: 520089
</content>
</entry>
</feed>
