Package: release.debian.org Severity: normal X-Debbugs-Cc: dolp...@packages.debian.org, Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org> Control: affects -1 + src:dolphin User: release.debian....@packages.debian.org Usertags: unblock
Dear Release Team, please unblock package dolphin. [ Reason ] It contains the following changes: * New upstream release (25.04.3). - Viewproperties: Fix leaking file descriptors. (kde#505215) * Refresh patches. * Backport upstream commit: - KFileItemListWidget: wrong selection when renamed file ends with a dot. [1e5bc5b3] - Fix multi-file selection does not work when Dolphin is opened with a pre-selected file. [b64bf8ca] (kde#503221) - Ensure view is reset only actually showing paths or subpaths from the unmounted location. [3e4d9ca1] - Fix dolphin not reporting I/O errors when copying multiple files. [6dd55251, c4ffe88c] (kde#506282) I’m also attaching a simple diff without the localization updates for your convenience : diff -ur --exclude=po dolphin-25.04.2 dolphin [ Tests ] - General file browsing features tested, no regression noticed. - Fix for reproducible bugs tested successfully. - Upstream test suite doesn’t regress in sbuild with the same set of tests failing: The following tests FAILED: 4 - kitemlistcontrollertest (Failed) 7 - kfileitemmodeltest (Failed) 12 - dolphinmainwindowtest (Subprocess aborted) [ Risks ] Only contains the latest upstream point release for the 25.04 Gear branch and backported fixes. The changes can easily be reverted or more fixes backported. [ Checklist ] [x] all changes are documented in the d/changelog [x] I reviewed all changes and I approve them [x] attach debdiff against the package in testing Thanks ! unblock dolphin/4:25.04.3-1
diff -Nru dolphin-25.04.2/CMakeLists.txt dolphin-25.04.3/CMakeLists.txt --- dolphin-25.04.2/CMakeLists.txt 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/CMakeLists.txt 2025-06-30 18:04:23.000000000 +0200 @@ -3,7 +3,7 @@ # KDE Application Version, managed by release script set (RELEASE_SERVICE_VERSION_MAJOR "25") set (RELEASE_SERVICE_VERSION_MINOR "04") -set (RELEASE_SERVICE_VERSION_MICRO "2") +set (RELEASE_SERVICE_VERSION_MICRO "3") set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") project(Dolphin VERSION ${RELEASE_SERVICE_VERSION}) diff -Nru dolphin-25.04.2/debian/changelog dolphin-25.04.3/debian/changelog --- dolphin-25.04.2/debian/changelog 2025-06-06 07:51:00.000000000 +0200 +++ dolphin-25.04.3/debian/changelog 2025-07-23 08:19:05.000000000 +0200 @@ -1,3 +1,21 @@ +dolphin (4:25.04.3-1) unstable; urgency=medium + + [ Aurélien COUDERC ] + * New upstream release (25.04.3). + - Viewproperties: Fix leaking file descriptors. (kde#505215) + * Refresh patches. + * Backport upstream commit: + - KFileItemListWidget: wrong selection when renamed file ends with a dot. + [1e5bc5b3] + - Fix multi-file selection does not work when Dolphin is opened with a + pre-selected file. [b64bf8ca] (kde#503221) + - Ensure view is reset only actually showing paths or subpaths from the + unmounted location. [3e4d9ca1] + - Fix dolphin not reporting I/O errors when copying multiple files. + [6dd55251, c4ffe88c] (kde#506282) + + -- Aurélien COUDERC <couc...@debian.org> Wed, 23 Jul 2025 08:19:05 +0200 + dolphin (4:25.04.2-1) unstable; urgency=medium [ Aurélien COUDERC ] diff -Nru dolphin-25.04.2/debian/patches/relax-baloo-widgets-version.patch dolphin-25.04.3/debian/patches/relax-baloo-widgets-version.patch --- dolphin-25.04.2/debian/patches/relax-baloo-widgets-version.patch 2025-06-06 07:51:00.000000000 +0200 +++ dolphin-25.04.3/debian/patches/relax-baloo-widgets-version.patch 2025-07-23 08:19:05.000000000 +0200 @@ -2,7 +2,7 @@ +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ set (RELEASE_SERVICE_VERSION_MINOR "04") - set (RELEASE_SERVICE_VERSION_MICRO "2") + set (RELEASE_SERVICE_VERSION_MICRO "3") set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") +set (BALOO_WIDGETS_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.0") project(Dolphin VERSION ${RELEASE_SERVICE_VERSION}) diff -Nru dolphin-25.04.2/debian/patches/series dolphin-25.04.3/debian/patches/series --- dolphin-25.04.2/debian/patches/series 2025-06-06 07:51:00.000000000 +0200 +++ dolphin-25.04.3/debian/patches/series 2025-07-23 08:19:05.000000000 +0200 @@ -2,3 +2,8 @@ require-baloo-widgets.patch upstream_dd2cc41f_kfileitemmodelrolesupdater-reset-size-and-count-before-updating-folders.patch +upstream_1e5bc5b3_KFileItemListWidget-wrong-selection-when-renamed-file-ends-with-a-dot.patch +upstream_b64bf8ca_DolphinView-Don-t-end-anchored-selection-in-updateSelectionState.patch +upstream_3e4d9ca1_fix-incorrect-view-reset-when-unmounting-similarly-named-devices.patch +upstream_6dd55251_DolphinView-display-errorMessage-when-copy-errors-occurs.patch +upstream_c4ffe88c_DolphinView-display-errorMessage-when-copy-errors-occurs.patch diff -Nru dolphin-25.04.2/debian/patches/upstream_1e5bc5b3_KFileItemListWidget-wrong-selection-when-renamed-file-ends-with-a-dot.patch dolphin-25.04.3/debian/patches/upstream_1e5bc5b3_KFileItemListWidget-wrong-selection-when-renamed-file-ends-with-a-dot.patch --- dolphin-25.04.2/debian/patches/upstream_1e5bc5b3_KFileItemListWidget-wrong-selection-when-renamed-file-ends-with-a-dot.patch 1970-01-01 01:00:00.000000000 +0100 +++ dolphin-25.04.3/debian/patches/upstream_1e5bc5b3_KFileItemListWidget-wrong-selection-when-renamed-file-ends-with-a-dot.patch 2025-07-23 08:19:05.000000000 +0200 @@ -0,0 +1,40 @@ +From 1e5bc5b3d6ba344da09369802d822f6cd6da7c4c Mon Sep 17 00:00:00 2001 +From: Shitong Xu <xushit...@uniontech.com> +Date: Sun, 23 Mar 2025 15:02:24 +0000 +Subject: [PATCH] KFileItemListWidget: wrong selection when renamed file ends + with a dot + +When a file name ends with a dot, it should be treated like there is no +extension. When triggering a rename, the file name except the +extension should be selected, which is equal to the full file name when +the file ends with a dot. +--- + src/kitemviews/kfileitemlistwidget.cpp | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/kitemviews/kfileitemlistwidget.cpp b/src/kitemviews/kfileitemlistwidget.cpp +index 3a7b37895a..e1da7192a2 100644 +--- a/src/kitemviews/kfileitemlistwidget.cpp ++++ b/src/kitemviews/kfileitemlistwidget.cpp +@@ -176,15 +176,14 @@ int KFileItemListWidget::selectionLength(const QString &text) const + const QString extension = db.suffixForFileName(text); + if (extension.isEmpty()) { + // For an unknown extension just exclude the extension after +- // the last point. This does not work for multiple extensions like ++ // the last dot. This does not work for multiple extensions like + // *.tar.gz but usually this is anyhow a known extension. + indexOfExtension = text.lastIndexOf(QLatin1Char('.')); + +- // If no point could be found, use whole text length for selection. +- if (indexOfExtension < 1) { ++ // if there either is no dot, or the last dot is the first or last char, treat as no extension. ++ if (indexOfExtension < 1 || indexOfExtension == text.length() - 1) { + indexOfExtension = text.length(); + } +- + } else { + indexOfExtension -= extension.length() + 1; + } +-- +GitLab + diff -Nru dolphin-25.04.2/debian/patches/upstream_3e4d9ca1_fix-incorrect-view-reset-when-unmounting-similarly-named-devices.patch dolphin-25.04.3/debian/patches/upstream_3e4d9ca1_fix-incorrect-view-reset-when-unmounting-similarly-named-devices.patch --- dolphin-25.04.2/debian/patches/upstream_3e4d9ca1_fix-incorrect-view-reset-when-unmounting-similarly-named-devices.patch 1970-01-01 01:00:00.000000000 +0100 +++ dolphin-25.04.3/debian/patches/upstream_3e4d9ca1_fix-incorrect-view-reset-when-unmounting-similarly-named-devices.patch 2025-07-23 08:19:05.000000000 +0200 @@ -0,0 +1,37 @@ +From 3e4d9ca10c33746cb545e930886491e6a1227e6e Mon Sep 17 00:00:00 2001 +From: Vladislav Kachegov <vladkache...@gmail.com> +Date: Fri, 23 May 2025 12:46:54 +0300 +Subject: [PATCH] fix incorrect view reset when unmounting similarly-named + devices + +Previously, unmounting a device would incorrectly reset views containing: +- Paths with similar names (e.g. "/media/disk" and "/media/disk_2") +- Substrings of the mounted path + +Now only resets views showing either: +1. The exact mounted path (e.g. "/media/disk") +2. Its subdirectories (e.g. "/media/disk/docs") +--- + src/dolphinmainwindow.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp +index 297ab000e8..2697b12fb8 100644 +--- a/src/dolphinmainwindow.cpp ++++ b/src/dolphinmainwindow.cpp +@@ -1726,7 +1726,11 @@ void DolphinMainWindow::setViewsToHomeIfMountPathOpen(const QString &mountPath) + { + const QVector<DolphinViewContainer *> theViewContainers = viewContainers(); + for (DolphinViewContainer *viewContainer : theViewContainers) { +- if (viewContainer && viewContainer->url().toLocalFile().startsWith(mountPath)) { ++ if (!viewContainer) { ++ continue; ++ } ++ const auto viewPath = viewContainer->url().toLocalFile(); ++ if (viewPath.startsWith(mountPath + QLatin1String("/")) || viewPath == mountPath) { + viewContainer->setUrl(QUrl::fromLocalFile(QDir::homePath())); + } + } +-- +GitLab + diff -Nru dolphin-25.04.2/debian/patches/upstream_6dd55251_DolphinView-display-errorMessage-when-copy-errors-occurs.patch dolphin-25.04.3/debian/patches/upstream_6dd55251_DolphinView-display-errorMessage-when-copy-errors-occurs.patch --- dolphin-25.04.2/debian/patches/upstream_6dd55251_DolphinView-display-errorMessage-when-copy-errors-occurs.patch 1970-01-01 01:00:00.000000000 +0100 +++ dolphin-25.04.3/debian/patches/upstream_6dd55251_DolphinView-display-errorMessage-when-copy-errors-occurs.patch 2025-07-23 08:19:05.000000000 +0200 @@ -0,0 +1,45 @@ +From 6dd5525131e13d42f515eba982a6e7cd1153effe Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?M=C3=A9ven=20Car?= <me...@kde.org> +Date: Sun, 29 Jun 2025 11:20:44 +0200 +Subject: [PATCH] DolphinView: display errorMessage when copy errors occurs + +when copying multiple files. + +CopyJob skip those by default (CopyJobPrivate::slotSubError), and emits warning. +Hook this to errorMessage. + +We would need to improve this as only the last error Message will be +visible. + +BUG: 506282 +--- + src/views/dolphinview.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp +index 9bbdc3b10e..e8577e0663 100644 +--- a/src/views/dolphinview.cpp ++++ b/src/views/dolphinview.cpp +@@ -846,6 +846,9 @@ void DolphinView::copySelectedItems(const KFileItemList &selection, const QUrl & + connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult); + connect(job, &KIO::CopyJob::copying, this, &DolphinView::slotItemCreatedFromJob); + connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob); ++ connect(job, &KIO::CopyJob::warning, this, [](KJob *job, const QString &warning) { ++ Q_EMIT errorMessage(job->errorString(), job->error()); ++ }); + KIO::FileUndoManager::self()->recordCopyJob(job); + } + +@@ -865,6 +868,9 @@ void DolphinView::moveSelectedItems(const KFileItemList &selection, const QUrl & + connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult); + connect(job, &KIO::CopyJob::moving, this, &DolphinView::slotItemCreatedFromJob); + connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob); ++ connect(job, &KIO::CopyJob::warning, this, [](KJob *job, const QString &warning) { ++ Q_EMIT errorMessage(job->errorString(), job->error()); ++ }); + KIO::FileUndoManager::self()->recordCopyJob(job); + } + +-- +GitLab + diff -Nru dolphin-25.04.2/debian/patches/upstream_b64bf8ca_DolphinView-Don-t-end-anchored-selection-in-updateSelectionState.patch dolphin-25.04.3/debian/patches/upstream_b64bf8ca_DolphinView-Don-t-end-anchored-selection-in-updateSelectionState.patch --- dolphin-25.04.2/debian/patches/upstream_b64bf8ca_DolphinView-Don-t-end-anchored-selection-in-updateSelectionState.patch 1970-01-01 01:00:00.000000000 +0100 +++ dolphin-25.04.3/debian/patches/upstream_b64bf8ca_DolphinView-Don-t-end-anchored-selection-in-updateSelectionState.patch 2025-07-23 08:19:05.000000000 +0200 @@ -0,0 +1,33 @@ +From b64bf8ca69c473de973eddef3d137fea80acb968 Mon Sep 17 00:00:00 2001 +From: Akseli Lahtinen <akse...@akselmo.dev> +Date: Thu, 24 Apr 2025 16:45:58 +0300 +Subject: [PATCH] DolphinView: Don't end anchored selection in + updateSelectionState + +Do not end anchored selection when selection state is updated, such as +when Dolphin is started with --select "thing.txt" flag. + +If we end here, and user wants to press shift to select from +current item to X items, this would cause the anchored selection +to start from the clicked item, not from the first selected item. + +BUG: 503221 +--- + src/views/dolphinview.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp +index f3bde88df2..ee7ac51d26 100644 +--- a/src/views/dolphinview.cpp ++++ b/src/views/dolphinview.cpp +@@ -1776,7 +1776,6 @@ void DolphinView::updateSelectionState() + if (!selectedItems.isEmpty()) { + selectionManager->beginAnchoredSelection(selectionManager->currentItem()); + selectionManager->setSelectedItems(selectedItems); +- selectionManager->endAnchoredSelection(); + if (shouldScrollToCurrentItem) { + m_view->scrollToItem(selectedItems.first()); + } +-- +GitLab + diff -Nru dolphin-25.04.2/debian/patches/upstream_c4ffe88c_DolphinView-display-errorMessage-when-copy-errors-occurs.patch dolphin-25.04.3/debian/patches/upstream_c4ffe88c_DolphinView-display-errorMessage-when-copy-errors-occurs.patch --- dolphin-25.04.2/debian/patches/upstream_c4ffe88c_DolphinView-display-errorMessage-when-copy-errors-occurs.patch 1970-01-01 01:00:00.000000000 +0100 +++ dolphin-25.04.3/debian/patches/upstream_c4ffe88c_DolphinView-display-errorMessage-when-copy-errors-occurs.patch 2025-07-23 08:19:05.000000000 +0200 @@ -0,0 +1,81 @@ +From c4ffe88c9fafaed4b66a010a25b117427ba709f6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?M=C3=A9ven=20Car?= <me...@kde.org> +Date: Sun, 29 Jun 2025 11:20:44 +0200 +Subject: [PATCH] DolphinView: display errorMessage when copy errors occurs + +when copying multiple files. + +CopyJob skip those by default (CopyJobPrivate::slotSubError), and emits warning. +Hook this to errorMessage. + +We would need to improve this as only the last error Message will be +visible. + +BUG: 506282 +--- + src/views/dolphinview.cpp | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp +index e8577e0663..b702f5b13b 100644 +--- a/src/views/dolphinview.cpp ++++ b/src/views/dolphinview.cpp +@@ -44,6 +44,7 @@ + #include <KIO/Paste> + #include <KIO/PasteJob> + #include <KIO/RenameFileDialog> ++#include <KJob> + #include <KJobWidgets> + #include <KLocalizedString> + #include <KMessageBox> +@@ -846,7 +847,7 @@ void DolphinView::copySelectedItems(const KFileItemList &selection, const QUrl & + connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult); + connect(job, &KIO::CopyJob::copying, this, &DolphinView::slotItemCreatedFromJob); + connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob); +- connect(job, &KIO::CopyJob::warning, this, [](KJob *job, const QString &warning) { ++ connect(job, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /* warning */) { + Q_EMIT errorMessage(job->errorString(), job->error()); + }); + KIO::FileUndoManager::self()->recordCopyJob(job); +@@ -868,7 +869,7 @@ void DolphinView::moveSelectedItems(const KFileItemList &selection, const QUrl & + connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult); + connect(job, &KIO::CopyJob::moving, this, &DolphinView::slotItemCreatedFromJob); + connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob); +- connect(job, &KIO::CopyJob::warning, this, [](KJob *job, const QString &warning) { ++ connect(job, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /*warning */) { + Q_EMIT errorMessage(job->errorString(), job->error()); + }); + KIO::FileUndoManager::self()->recordCopyJob(job); +@@ -932,6 +933,9 @@ void DolphinView::duplicateSelectedItems() + connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult); + connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob); + connect(job, &KIO::CopyJob::copyingLinkDone, this, &DolphinView::slotItemLinkCreatedFromJob); ++ connect(job, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /*warning*/) { ++ Q_EMIT errorMessage(job->errorString(), job->error()); ++ }); + KIO::FileUndoManager::self()->recordCopyJob(job); + } + } +@@ -1407,6 +1411,9 @@ void DolphinView::dropUrls(const QUrl &destUrl, QDropEvent *dropEvent, QWidget * + connect(job, &KIO::DropJob::copyJobStarted, this, [this](const KIO::CopyJob *copyJob) { + connect(copyJob, &KIO::CopyJob::copying, this, &DolphinView::slotItemCreatedFromJob); + connect(copyJob, &KIO::CopyJob::moving, this, &DolphinView::slotItemCreatedFromJob); ++ connect(copyJob, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /*warning*/) { ++ Q_EMIT errorMessage(job->errorString(), job->error()); ++ }); + connect(copyJob, &KIO::CopyJob::linking, this, [this](KIO::Job *job, const QString &src, const QUrl &dest) { + Q_UNUSED(job) + Q_UNUSED(src) +@@ -2276,6 +2283,9 @@ void DolphinView::pasteToUrl(const QUrl &url) + connect(job, &KIO::PasteJob::copyJobStarted, this, [this](const KIO::CopyJob *copyJob) { + connect(copyJob, &KIO::CopyJob::copying, this, &DolphinView::slotItemCreatedFromJob); + connect(copyJob, &KIO::CopyJob::moving, this, &DolphinView::slotItemCreatedFromJob); ++ connect(copyJob, &KIO::CopyJob::warning, this, [this](KJob *job, const QString & /*warning*/) { ++ Q_EMIT errorMessage(job->errorString(), job->error()); ++ }); + connect(copyJob, &KIO::CopyJob::linking, this, [this](KIO::Job *job, const QString &src, const QUrl &dest) { + Q_UNUSED(job) + Q_UNUSED(src) +-- +GitLab + diff -Nru dolphin-25.04.2/.gitlab-ci.yml dolphin-25.04.3/.gitlab-ci.yml --- dolphin-25.04.2/.gitlab-ci.yml 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/.gitlab-ci.yml 2025-06-30 18:04:23.000000000 +0200 @@ -5,7 +5,7 @@ - /gitlab-templates/linux-qt6-next.yml - /gitlab-templates/freebsd-qt6.yml - /gitlab-templates/windows-qt6.yml - - /gitlab-templates/flatpak.yml + # - /gitlab-templates/flatpak.yml - /gitlab-templates/craft-windows-x86-64-qt6.yml - /gitlab-templates/xml-lint.yml diff -Nru dolphin-25.04.2/po/ar/dolphin.po dolphin-25.04.3/po/ar/dolphin.po --- dolphin-25.04.2/po/ar/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/ar/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -15,7 +15,7 @@ "Project-Id-Version: dolphin\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-04-25 02:36+0000\n" -"PO-Revision-Date: 2025-04-19 13:11+0400\n" +"PO-Revision-Date: 2025-06-28 17:07+0400\n" "Last-Translator: Zayed Al-Saidi <zayed.alsa...@gmail.com>\n" "Language-Team: ar\n" "Language: ar\n" @@ -771,7 +771,7 @@ #, kde-format msgctxt "@info:tooltip" msgid "Refresh view" -msgstr "أنعش العرض" +msgstr "حدّث العرض" #: dolphinmainwindow.cpp:1971 #, kde-kuit-format diff -Nru dolphin-25.04.2/po/bg/dolphin.po dolphin-25.04.3/po/bg/dolphin.po --- dolphin-25.04.2/po/bg/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/bg/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -6336,54 +6336,3 @@ msgctxt "@info:status" msgid "Updating version information…" msgstr "Обновяване данните за версията…" - -#~ msgid "Show the statusbar" -#~ msgstr "Показване на лентата на състоянието" - -#~ msgid "Show the space information in the statusbar" -#~ msgstr "Показване на информацията за пространството в лентата за състояние" - -#~ msgctxt "@option:check" -#~ msgid "Show status bar" -#~ msgstr "Показване на лентата за състоянието" - -#~ msgctxt "@option:check" -#~ msgid "Show space information" -#~ msgstr "Показване на данни за дисково пространство" - -#~ msgctxt "@action:inmenu" -#~ msgid "Show Space Information" -#~ msgstr "Показване на данни за дисково пространство" - -#~ msgctxt "@action:inmenu" -#~ msgid "Restore" -#~ msgstr "Възстановяване" - -#~ msgid "not selected," -#~ msgstr "неизбран," - -#~ msgid "collapsed," -#~ msgstr "свит," - -#~ msgid "expanded," -#~ msgstr "разширен," - -#~ msgid "— %1 selected item" -#~ msgid_plural "— %1 selected items" -#~ msgstr[0] "— %1 избран елемент" -#~ msgstr[1] "— %1 избрани елемента" - -#~ msgctxt "" -#~ "@info 1 is currentlyFocussedItemName, 2 is empty or \"not selected, \", 3 " -#~ "is currentlyFocussedItemDescription, 3 is currentFolderName, 4 is " -#~ "currentFolderPath" -#~ msgid "%1, %2 %3 %4 %5 %6 in location %7" -#~ msgstr "%1, %2 %3 %4 %5 %6 в местоположение %7" - -#~ msgctxt "@info" -#~ msgid "" -#~ "Dolphin will create a hidden .directory file in each folder you change " -#~ "view properties for." -#~ msgstr "" -#~ "Dolphin ще създаде скрит .directory файл във всяка папка, за която " -#~ "променяте свойствата на изгледа." diff -Nru dolphin-25.04.2/po/de/dolphin.po dolphin-25.04.3/po/de/dolphin.po --- dolphin-25.04.2/po/de/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/de/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -10,20 +10,21 @@ # Jonas Schürmann <jonasschuerm...@aol.de>, 2012. # SPDX-FileCopyrightText: 2021, 2024, 2025 Frank Steinmetzger <d...@felsenfleischer.de> # SPDX-FileCopyrightText: 2024, 2025 Flori G <renne...@protonmail.com> +# SPDX-FileCopyrightText: 2025 Philipp Kiemle <l...@prly.mozmail.com> msgid "" msgstr "" "Project-Id-Version: dolphin\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-04-25 02:36+0000\n" -"PO-Revision-Date: 2025-05-18 13:17+0200\n" -"Last-Translator: Flori G <renne...@protonmail.com>\n" +"PO-Revision-Date: 2025-05-17 00:18+0200\n" +"Last-Translator: Philipp Kiemle <l...@prly.mozmail.com>\n" "Language-Team: German <kde-i18n...@kde.org>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 25.04.1\n" +"X-Generator: Lokalize 24.12.3\n" #, kde-format msgctxt "NAME OF TRANSLATORS" @@ -4558,7 +4559,7 @@ #, kde-format msgctxt "@option:radio Show on startup" msgid "Folders, tabs, and window state from last time" -msgstr "Ordner, Unterfenster und Fensterzustand vom letzten Start" +msgstr "Ordner, Unterfenster und Fensterzustand vom letzten Mal" #: settings/interface/folderstabssettingspage.cpp:54 #, kde-format diff -Nru dolphin-25.04.2/po/fr/dolphin.po dolphin-25.04.3/po/fr/dolphin.po --- dolphin-25.04.2/po/fr/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/fr/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -35,7 +35,7 @@ "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Accelerator-Marker: &\n" "X-Environment: kde\n" -"X-Generator: Lokalize 25.04.1\n" +"X-Generator: Lokalize 25.04.2\n" "X-Text-Markup: kde4\n" #, kde-format diff -Nru dolphin-25.04.2/po/gl/dolphin.po dolphin-25.04.3/po/gl/dolphin.po --- dolphin-25.04.2/po/gl/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/gl/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -24,7 +24,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Lokalize 24.12.2\n" +"X-Generator: Lokalize 25.04.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" diff -Nru dolphin-25.04.2/po/it/dolphin.po dolphin-25.04.3/po/it/dolphin.po --- dolphin-25.04.2/po/it/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/it/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -16,7 +16,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 25.04.0\n" +"X-Generator: Lokalize 25.04.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" diff -Nru dolphin-25.04.2/po/pl/dolphin.po dolphin-25.04.3/po/pl/dolphin.po --- dolphin-25.04.2/po/pl/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/pl/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -13,7 +13,7 @@ "Project-Id-Version: dolphin\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-04-25 02:36+0000\n" -"PO-Revision-Date: 2025-03-15 10:05+0100\n" +"PO-Revision-Date: 2025-06-14 13:47+0200\n" "Last-Translator: Łukasz Wojniłowicz <lukasz.wojnilow...@gmail.com>\n" "Language-Team: Polish <kde-i18n-...@kde.org>\n" "Language: pl\n" @@ -22,7 +22,7 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: Lokalize 24.12.3\n" +"X-Generator: Lokalize 25.04.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" @@ -3142,7 +3142,7 @@ #: panels/information/dolphin_informationpanelsettings.kcfg:14 #, kde-format msgid "Auto-Play media files" -msgstr "Samoodtwarzaj pliki multimedialne" +msgstr "Sam zacznij odtwarzać pliki multimedialne" #. i18n: ectx: label, entry (showHovered), group (InformationPanel) #: panels/information/dolphin_informationpanelsettings.kcfg:18 @@ -3166,7 +3166,7 @@ #, kde-format msgctxt "@action:inmenu" msgid "Auto-Play media files" -msgstr "Samoodtwarzaj pliki multimedialne" +msgstr "Sam zacznij odtwarzać pliki multimedialne" #: panels/information/informationpanel.cpp:163 #, kde-format diff -Nru dolphin-25.04.2/po/pt_BR/dolphin.po dolphin-25.04.3/po/pt_BR/dolphin.po --- dolphin-25.04.2/po/pt_BR/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/pt_BR/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -18,7 +18,7 @@ "Project-Id-Version: dolphin\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-04-25 02:36+0000\n" -"PO-Revision-Date: 2025-03-15 00:38-0300\n" +"PO-Revision-Date: 2025-06-21 19:43-0300\n" "Last-Translator: Guilherme Marçal Silva <guimarcalsi...@gmail.com>\n" "Language-Team: Brazilian Portuguese <kde-i18n-pt...@kde.org>\n" "Language: pt_BR\n" @@ -26,7 +26,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Lokalize 24.12.3\n" +"X-Generator: Lokalize 25.04.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" @@ -4819,7 +4819,7 @@ #, kde-format msgctxt "@option:radio" msgid "Full width" -msgstr "Largura completa" +msgstr "Largura completa" #: settings/interface/statusandlocationbarssettingspage.cpp:44 #, kde-format diff -Nru dolphin-25.04.2/po/tr/dolphin.po dolphin-25.04.3/po/tr/dolphin.po --- dolphin-25.04.2/po/tr/dolphin.po 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/po/tr/dolphin.po 2025-06-30 18:04:23.000000000 +0200 @@ -13,15 +13,15 @@ "Project-Id-Version: dolphin-plugins\n" "Report-Msgid-Bugs-To: https://bugs.kde.org\n" "POT-Creation-Date: 2025-04-25 02:36+0000\n" -"PO-Revision-Date: 2025-02-25 09:34+0300\n" -"Last-Translator: Emir SARI <emir_s...@icloud.com>\n" +"PO-Revision-Date: 2025-06-21 08:18+0300\n" +"Last-Translator: Emir SARI <emir_sari@îcloud.com>\n" "Language-Team: Turkish <kde-l10n...@kde.org>\n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Lokalize 25.03.70\n" +"X-Generator: Lokalize 25.04.2\n" #, kde-format msgctxt "NAME OF TRANSLATORS" @@ -2862,7 +2862,7 @@ #, kde-format msgctxt "@info:credit" msgid "Maintainer (since 2021) and developer" -msgstr "Projeyi Sürdüren (2021’den beri) ve geliştirici" +msgstr "Bakımcı (2021’den beri) ve geliştirici" #: main.cpp:104 #, kde-format diff -Nru dolphin-25.04.2/src/dolphinpart.json.in dolphin-25.04.3/src/dolphinpart.json.in --- dolphin-25.04.2/src/dolphinpart.json.in 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/src/dolphinpart.json.in 2025-06-30 18:04:23.000000000 +0200 @@ -27,7 +27,7 @@ "Name[eo]": "Dolfin-Vido", "Name[es]": "Vista de Dolphin", "Name[et]": "Dolphini vaade", - "Name[eu]": "Dolphin ikuspegia", + "Name[eu]": "Dolphin-en ikuspegia", "Name[fi]": "Dolphin-näkymä", "Name[fr]": "Vue de Dolphin", "Name[gl]": "Vista de Dolphin", diff -Nru dolphin-25.04.2/src/org.kde.dolphin.appdata.xml dolphin-25.04.3/src/org.kde.dolphin.appdata.xml --- dolphin-25.04.2/src/org.kde.dolphin.appdata.xml 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/src/org.kde.dolphin.appdata.xml 2025-06-30 18:04:23.000000000 +0200 @@ -525,6 +525,7 @@ </provides> <launchable type="desktop-id">org.kde.dolphin.desktop</launchable> <releases> + <release version="25.04.3" date="2025-07-03"/> <release version="25.04.2" date="2025-06-05"/> <release version="25.04.1" date="2025-05-08"/> <release version="25.04.0" date="2025-04-17"/> diff -Nru dolphin-25.04.2/src/views/viewproperties.cpp dolphin-25.04.3/src/views/viewproperties.cpp --- dolphin-25.04.2/src/views/viewproperties.cpp 2025-06-02 22:12:16.000000000 +0200 +++ dolphin-25.04.3/src/views/viewproperties.cpp 2025-06-30 18:04:23.000000000 +0200 @@ -42,22 +42,14 @@ return new ViewPropertySettings(KSharedConfig::openConfig(settingsFile, KConfig::SimpleConfig)); } - auto createTempFile = []() -> QTemporaryFile * { - QTemporaryFile *tempFile = new QTemporaryFile; - tempFile->setAutoRemove(false); - if (!tempFile->open()) { - qCWarning(DolphinDebug) << "Could not open temp file"; - return nullptr; - } - return tempFile; - }; - + std::unique_ptr<QTemporaryFile> tempFile(new QTemporaryFile()); + tempFile->setAutoRemove(false); + if (!tempFile->open()) { + qCWarning(DolphinDebug) << "Could not open temp file"; + return nullptr; + } if (QFile::exists(settingsFile)) { // copy settings to tempfile to load them separately - const QTemporaryFile *tempFile = createTempFile(); - if (!tempFile) { - return nullptr; - } QFile::remove(tempFile->fileName()); QFile::copy(settingsFile, tempFile->fileName()); @@ -84,11 +76,6 @@ return nullptr; } // load view properties from xattr to temp file then loads into ViewPropertySettings - // clear the temp file - const QTemporaryFile *tempFile = createTempFile(); - if (!tempFile) { - return nullptr; - } QFile outputFile(tempFile->fileName()); outputFile.open(QIODevice::WriteOnly); outputFile.write(viewPropertiesString.toUtf8());
diff -ur '--exclude=po' dolphin-25.04.2/CMakeLists.txt dolphin/CMakeLists.txt --- dolphin-25.04.2/CMakeLists.txt 2025-07-23 08:58:05.000000000 +0200 +++ dolphin/CMakeLists.txt 2025-06-30 18:04:23.000000000 +0200 @@ -3,9 +3,8 @@ # KDE Application Version, managed by release script set (RELEASE_SERVICE_VERSION_MAJOR "25") set (RELEASE_SERVICE_VERSION_MINOR "04") -set (RELEASE_SERVICE_VERSION_MICRO "2") +set (RELEASE_SERVICE_VERSION_MICRO "3") set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") -set (BALOO_WIDGETS_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.0") project(Dolphin VERSION ${RELEASE_SERVICE_VERSION}) set(QT_MIN_VERSION "6.4.0") @@ -129,10 +128,10 @@ PURPOSE "For adding desktop-wide search and tagging support to dolphin" ) -find_package(KF6BalooWidgets ${BALOO_WIDGETS_VERSION}) +find_package(KF6BalooWidgets ${RELEASE_SERVICE_VERSION}) set_package_properties(KF6BalooWidgets PROPERTIES DESCRIPTION "Baloos Widgets" URL "https://www.kde.org" - TYPE REQUIRED + TYPE OPTIONAL ) if (KF6Baloo_FOUND AND KF6BalooWidgets_FOUND) diff -ur '--exclude=po' dolphin-25.04.2/debian/changelog dolphin/debian/changelog --- dolphin-25.04.2/debian/changelog 2025-06-06 07:51:00.000000000 +0200 +++ dolphin/debian/changelog 2025-07-23 08:26:19.045677655 +0200 @@ -1,3 +1,21 @@ +dolphin (4:25.04.3-1) unstable; urgency=medium + + [ Aurélien COUDERC ] + * New upstream release (25.04.3). + - Viewproperties: Fix leaking file descriptors. (kde#505215) + * Refresh patches. + * Backport upstream commit: + - KFileItemListWidget: wrong selection when renamed file ends with a dot. + [1e5bc5b3] + - Fix multi-file selection does not work when Dolphin is opened with a + pre-selected file. [b64bf8ca] (kde#503221) + - Ensure view is reset only actually showing paths or subpaths from the + unmounted location. [3e4d9ca1] + - Fix dolphin not reporting I/O errors when copying multiple files. + [6dd55251, c4ffe88c] (kde#506282) + + -- Aurélien COUDERC <couc...@debian.org> Wed, 23 Jul 2025 08:19:05 +0200 + dolphin (4:25.04.2-1) unstable; urgency=medium [ Aurélien COUDERC ] Seulement dans dolphin/debian: .gitattributes Seulement dans dolphin/debian: .gitignore diff -ur '--exclude=po' dolphin-25.04.2/debian/patches/relax-baloo-widgets-version.patch dolphin/debian/patches/relax-baloo-widgets-version.patch --- dolphin-25.04.2/debian/patches/relax-baloo-widgets-version.patch 2025-06-06 07:51:00.000000000 +0200 +++ dolphin/debian/patches/relax-baloo-widgets-version.patch 2025-07-23 08:22:05.908251897 +0200 @@ -2,7 +2,7 @@ +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ set (RELEASE_SERVICE_VERSION_MINOR "04") - set (RELEASE_SERVICE_VERSION_MICRO "2") + set (RELEASE_SERVICE_VERSION_MICRO "3") set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") +set (BALOO_WIDGETS_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.0") project(Dolphin VERSION ${RELEASE_SERVICE_VERSION}) diff -ur '--exclude=po' dolphin-25.04.2/debian/patches/series dolphin/debian/patches/series --- dolphin-25.04.2/debian/patches/series 2025-06-06 07:51:00.000000000 +0200 +++ dolphin/debian/patches/series 2025-07-23 08:26:19.029672618 +0200 @@ -2,3 +2,8 @@ require-baloo-widgets.patch upstream_dd2cc41f_kfileitemmodelrolesupdater-reset-size-and-count-before-updating-folders.patch +upstream_1e5bc5b3_KFileItemListWidget-wrong-selection-when-renamed-file-ends-with-a-dot.patch +upstream_b64bf8ca_DolphinView-Don-t-end-anchored-selection-in-updateSelectionState.patch +upstream_3e4d9ca1_fix-incorrect-view-reset-when-unmounting-similarly-named-devices.patch +upstream_6dd55251_DolphinView-display-errorMessage-when-copy-errors-occurs.patch +upstream_c4ffe88c_DolphinView-display-errorMessage-when-copy-errors-occurs.patch Seulement dans dolphin/debian/patches: upstream_1e5bc5b3_KFileItemListWidget-wrong-selection-when-renamed-file-ends-with-a-dot.patch Seulement dans dolphin/debian/patches: upstream_3e4d9ca1_fix-incorrect-view-reset-when-unmounting-similarly-named-devices.patch Seulement dans dolphin/debian/patches: upstream_6dd55251_DolphinView-display-errorMessage-when-copy-errors-occurs.patch Seulement dans dolphin/debian/patches: upstream_b64bf8ca_DolphinView-Don-t-end-anchored-selection-in-updateSelectionState.patch Seulement dans dolphin/debian/patches: upstream_c4ffe88c_DolphinView-display-errorMessage-when-copy-errors-occurs.patch Seulement dans dolphin: .git diff -ur '--exclude=po' dolphin-25.04.2/.gitlab-ci.yml dolphin/.gitlab-ci.yml --- dolphin-25.04.2/.gitlab-ci.yml 2025-06-02 22:12:16.000000000 +0200 +++ dolphin/.gitlab-ci.yml 2025-06-30 18:04:23.000000000 +0200 @@ -5,7 +5,7 @@ - /gitlab-templates/linux-qt6-next.yml - /gitlab-templates/freebsd-qt6.yml - /gitlab-templates/windows-qt6.yml - - /gitlab-templates/flatpak.yml + # - /gitlab-templates/flatpak.yml - /gitlab-templates/craft-windows-x86-64-qt6.yml - /gitlab-templates/xml-lint.yml Seulement dans dolphin-25.04.2: .pc diff -ur '--exclude=po' dolphin-25.04.2/src/dolphinpart.json.in dolphin/src/dolphinpart.json.in --- dolphin-25.04.2/src/dolphinpart.json.in 2025-06-02 22:12:16.000000000 +0200 +++ dolphin/src/dolphinpart.json.in 2025-06-30 18:04:23.000000000 +0200 @@ -27,7 +27,7 @@ "Name[eo]": "Dolfin-Vido", "Name[es]": "Vista de Dolphin", "Name[et]": "Dolphini vaade", - "Name[eu]": "Dolphin ikuspegia", + "Name[eu]": "Dolphin-en ikuspegia", "Name[fi]": "Dolphin-näkymä", "Name[fr]": "Vue de Dolphin", "Name[gl]": "Vista de Dolphin", diff -ur '--exclude=po' dolphin-25.04.2/src/kitemviews/kfileitemmodelrolesupdater.cpp dolphin/src/kitemviews/kfileitemmodelrolesupdater.cpp --- dolphin-25.04.2/src/kitemviews/kfileitemmodelrolesupdater.cpp 2025-07-23 08:58:05.000000000 +0200 +++ dolphin/src/kitemviews/kfileitemmodelrolesupdater.cpp 2025-06-30 18:04:23.000000000 +0200 @@ -370,28 +370,19 @@ // Determine the sort role synchronously for as many items as possible. if (m_resolvableRoles.contains(m_model->sortRole())) { - QList<QUrl> dirsWithAddedItems; - int insertedCount = 0; for (const KItemRange &range : itemRanges) { const int lastIndex = insertedCount + range.index + range.count - 1; for (int i = insertedCount + range.index; i <= lastIndex; ++i) { - const auto fileItem = m_model->fileItem(i); - const auto fileItemParentFolderUrl = fileItem.url().adjusted(QUrl::RemoveFilename); - if (!dirsWithAddedItems.contains(fileItemParentFolderUrl)) { - dirsWithAddedItems.append(fileItemParentFolderUrl); - } if (timer.elapsed() < MaxBlockTimeout) { applySortRole(i); } else { - m_pendingSortRoleItems.insert(fileItem); + m_pendingSortRoleItems.insert(m_model->fileItem(i)); } } insertedCount += range.count; } - recountDirectoryItems(dirsWithAddedItems); - applySortProgressToModel(); // If there are still items whose sort role is unknown, check if the @@ -448,25 +439,17 @@ m_directoryContentsCounter->stopWorker(); } } else { - QList<QUrl> dirsWithDeletedItems; // Only remove the items from m_finishedItems. They will be removed // from the other sets later on. QSet<KFileItem>::iterator it = m_finishedItems.begin(); while (it != m_finishedItems.end()) { if (m_model->index(*it) < 0) { - // Get the folder path of the file. - const auto folderUrl = it->url().adjusted(QUrl::RemoveFilename); - if (!dirsWithDeletedItems.contains(folderUrl)) { - dirsWithDeletedItems.append(folderUrl); - } it = m_finishedItems.erase(it); } else { ++it; } } - recountDirectoryItems(dirsWithDeletedItems); - // Removed items won't have hover previews loaded anymore. for (const KItemRange &itemRange : itemRanges) { int index = itemRange.index; @@ -1287,20 +1270,13 @@ void KFileItemModelRolesUpdater::startDirectorySizeCounting(const KFileItem &item, int index) { - if (ContentDisplaySettings::directorySizeMode() == ContentDisplaySettings::EnumDirectorySizeMode::None) { + if (ContentDisplaySettings::directorySizeMode() == ContentDisplaySettings::EnumDirectorySizeMode::None || !item.isLocalFile()) { return; } - // Set any remote files to unknown size (-1). - if (!item.isLocalFile()) { - resetSizeData(index, -1); - return; - } else { - resetSizeData(index); - } - if (ContentDisplaySettings::directorySizeMode() == ContentDisplaySettings::EnumDirectorySizeMode::ContentCount || item.isSlow()) { // fastpath no recursion necessary + auto data = m_model->data(index); if (data.value("size") == -2) { // means job already started @@ -1320,33 +1296,28 @@ connect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged); auto listJob = KIO::listDir(url, KIO::HideProgressInfo); - - QObject::connect(listJob, &KIO::ListJob::entries, this, [this, item](const KJob *job, const KIO::UDSEntryList &list) { + QObject::connect(listJob, &KIO::ListJob::entries, this, [this, item](const KJob * /*job*/, const KIO::UDSEntryList &list) { int index = m_model->index(item); if (index < 0) { return; } auto data = m_model->data(index); int origCount = data.value("count").toInt(); - // Get the amount of processed items... - int entryCount = job->processedAmount(KJob::Bytes); + int entryCount = origCount; - // ...and then remove the unwanted items from the amount. for (const KIO::UDSEntry &entry : list) { const auto name = entry.stringValue(KIO::UDSEntry::UDS_NAME); if (name == QStringLiteral("..") || name == QStringLiteral(".")) { - --entryCount; continue; } if (!m_model->showHiddenFiles() && name.startsWith(QLatin1Char('.'))) { - --entryCount; continue; } if (m_model->showDirectoriesOnly() && !entry.isDir()) { - --entryCount; continue; } + ++entryCount; } QHash<QByteArray, QVariant> newData; @@ -1357,6 +1328,7 @@ } if (origCount != entryCount) { + // count has changed newData.insert("count", entryCount); } @@ -1538,28 +1510,5 @@ } } } - -void KFileItemModelRolesUpdater::resetSizeData(const int index, const int size) -{ - disconnect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged); - auto data = m_model->data(index); - data.insert("size", size); - m_model->setData(index, data); - connect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged); -} - -void KFileItemModelRolesUpdater::recountDirectoryItems(const QList<QUrl> directories) -{ - for (const auto &dir : directories) { - auto index = m_model->index(dir); - if (index < 0) { - continue; - } - auto item = m_model->fileItem(index); - if (item.isDir()) { - startDirectorySizeCounting(item, index); - } - } -} #include "moc_kfileitemmodelrolesupdater.cpp" diff -ur '--exclude=po' dolphin-25.04.2/src/kitemviews/kfileitemmodelrolesupdater.h dolphin/src/kitemviews/kfileitemmodelrolesupdater.h --- dolphin-25.04.2/src/kitemviews/kfileitemmodelrolesupdater.h 2025-07-23 08:58:05.000000000 +0200 +++ dolphin/src/kitemviews/kfileitemmodelrolesupdater.h 2025-06-30 18:04:23.000000000 +0200 @@ -340,10 +340,6 @@ void trimHoverSequenceLoadedItems(); - void resetSizeData(const int index, const int size = 0); - - void recountDirectoryItems(const QList<QUrl> directories); - private: QSize cacheSize(); /** diff -ur '--exclude=po' dolphin-25.04.2/src/org.kde.dolphin.appdata.xml dolphin/src/org.kde.dolphin.appdata.xml --- dolphin-25.04.2/src/org.kde.dolphin.appdata.xml 2025-06-02 22:12:16.000000000 +0200 +++ dolphin/src/org.kde.dolphin.appdata.xml 2025-06-30 18:04:23.000000000 +0200 @@ -525,6 +525,7 @@ </provides> <launchable type="desktop-id">org.kde.dolphin.desktop</launchable> <releases> + <release version="25.04.3" date="2025-07-03"/> <release version="25.04.2" date="2025-06-05"/> <release version="25.04.1" date="2025-05-08"/> <release version="25.04.0" date="2025-04-17"/> diff -ur '--exclude=po' dolphin-25.04.2/src/views/viewproperties.cpp dolphin/src/views/viewproperties.cpp --- dolphin-25.04.2/src/views/viewproperties.cpp 2025-06-02 22:12:16.000000000 +0200 +++ dolphin/src/views/viewproperties.cpp 2025-06-30 18:04:23.000000000 +0200 @@ -42,22 +42,14 @@ return new ViewPropertySettings(KSharedConfig::openConfig(settingsFile, KConfig::SimpleConfig)); } - auto createTempFile = []() -> QTemporaryFile * { - QTemporaryFile *tempFile = new QTemporaryFile; - tempFile->setAutoRemove(false); - if (!tempFile->open()) { - qCWarning(DolphinDebug) << "Could not open temp file"; - return nullptr; - } - return tempFile; - }; - + std::unique_ptr<QTemporaryFile> tempFile(new QTemporaryFile()); + tempFile->setAutoRemove(false); + if (!tempFile->open()) { + qCWarning(DolphinDebug) << "Could not open temp file"; + return nullptr; + } if (QFile::exists(settingsFile)) { // copy settings to tempfile to load them separately - const QTemporaryFile *tempFile = createTempFile(); - if (!tempFile) { - return nullptr; - } QFile::remove(tempFile->fileName()); QFile::copy(settingsFile, tempFile->fileName()); @@ -84,11 +76,6 @@ return nullptr; } // load view properties from xattr to temp file then loads into ViewPropertySettings - // clear the temp file - const QTemporaryFile *tempFile = createTempFile(); - if (!tempFile) { - return nullptr; - } QFile outputFile(tempFile->fileName()); outputFile.open(QIODevice::WriteOnly); outputFile.write(viewPropertiesString.toUtf8());