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());

Reply via email to