Bug#1109749: unblock: dolphin/4:25.04.3-1
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: dolphin@packages.debian.org, Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Control: affects -1 + src:dolphin
User: release.debian.org@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 <coucouf@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 <xushitong@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 <vladkachegov@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?= <meven@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 <akselmo@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?= <meven@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.alsaidi@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 <jonasschuermann@aol.de>, 2012.
# SPDX-FileCopyrightText: 2021, 2024, 2025 Frank Steinmetzger <dev@felsenfleischer.de>
# SPDX-FileCopyrightText: 2024, 2025 Flori G <Renner03@protonmail.com>
+# SPDX-FileCopyrightText: 2025 Philipp Kiemle <l10n@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 <Renner03@protonmail.com>\n"
+"PO-Revision-Date: 2025-05-17 00:18+0200\n"
+"Last-Translator: Philipp Kiemle <l10n@prly.mozmail.com>\n"
"Language-Team: German <kde-i18n-de@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.wojnilowicz@gmail.com>\n"
"Language-Team: Polish <kde-i18n-doc@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 <guimarcalsilva@gmail.com>\n"
"Language-Team: Brazilian Portuguese <kde-i18n-pt_BR@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_sari@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-tr@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 <coucouf@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 to: