┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
3 daysGIT_SILENT made messages (after extraction)l10n daemon script
3 daysGIT_SILENT Sync po/docbooks with svnl10n daemon script
4 daysSVN_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"
4 dayskfileitemmodel: prefer prefix over postfix increment for iteratorSebastian Englbrecht
Postfix increment creates an unnecessary temporary copy.
4 daysactionwithwidget: use QPointer::data() for explicit pointer extractionSebastian Englbrecht
Returning a QPointer<T> where T* is expected relies on an implicit conversion that cppcheck cannot model correctly. Use .data() to make the intent explicit.
4 daysdolphinmainwindow,dolphinview: clarify QPointer semantics around exec()Sebastian Englbrecht
exec() runs a nested event loop that can destroy the parent widget, so the post-exec null-check on the QPointer is intentional, not redundant. dolphinmainwindow: replace `if (contextMenu) deleteLater()` with `delete contextMenu`. QPointer returns nullptr for a destroyed object, making delete a safe no-op. dolphinview: capture the menu as a raw pointer for pre-exec setup; reserve the QPointer for the post-exec liveness check and deletion.
5 daysGIT_SILENT Sync po/docbooks with svnl10n daemon script
5 daysdolphinview: Unselect navigator when click on backgroundFlorian RICHER
6 daysGIT_SILENT Sync po/docbooks with svnl10n daemon script
6 daysplacespaneltest: implement 8 unittestsSebastian Englbrecht
7 daysKItemListWidget: Add pressedChangedAkseli Lahtinen
When items were pressed, we never called the updateAdditionalInfoTextColor, which caused some of the text colors get out of sync. This was especially noticeable in details view when using an accent color that makes the font color change to preserve readability. BUG: 508329
7 daysGIT_SILENT Update Appstream for new releaseHeiko Becker
(cherry picked from commit ecdffe5fff8439e91249067b0a80190a7fa158ce)
8 daysGIT_SILENT Sync po/docbooks with svnl10n daemon script
8 daysinformationpanelcontent: Remove video preview play arrowRyan Nosurname
This commit removes the "Play" arrow on top of the video preview. There is no change to behavior. Motivation: There is already the play button and seekbar directly below the thumbnail, and when mousing over it you get the pointing hand. Surely this gives the user enough clues that the video can be previewed in-place.
8 daysdolphinmainwindowtest: ensure consistent starting state for places panel testsSebastian Englbrecht
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.
8 daysEnable REUSE lint CI jobSebastian Englbrecht
8 daysAdd REUSE/SPDX compliance headers to all filesSebastian Englbrecht
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 [email protected], Weblate) are excluded from author lists. If more than 5 authors are found only a generic KDE Contributors was used.
8 daysdolphinmainwindow,kitemlistview: fix unowned object allocationsSebastian Englbrecht
Parent QMenu to the main window so it is owned and deleted with it. Register KItemListContainerAccessible in Qt's accessibility cache so Qt takes ownership and deletes it with the container widget.
8 daysdolphinview,mountpointobserver: kill in-flight KIO jobs in destructorSebastian Englbrecht
Both objects start KIO jobs that can outlive the object if it is destroyed before the job finishes. Store the pending job and call kill(Quietly) in the destructor to avoid leaks and dangling callbacks.
8 daysdolphinplacesmodelsingleton,trash: destroy owned objects before KIO cache ↵Sebastian Englbrecht
teardown Both singletons start KIO list jobs on construction. Register qAddPostRoutine to destroy the owned objects during QCoreApplication teardown, while KIO's KCoreDirListerCache can still cancel in-flight jobs.
8 daysterminalpanel: delete konsolePart in destructor, use unique_ptr for ↵Sebastian Englbrecht
KXMLGUIBuilder Deleting konsolePart before QObject child cleanup ensures m_konsolePartClientBuilder is still alive when the lambda connected to m_terminalWidget::destroyed fires and calls factory->removeClient().
8 dayskitemlistcontrollertest: fix memory leaksSebastian Englbrecht
8 daysKItemListController: remove redundant conditions in drag/release handlersSebastian Englbrecht
newHoveredWidget is already guarded non-null by the enclosing if-block; !isAboveSelectionToggle is always true after the preceding early return. Remove both dead sub-expressions.
8 daysDolphinView: store new zoom level in a variable after setZoomLevel()Sebastian Englbrecht
zoomLevel() called twice returns the same value to static analysis. Found with cppcheck
8 daysbarsecondrowflowlayout: avoid virtual call in destructorSebastian Englbrecht
cppcheck warns about calling virtual functions during destruction because dynamic dispatch is no longer reliable at that point. Replace takeAt(0) with direct access to itemList.takeFirst() to drain the list without going through the virtual interface.
8 dayskitemlistviewaccessible: avoid virtual call in constructorSebastian Englbrecht
cppcheck warns about calling virtual functions during construction because dynamic dispatch is not yet fully active at that point. Replace childCount() with its concrete implementation view()->model()->count() directly.
8 dayskitemlistcontrollertest: add drag-move hover signal testsSebastian Englbrecht
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.
8 daystests: create smoke test for dolphinSebastian Englbrecht
9 daysGIT_SILENT Sync po/docbooks with svnl10n daemon script
10 daysDolphinRecentTabsMenu: remove no-op null assignment after deleteSebastian Englbrecht
action is a by-value parameter; action = nullptr only affects the local copy. Remove the dead line. Found with cppcheck
10 daysKItemListWidgetCreator, KFileItemModelFilter: delete copy operationsSebastian Englbrecht
Both classes own a raw pointer freed in the destructor. The implicit shallow copy would cause a double-free. Mark copy constructor and operator= as = delete. Found with cppcheck
10 daysMediaWidget, BottomBarContentsContainer: initialize members in constructorSebastian Englbrecht
m_autoPlay is read in setUrl() before setAutoPlay() is called; m_contents is compared before resetContents() sets it. Both are undefined behavior. Add initializers to the member-initialization lists. Found with cppcheck
11 daysci: remove --repeat until-pass:3Sebastian Englbrecht
Tests are now deterministic — flaky qWait(N) calls have been replaced with signal-based waits and a lint rule prevents reintroduction. The retry workaround is no longer needed.
11 daystests: add ctest lint rule forbidding bare QTest::qWait()Sebastian Englbrecht
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.
11 daystests: replace QTest::qWait(N) with signal-based waitsSebastian Englbrecht
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->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.
11 daysci: enable json validationSebastian Englbrecht
12 daysviewproperties: fall back to .directory when xattr space is exhaustedSebastian Englbrecht
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().
13 daysviewproperties: respect saved properties for special folders with global ↵Pan Zhang
view props enabled 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
13 daystests: kfileitemmodeltest avoid scheme-less urlMéven Car
2026-05-22GIT_SILENT Sync po/docbooks with svnl10n daemon script
2026-05-20GIT_SILENT Sync po/docbooks with svnl10n daemon script
2026-05-18GIT_SILENT Sync po/docbooks with svnl10n daemon script
2026-05-14GIT_SILENT Sync po/docbooks with svnl10n daemon script
2026-05-13kfileitemmodelrolesupdater: fix directory item count for large foldersPan Zhang
Dolphin reported an incorrect item count in the "Size" column for directories containing 200 or more entries. Use KIO::ListJob::ListFlag::ExcludeDotAndDotDot and ExcludeHidden to filter entries at the source. Use a local counter (totalCount) captured via std::shared_ptr in the lambda to ensure each scan job starts from zero and maintains its own state. Add a fast path using list.size() when showDirectoriesOnly is false to improve performance. BUG: 509150
2026-05-11dolphintabpage: drop swapActiveView in RightView close pathPan Zhang
The RightView case in setSplitViewEnabled(false) called swapActiveView() when the secondary (right) pane was active. After the swap, m_primaryViewContainer pointed to the right pane—the same object already stored in view—so the subsequent m_primaryViewContainer->setActive(true) activated the pane about to be removed, leaving the left pane orphaned as secondary. Since the left pane is always the surviving view and already the primary, no pointer swap is needed. Remove the conditional swap so that closing the right pane always leaves m_primaryViewContainer pointing at the left pane, regardless of which pane was active. BUG: 520002
2026-05-11GIT_SILENT Sync po/docbooks with svnl10n daemon script
2026-05-10dolphintabbar: remove tabClosedRequested handling for middle clickMéven Car
Qt 6.11 added its own middle click tab closing.
2026-05-10Revert "zoomwidgetactions: allow the zoom actions to appear in the commandbar"Méven Car
This reverts commit 980b09b92ae3061006526293c1e64bc399cdc07b
2026-05-10dolphinmainwindow: defer menuBar visibility apply until after UI has loadedOleksandr Bondar
The KXmlGuiWindow base class restores menuBar visibility directly via applyMainWindowSettings(), bypassing the ShowMenubar action's checked state. As a result, the action always reported checked=true on startup regardless of the saved setting. Sync the action's checked state from the actual menuBar visibility after setupGUI(), then apply it back via singleShot(0) to ensure all QueuedConnection slots have fired first Amends c3ef613f29dd256e1b6065f1c744241b6f69788a
2026-05-08KItemListWidget: stop overriding style‑provided background brushEvgeniy Harchenko
The previous implementation forced a custom background colour before delegating to the style's PE_PanelItemViewItem primitive. This interferes with theme‑specific drawing and results in a hard‑coded, non‑themed highlight that breaks styling across themes. Remove the explicit brush assignment, allowing the style to paint the background itself. The focus rectangle handling remains unchanged and is still drawn only for the active item. And pass the State_MouseOver to focus rect style option when hovered.