public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/amarok] epel10.2: feat: update to latest snapshot
Date: Mon, 06 Jul 2026 18:32:27 GMT	[thread overview]
Message-ID: <178336274798.1.1840417404953809738.rpms-amarok-4cd84c70123a@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/amarok
Branch : epel10.2
Commit : 4cd84c70123a2a9afd6a9b4abf3cba121811e71c
Author : Marc Deop i Argemí <marcdeop@fedoraproject.org>
Date   : 2024-03-31T22:46:37+02:00
Stats  : +9/-1149 in 5 file(s)
URL    : https://src.fedoraproject.org/rpms/amarok/c/4cd84c70123a2a9afd6a9b4abf3cba121811e71c?branch=epel10.2

Log:
feat: update to latest snapshot

---
diff --git a/.gitignore b/.gitignore
index 39948e4..b6c39fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@
 /amarok-2.8.90.tar.xz
 /amarok-2.9.0.tar.xz
 /amarok-387c30de482522774c28dc02c2636cd41c8334e9.tar.bz2
+/amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.gz
+/amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.bz2

diff --git a/amarok.spec b/amarok.spec
index 8d6b186..12047ba 100644
--- a/amarok.spec
+++ b/amarok.spec
@@ -1,13 +1,13 @@
-%global commit 387c30de482522774c28dc02c2636cd41c8334e9
+%global commit 7ec45dddb109fd391b900dad8705dacd4088a3c3
 %global shortcommit %(c=%{commit}; echo ${c:0:7})
-%global commitdate 20231231
+%global commitdate 20240330
 
 %global __provides_exclude_from ^%{_kf5_qmldir}/org/kde/amarok/.*\.so$
 
 Name:    amarok
 Summary: Media player
 Version: 2.9.71%{?commitdate:^git%{commitdate}.%{shortcommit}}
-Release: 3%{?dist}
+Release: 1%{?dist}
 
 # KDE e.V. may determine that future GPL versions are accepted
 License: GPL-2.0-only OR GPL-3.0-only
@@ -22,12 +22,6 @@ Source0: https://download.kde.org/%{stable_kf5}/amarok/%{version}/src/amarok-%{v
 # it causes amarok to crash on launch for some reason
 Patch1:  revert.patch
 
-# https://invent.kde.org/multimedia/amarok/-/merge_requests/55
-Patch2:  port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch
-
-# https://invent.kde.org/multimedia/amarok/-/merge_requests/53
-Patch3:  refresh-deprecated-codepaths.patch
-
 # Needed because not every distro installs mygpo-qt5 under the same path.
 # For instance, Fedora namespaces qt5
 Patch10: fix-mygpo-qt5-compilation.patch
@@ -255,6 +249,9 @@ desktop-file-validate %{buildroot}%{_kf5_datadir}/applications/org.kde.%{name}*.
 
 
 %changelog
+* Sun Mar 31 2024 Marc Deop i Argemí <marcdeop@fedoraproject.org> - 2.9.71^git20240330.7ec45dd-1
+- Update to snapshot 7ec45dddb109fd391b900dad8705dacd4088a3c3
+
 * Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.71^git20231231.387c30d-3
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
 

diff --git a/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch b/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch
deleted file mode 100644
index d712965..0000000
--- a/port-away-from-deprecated-QDesktopWidget-functions-and-disable-missing-OSD-settings-functionalities-on-Wayland.patch
+++ /dev/null
@@ -1,285 +0,0 @@
-From c60f5dab3729d587eb025afefaf1f5555706368d Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Thu, 9 Mar 2023 18:07:10 +0200
-Subject: [PATCH 1/3] Port away from deprecated QDesktopWidget functions.
-
-Following the instructions on https://doc.qt.io/qt-5/qdesktopwidget-obsolete.html
----
- src/covermanager/CoverManager.cpp        |  4 ++--
- src/covermanager/CoverViewDialog.cpp     |  3 +--
- src/dialogs/OrganizeCollectionDialog.cpp |  4 ++--
- src/widgets/Osd.cpp                      | 22 +++++++++++-----------
- src/widgets/PixmapViewer.cpp             |  6 +++---
- 5 files changed, 19 insertions(+), 20 deletions(-)
-
-diff --git a/src/covermanager/CoverManager.cpp b/src/covermanager/CoverManager.cpp
-index e67a89416a..eb0d63f637 100644
---- a/src/covermanager/CoverManager.cpp
-+++ b/src/covermanager/CoverManager.cpp
-@@ -39,11 +39,11 @@
- 
- #include <QAction>
- #include <QApplication>
--#include <QDesktopWidget>
- #include <QDialogButtonBox>
- #include <QMenu>    //showCoverMenu()
- #include <QProgressBar>
- #include <QPushButton>
-+#include <QScreen>
- #include <QSplitter>
- #include <QStatusBar>
- #include <QStringList>
-@@ -228,7 +228,7 @@ CoverManager::slotContinueConstruction() //SLOT
- 
-     connect( m_progress, &CompoundProgressBar::allDone, this, &CoverManager::progressAllDone );
- 
--    QSize size = QApplication::desktop()->screenGeometry( this ).size() / 1.5;
-+    QSize size = this->screen()->size() / 1.5;
-     QSize sz = Amarok::config( "Cover Manager" ).readEntry( "Window Size", size );
-     resize( sz.width(), sz.height() );
- 
-diff --git a/src/covermanager/CoverViewDialog.cpp b/src/covermanager/CoverViewDialog.cpp
-index bb01e1f7fb..d3a1b96f7e 100644
---- a/src/covermanager/CoverViewDialog.cpp
-+++ b/src/covermanager/CoverViewDialog.cpp
-@@ -25,7 +25,6 @@
- #include <KLocalizedString>
- #include <KWindowSystem>
- 
--#include <QDesktopWidget>
- #include <QHBoxLayout>
- #include <KConfigGroup>
- 
-@@ -72,7 +71,7 @@ CoverViewDialog::zoomFactorChanged( qreal value )
- void
- CoverViewDialog::createViewer( const QImage &image, const QWidget *widget )
- {
--    int screenNumber = QApplication::desktop()->screenNumber( widget );
-+    int screenNumber = QApplication::screens().indexOf( widget->screen() );
-     PixmapViewer *pixmapViewer = new PixmapViewer( this, QPixmap::fromImage(image), screenNumber );
-     QHBoxLayout *layout = new QHBoxLayout( this );
-     layout->addWidget( pixmapViewer );
-diff --git a/src/dialogs/OrganizeCollectionDialog.cpp b/src/dialogs/OrganizeCollectionDialog.cpp
-index fb59c98224..cfda1f109c 100644
---- a/src/dialogs/OrganizeCollectionDialog.cpp
-+++ b/src/dialogs/OrganizeCollectionDialog.cpp
-@@ -30,9 +30,9 @@
- #include "ui_OrganizeCollectionDialogBase.h"
- 
- #include <QApplication>
--#include <QDesktopWidget>
- #include <QDir>
- #include <QPushButton>
-+#include <QScreen>
- #include <QTimer>
- 
- #include <KColorScheme>
-@@ -84,7 +84,7 @@ OrganizeCollectionWidget::OrganizeCollectionWidget( QWidget *parent )
- 
-     // show some non-editable tags before and after
-     // but only if screen size is large enough (BR: 283361)
--    const QRect screenRect = QApplication::desktop()->screenGeometry();
-+    const QRect screenRect = QApplication::primaryScreen()->geometry();
-     if( screenRect.width() >= 1024 )
-     {
-         m_schemaLineLayout->insertWidget( 0,
-diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp
-index dc1cf722e3..062f3ceeb9 100644
---- a/src/widgets/Osd.cpp
-+++ b/src/widgets/Osd.cpp
-@@ -45,6 +45,7 @@
- #include <QPainter>
- #include <QPixmap>
- #include <QRegExp>
-+#include <QScreen>
- #include <QTimeLine>
- #include <QTimer>
- 
-@@ -245,7 +246,7 @@ OSDWidget::determineMetrics( const int M )
-     // determine a sensible maximum size, don't cover the whole desktop or cross the screen
-     const QSize margin( ( M + MARGIN ) * 2, ( M + MARGIN ) * 2 ); //margins
-     const QSize image = m_cover.isNull() ? QSize( 0, 0 ) : minImageSize;
--    const QSize max = QApplication::desktop()->screen( m_screen )->size() - margin;
-+    const QSize max = QApplication::screens()[ screen() ]->size() - margin;
- 
-     // If we don't do that, the boundingRect() might not be suitable for drawText() (Qt issue N67674)
-     m_text.replace( QRegExp( " +\n" ), "\n" );
-@@ -311,7 +312,7 @@ OSDWidget::determineMetrics( const int M )
-     rect.adjust( -M, -M, M, M );
- 
-     const QSize newSize = rect.size();
--    const QRect screen = QApplication::desktop()->screenGeometry( m_screen );
-+    const QRect screenRect = QApplication::screens()[ screen() ]->geometry();
-     QPoint newPos( MARGIN, m_yOffset );
- 
-     switch( m_alignment )
-@@ -320,25 +321,25 @@ OSDWidget::determineMetrics( const int M )
-             break;
- 
-         case Right:
--            newPos.rx() = screen.width() - MARGIN - newSize.width();
-+            newPos.rx() = screenRect.width() - MARGIN - newSize.width();
-             break;
- 
-         case Center:
--            newPos.ry() = ( screen.height() - newSize.height() ) / 2;
-+            newPos.ry() = ( screenRect.height() - newSize.height() ) / 2;
- 
-             Q_FALLTHROUGH();
- 
-         case Middle:
--            newPos.rx() = ( screen.width() - newSize.width() ) / 2;
-+            newPos.rx() = ( screenRect.width() - newSize.width() ) / 2;
-             break;
-     }
- 
-     //ensure we don't dip below the screen
--    if ( newPos.y() + newSize.height() > screen.height() - MARGIN )
--        newPos.ry() = screen.height() - MARGIN - newSize.height();
-+    if ( newPos.y() + newSize.height() > screenRect.height() - MARGIN )
-+        newPos.ry() = screenRect.height() - MARGIN - newSize.height();
- 
-     // correct for screen position
--    newPos += screen.topLeft();
-+    newPos += screenRect.topLeft();
- 
-     return QRect( newPos, rect.size() );
- }
-@@ -551,7 +552,7 @@ OSDPreviewWidget::mouseMoveEvent( QMouseEvent *e )
-     {
-         // Here we implement a "snap-to-grid" like positioning system for the preview widget
- 
--        const QRect screenRect  = QApplication::desktop()->screenGeometry( screen() );
-+        const QRect screenRect  = QApplication::screens()[ screen() ]->geometry();
-         const uint  hcenter     = screenRect.width() / 2;
-         const uint  eGlobalPosX = e->globalPos().x() - screenRect.left();
-         const uint  snapZone    = screenRect.width() / 24;
-@@ -592,8 +593,7 @@ OSDPreviewWidget::mouseMoveEvent( QMouseEvent *e )
-         move( destination );
- 
-         // compute current Position && Y-offset
--        QDesktopWidget *desktop = QApplication::desktop();
--        const int currentScreen = desktop->screenNumber( pos() );
-+        const int currentScreen = QGuiApplication::screens().indexOf( QGuiApplication::screenAt( pos() ) );
- 
-         // set new data
-         OSDWidget::setScreen( currentScreen );
-diff --git a/src/widgets/PixmapViewer.cpp b/src/widgets/PixmapViewer.cpp
-index 158540f541..332dbc5d5e 100644
---- a/src/widgets/PixmapViewer.cpp
-+++ b/src/widgets/PixmapViewer.cpp
-@@ -21,11 +21,11 @@
- 
- #include <QApplication>
- 
--#include <QDesktopWidget>
- #include <QMouseEvent>
- #include <QLabel>
- #include <QPixmap>
- #include <QPainter>
-+#include <QScreen>
- #include <QWheelEvent>
- 
- 
-@@ -35,8 +35,8 @@ PixmapViewer::PixmapViewer( QWidget *parent, const QPixmap &pix, int screenNumbe
- {
-     m_zoomFactor = 1.0; // initial zoom
- 
--    int screenWidth = QApplication::desktop()->availableGeometry( screenNumber ).width();
--    int screenHeight = QApplication::desktop()->availableGeometry( screenNumber ).height();
-+    int screenWidth = QApplication::screens()[ screenNumber ]->availableGeometry().width();
-+    int screenHeight = QApplication::screens()[ screenNumber ]->availableGeometry().height();
-     if( screenWidth < m_pixmap.width() || screenHeight < m_pixmap.height() )
-     {
-         qreal zoomFactorX = qreal(screenWidth) / m_pixmap.width();
--- 
-GitLab
-
-
-From b95c439ebba30ba257ba75d060b237a293415ea8 Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Sat, 11 Mar 2023 15:22:18 +0200
-Subject: [PATCH 2/3] Disable OSD options not available on Wayland.
-
----
- src/configdialog/dialogs/NotificationsConfig.cpp | 6 +++++-
- src/widgets/Osd.cpp                              | 8 ++++++--
- 2 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/src/configdialog/dialogs/NotificationsConfig.cpp b/src/configdialog/dialogs/NotificationsConfig.cpp
-index 0c16fdcb17..1c3387206a 100644
---- a/src/configdialog/dialogs/NotificationsConfig.cpp
-+++ b/src/configdialog/dialogs/NotificationsConfig.cpp
-@@ -51,7 +51,11 @@ NotificationsConfig::NotificationsConfig( Amarok2ConfigDialog* parent )
-     #endif
- 
-     // Enable/disable the translucency option depending on availability of desktop compositing
--    kcfg_OsdUseTranslucency->setEnabled( KWindowSystem::compositingActive() );
-+    // As opacity functionality is not available on Wayland at least with current implementation, don't enable option there
-+    kcfg_OsdUseTranslucency->setEnabled( !KWindowSystem::isPlatformWayland() && KWindowSystem::compositingActive() );
-+
-+    // Also disable other functionalities not (yet?) available on Wayland
-+    kcfg_OsdScreen->setEnabled( !KWindowSystem::isPlatformWayland() );
- 
-     connect( m_osdPreview, &OSDPreviewWidget::positionChanged, this, &NotificationsConfig::slotPositionChanged );
- 
-diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp
-index 062f3ceeb9..e29a1b2347 100644
---- a/src/widgets/Osd.cpp
-+++ b/src/widgets/Osd.cpp
-@@ -509,7 +509,9 @@ OSDPreviewWidget::OSDPreviewWidget( QWidget *parent )
-     setDuration( 0 );
-     setImage( Amarok::icon() );
-     setTranslucent( AmarokConfig::osdUseTranslucency() );
--    setText( i18n( "On-Screen-Display preview\nDrag to reposition" ) );
-+    // Drag-positioning not available on Wayland, so let's hide any untrue ideas about dragging
-+    // TODO maybe one day Wayland will be first-class OSD citizen
-+    setText( KWindowSystem::isPlatformWayland() ? i18n ( "Preview" ) : i18n( "On-Screen-Display preview\nDrag to reposition" ) );
- }
- 
- void
-@@ -517,7 +519,9 @@ OSDPreviewWidget::mousePressEvent( QMouseEvent *event )
- {
-     m_dragYOffset = event->pos();
- 
--    if( event->button() == Qt::LeftButton && !m_dragging )
-+    // As we can't position OSD on Wayland at the moment, and grabbing mouse doesn't quite work
-+    // either, let's disable this for now.
-+    if( !KWindowSystem::isPlatformWayland() && event->button() == Qt::LeftButton && !m_dragging )
-     {
-         grabMouse( Qt::SizeAllCursor );
-         m_dragging = true;
--- 
-GitLab
-
-
-From d70177ab4a57c3aecf63cfd3937044c575ee1a6a Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Sat, 11 Mar 2023 17:58:59 +0200
-Subject: [PATCH 3/3] Remove obsolete ifdef.
-
-Apparently Q_WS's are not defined any more. Turns out, if run, the setType
-actually makes the OSD positioning to go totally bonkers on X11, so let's just
-remove it.
----
- src/widgets/Osd.cpp | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp
-index e29a1b2347..1eee135be4 100644
---- a/src/widgets/Osd.cpp
-+++ b/src/widgets/Osd.cpp
-@@ -87,10 +87,6 @@ OSDWidget::OSDWidget( QWidget *parent, const char *name )
-     setObjectName( name );
-     setFocusPolicy( Qt::NoFocus );
- 
--    #ifdef Q_WS_X11
--    KWindowSystem::setType( winId(), NET::Notification );
--    #endif
--
-     m_timer->setSingleShot( true );
-     connect( m_timer, &QTimer::timeout, this, &OSDWidget::hide );
- 
--- 
-GitLab
-

diff --git a/refresh-deprecated-codepaths.patch b/refresh-deprecated-codepaths.patch
deleted file mode 100644
index 436f785..0000000
--- a/refresh-deprecated-codepaths.patch
+++ /dev/null
@@ -1,854 +0,0 @@
-From 33780eaddae9905a36ac96882c1ff1416a508082 Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Thu, 9 Mar 2023 13:58:44 +0200
-Subject: [PATCH 1/8] Make deprecated QMutex::Recursives QRecursiveMutexes.
-
-Reading https://doc.qt.io/qt-5/qrecursivemutex.html this should be
-a pretty straightforward change.
----
- src/EngineController.cpp                                | 1 -
- src/EngineController.h                                  | 4 ++--
- src/core-impl/collections/db/sql/SqlMeta.cpp            | 1 -
- src/core-impl/collections/db/sql/SqlMeta.h              | 4 ++--
- src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp | 1 -
- src/core-impl/storage/sql/mysql-shared/MySqlStorage.h   | 4 ++--
- src/core/playlists/Playlist.cpp                         | 4 +---
- src/core/playlists/Playlist.h                           | 6 +++---
- src/core/support/Debug.cpp                              | 4 ++--
- src/core/support/Debug.h                                | 4 ++--
- src/dynamic/biases/EchoNestBias.cpp                     | 1 -
- src/dynamic/biases/EchoNestBias.h                       | 4 ++--
- src/importers/ImporterSqlConnection.cpp                 | 3 ---
- src/importers/ImporterSqlConnection.h                   | 4 ++--
- src/services/lastfm/biases/LastFmBias.cpp               | 1 -
- src/services/lastfm/biases/LastFmBias.h                 | 4 ++--
- src/statusbar/CompoundProgressBar.cpp                   | 1 -
- src/statusbar/CompoundProgressBar.h                     | 4 ++--
- tests/TestExpression.cpp                                | 2 +-
- tests/TestQStringx.cpp                                  | 2 +-
- 20 files changed, 24 insertions(+), 35 deletions(-)
-
-diff --git a/src/EngineController.cpp b/src/EngineController.cpp
-index 8eea4c5921..5dd8db9190 100644
---- a/src/EngineController.cpp
-+++ b/src/EngineController.cpp
-@@ -84,7 +84,6 @@ EngineController::EngineController()
-     , m_tickInterval( 0 )
-     , m_lastTickPosition( -1 )
-     , m_lastTickCount( 0 )
--    , m_mutex( QMutex::Recursive )
- {
-     DEBUG_BLOCK
-     // ensure this object is created in a main thread
-diff --git a/src/EngineController.h b/src/EngineController.h
-index ca4ebfe132..0653868947 100644
---- a/src/EngineController.h
-+++ b/src/EngineController.h
-@@ -27,7 +27,7 @@
- #include "playback/EqualizerController.h"
- #include "core/meta/Meta.h"
- 
--#include <QMutex>
-+#include <QRecursiveMutex>
- #include <QObject>
- #include <QPointer>
- #include <QSemaphore>
-@@ -579,7 +579,7 @@ private:
-     qint64 m_lastTickPosition;
-     qint64 m_lastTickCount;
- 
--    QMutex m_mutex;
-+    QRecursiveMutex m_mutex;
- 
-     // FIXME: this variable should be updated when
-     // Phonon::BackendCapabilities::notifier()'s capabilitiesChanged signal is emitted
-diff --git a/src/core-impl/collections/db/sql/SqlMeta.cpp b/src/core-impl/collections/db/sql/SqlMeta.cpp
-index 5fd0b11abf..45e7513f3d 100644
---- a/src/core-impl/collections/db/sql/SqlMeta.cpp
-+++ b/src/core-impl/collections/db/sql/SqlMeta.cpp
-@@ -1471,7 +1471,6 @@ SqlAlbum::SqlAlbum( Collections::SqlCollection *collection, int id, const QStrin
-     , m_unsetImageId( -1 )
-     , m_tracksLoaded( NotLoaded )
-     , m_suppressAutoFetch( false )
--    , m_mutex( QMutex::Recursive )
- {
-     Q_ASSERT( m_collection );
-     Q_ASSERT( m_id > 0 );
-diff --git a/src/core-impl/collections/db/sql/SqlMeta.h b/src/core-impl/collections/db/sql/SqlMeta.h
-index cf0204ff9e..dd385b1c50 100644
---- a/src/core-impl/collections/db/sql/SqlMeta.h
-+++ b/src/core-impl/collections/db/sql/SqlMeta.h
-@@ -28,7 +28,7 @@
- 
- #include <QAtomicInt>
- #include <QByteArray>
--#include <QMutex>
-+#include <QRecursiveMutex>
- #include <QReadWriteLock>
- #include <QString>
- #include <QStringList>
-@@ -450,7 +450,7 @@ class AMAROK_SQLCOLLECTION_EXPORT SqlAlbum : public Meta::Album
-         bool m_suppressAutoFetch;
-         Meta::ArtistPtr m_artist;
-         Meta::TrackList m_tracks;
--        mutable QMutex m_mutex;
-+        mutable QRecursiveMutex m_mutex;
- 
-         //TODO: add album artist
- 
-diff --git a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp
-index e13a32951d..4b8cf3ca65 100644
---- a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp
-+++ b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.cpp
-@@ -90,7 +90,6 @@ QThreadStorage< ThreadInitializer* > ThreadInitializer::storage;
- MySqlStorage::MySqlStorage()
-     : SqlStorage()
-     , m_db( nullptr )
--    , m_mutex( QMutex::Recursive )
-     , m_debugIdent( "MySQL-none" )
- {
-     //Relevant code must be implemented in subclasses
-diff --git a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h
-index 2ff4fa1bec..7027072738 100644
---- a/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h
-+++ b/src/core-impl/storage/sql/mysql-shared/MySqlStorage.h
-@@ -22,7 +22,7 @@
- #include <mysql.h>
- 
- 
--#include <QMutex>
-+#include <QRecursiveMutex>
- #include <QString>
- 
- #ifdef Q_WS_WIN
-@@ -87,7 +87,7 @@ class MySqlStorage: public SqlStorage
-         MYSQL* m_db;
- 
-         /** Mutex protecting the m_lastErrors list */
--        mutable QMutex m_mutex;
-+        mutable QRecursiveMutex m_mutex;
- 
-         QString m_debugIdent;
-         QStringList m_lastErrors;
-diff --git a/src/core/playlists/Playlist.cpp b/src/core/playlists/Playlist.cpp
-index 06dee458a5..a77c726cd8 100644
---- a/src/core/playlists/Playlist.cpp
-+++ b/src/core/playlists/Playlist.cpp
-@@ -21,7 +21,6 @@
- using namespace Playlists;
- 
- PlaylistObserver::PlaylistObserver()
--    : m_playlistSubscriptionsMutex( QMutex::Recursive )  // prevent deadlocks
- {
- }
- 
-@@ -73,8 +72,7 @@ void PlaylistObserver::tracksLoaded( PlaylistPtr )
- }
- 
- Playlist::Playlist()
--    : m_observersMutex( QMutex::Recursive ) // prevent deadlocks
--    , m_async( true )
-+    : m_async( true )
- {
- }
- 
-diff --git a/src/core/playlists/Playlist.h b/src/core/playlists/Playlist.h
-index 1ff92df5a1..6a0b25965a 100644
---- a/src/core/playlists/Playlist.h
-+++ b/src/core/playlists/Playlist.h
-@@ -22,7 +22,7 @@
- 
- #include <QList>
- #include <QMetaType>
--#include <QMutex>
-+#include <QRecursiveMutex>
- #include <QPixmap>
- #include <QSet>
- #include <QSharedData>
-@@ -128,7 +128,7 @@ namespace Playlists
- 
-         private:
-             QSet<PlaylistPtr> m_playlistSubscriptions;
--            QMutex m_playlistSubscriptionsMutex; // guards access to m_playlistSubscriptions
-+            QRecursiveMutex m_playlistSubscriptionsMutex; // guards access to m_playlistSubscriptions
-     };
- 
-     class AMAROKCORE_EXPORT Playlist : public virtual QSharedData
-@@ -292,7 +292,7 @@ namespace Playlists
-              * write, even if it is recursive. This can cause deadlocks, so it would be
-              * never safe to lock it just for read.
-              */
--            QMutex m_observersMutex;
-+            QRecursiveMutex m_observersMutex;
-             bool m_async;
-     };
- }
-diff --git a/src/core/support/Debug.cpp b/src/core/support/Debug.cpp
-index 138c080b9a..50c6e5e830 100644
---- a/src/core/support/Debug.cpp
-+++ b/src/core/support/Debug.cpp
-@@ -24,7 +24,7 @@
- #include <KConfigCore/KConfigGroup>
- 
- #include <QApplication>
--#include <QMutex>
-+#include <QRecursiveMutex>
- #include <QObject>
- 
- #include <iostream>
-@@ -37,7 +37,7 @@
- 
- #define DEBUG_INDENT_OBJECTNAME QLatin1String("Debug_Indent_object")
- 
--AMAROKCORE_EXPORT QMutex Debug::mutex( QMutex::Recursive );
-+AMAROKCORE_EXPORT QRecursiveMutex Debug::mutex;
- 
- using namespace Debug;
- 
-diff --git a/src/core/support/Debug.h b/src/core/support/Debug.h
-index b0872f1b80..1504a8ea2b 100644
---- a/src/core/support/Debug.h
-+++ b/src/core/support/Debug.h
-@@ -26,7 +26,7 @@
- 
- #include "core/amarokcore_export.h"
- #include <QDebug>
--#include <QMutex>
-+#include <QRecursiveMutex>
- #include <QVariant>
- 
- // BEGIN: DEBUG_ASSERT
-@@ -116,7 +116,7 @@
-  */
- namespace Debug
- {
--    extern AMAROKCORE_EXPORT QMutex mutex;
-+    extern AMAROKCORE_EXPORT QRecursiveMutex mutex;
- 
-     // from kdebug.h
-     enum DebugLevel {
-diff --git a/src/dynamic/biases/EchoNestBias.cpp b/src/dynamic/biases/EchoNestBias.cpp
-index 5831fcd259..c14264326a 100644
---- a/src/dynamic/biases/EchoNestBias.cpp
-+++ b/src/dynamic/biases/EchoNestBias.cpp
-@@ -64,7 +64,6 @@ Dynamic::EchoNestBias::EchoNestBias()
-     : SimpleMatchBias()
-     , m_artistSuggestedQuery( nullptr )
-     , m_match( PreviousTrack )
--    , m_mutex( QMutex::Recursive )
- {
-     loadDataFromFile();
- }
-diff --git a/src/dynamic/biases/EchoNestBias.h b/src/dynamic/biases/EchoNestBias.h
-index 413cdb33d0..54eee360f5 100644
---- a/src/dynamic/biases/EchoNestBias.h
-+++ b/src/dynamic/biases/EchoNestBias.h
-@@ -20,7 +20,7 @@
- 
- #include "dynamic/biases/TagMatchBias.h"
- 
--#include <QMutex>
-+#include <QRecursiveMutex>
- 
- namespace KIO {
-     class StoredTransferJob;
-@@ -104,7 +104,7 @@ namespace Dynamic
- 
-             MatchType m_match;
- 
--            mutable QMutex m_mutex; // mutex protecting all of the below structures
-+            mutable QRecursiveMutex m_mutex; // mutex protecting all of the below structures
-             mutable QMap< QString, QStringList> m_similarArtistMap;
-             mutable QMap< QString, TrackSet> m_tracksMap;
- 
-diff --git a/src/importers/ImporterSqlConnection.cpp b/src/importers/ImporterSqlConnection.cpp
-index 8176baca85..0853279ebb 100644
---- a/src/importers/ImporterSqlConnection.cpp
-+++ b/src/importers/ImporterSqlConnection.cpp
-@@ -35,7 +35,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &driver,
-                                               const QString &user,
-                                               const QString &password )
-     : m_connectionName( QUuid::createUuid().toString() )
--    , m_apiMutex( QMutex::Recursive )
-     , m_openTransaction( false )
- {
-     QSqlDatabase db = QSqlDatabase::addDatabase( driver, m_connectionName );
-@@ -48,7 +47,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &driver,
- 
- ImporterSqlConnection::ImporterSqlConnection( const QString &dbPath )
-     : m_connectionName( QUuid::createUuid().toString() )
--    , m_apiMutex( QMutex::Recursive )
-     , m_openTransaction( false )
- {
-     QSqlDatabase db = QSqlDatabase::addDatabase( QStringLiteral("QSQLITE"), m_connectionName );
-@@ -57,7 +55,6 @@ ImporterSqlConnection::ImporterSqlConnection( const QString &dbPath )
- 
- ImporterSqlConnection::ImporterSqlConnection()
-     : m_connectionName( QUuid::createUuid().toString() )
--    , m_apiMutex( QMutex::Recursive )
-     , m_openTransaction( false )
- {
- }
-diff --git a/src/importers/ImporterSqlConnection.h b/src/importers/ImporterSqlConnection.h
-index b0b7c844e9..70896ef223 100644
---- a/src/importers/ImporterSqlConnection.h
-+++ b/src/importers/ImporterSqlConnection.h
-@@ -22,7 +22,7 @@
- #include "amarok_export.h"
- 
- #include <QList>
--#include <QMutex>
-+#include <QRecursiveMutex>
- #include <QPointer>
- #include <QSharedPointer>
- #include <QSqlDatabase>
-@@ -130,7 +130,7 @@ private:
- 
-     Qt::ConnectionType blockingConnectionType() const;
- 
--    QMutex m_apiMutex;
-+    QRecursiveMutex m_apiMutex;
-     bool m_openTransaction;
-     QList<QVariantList> m_result;
- 
-diff --git a/src/services/lastfm/biases/LastFmBias.cpp b/src/services/lastfm/biases/LastFmBias.cpp
-index af4ae2a987..468ca714aa 100644
---- a/src/services/lastfm/biases/LastFmBias.cpp
-+++ b/src/services/lastfm/biases/LastFmBias.cpp
-@@ -64,7 +64,6 @@ Dynamic::LastFmBiasFactory::createBias()
- Dynamic::LastFmBias::LastFmBias()
-     : SimpleMatchBias()
-     , m_match( SimilarArtist )
--    , m_mutex( QMutex::Recursive )
- {
-     loadDataFromFile();
- }
-diff --git a/src/services/lastfm/biases/LastFmBias.h b/src/services/lastfm/biases/LastFmBias.h
-index 2848b38d9a..77509dc9f1 100644
---- a/src/services/lastfm/biases/LastFmBias.h
-+++ b/src/services/lastfm/biases/LastFmBias.h
-@@ -20,7 +20,7 @@
- 
- #include "dynamic/biases/TagMatchBias.h"
- 
--#include <QMutex>
-+#include <QRecursiveMutex>
- 
- namespace Dynamic
- {
-@@ -95,7 +95,7 @@ namespace Dynamic
- 
-             MatchType m_match;
- 
--            mutable QMutex m_mutex; // mutex protecting all of the below structures
-+            mutable QRecursiveMutex m_mutex; // mutex protecting all of the below structures
-             mutable QMap< QString, QStringList> m_similarArtistMap;
-             mutable QMap< TitleArtistPair, QList<TitleArtistPair> > m_similarTrackMap;
-             mutable QMap< QString, TrackSet> m_tracksMap; // for artist AND album
-diff --git a/src/statusbar/CompoundProgressBar.cpp b/src/statusbar/CompoundProgressBar.cpp
-index 3741ff5b34..3f437ff432 100644
---- a/src/statusbar/CompoundProgressBar.cpp
-+++ b/src/statusbar/CompoundProgressBar.cpp
-@@ -26,7 +26,6 @@
- 
- CompoundProgressBar::CompoundProgressBar( QWidget *parent )
-         : ProgressBar( parent )
--        , m_mutex( QMutex::Recursive )
- {
-     m_progressDetailsWidget = new PopupWidget();
-     m_progressDetailsWidget->hide();
-diff --git a/src/statusbar/CompoundProgressBar.h b/src/statusbar/CompoundProgressBar.h
-index cfd5070c41..ed9e72012a 100644
---- a/src/statusbar/CompoundProgressBar.h
-+++ b/src/statusbar/CompoundProgressBar.h
-@@ -23,7 +23,7 @@
- #include <QList>
- #include <QMap>
- #include <QMouseEvent>
--#include <QMutex>
-+#include <QRecursiveMutex>
- 
- /**
-  * A progress bar that wraps a number of simple progress bars and displays their 
-@@ -75,7 +75,7 @@ private:
- 
-     QMap< const QObject *, ProgressBar *> m_progressMap;
-     PopupWidget *m_progressDetailsWidget;
--    QMutex m_mutex; // protecting m_progressMap consistency
-+    QRecursiveMutex m_mutex; // protecting m_progressMap consistency
- };
- 
- #endif
-diff --git a/tests/TestExpression.cpp b/tests/TestExpression.cpp
-index a84ee6f7f8..ea298c10c5 100644
---- a/tests/TestExpression.cpp
-+++ b/tests/TestExpression.cpp
-@@ -27,7 +27,7 @@
- QTEST_GUILESS_MAIN( TestExpression )
- 
- //required for Debug.h
--QMutex Debug::mutex;
-+QRecursiveMutex Debug::mutex;
- 
- TestExpression::TestExpression()
- {
-diff --git a/tests/TestQStringx.cpp b/tests/TestQStringx.cpp
-index 7b96d83ae9..010db2252e 100644
---- a/tests/TestQStringx.cpp
-+++ b/tests/TestQStringx.cpp
-@@ -28,7 +28,7 @@
- QTEST_GUILESS_MAIN( TestQStringx )
- 
- //required for Debug.h
--QMutex Debug::mutex;
-+QRecursiveMutex Debug::mutex;
- 
- TestQStringx::TestQStringx()
- {
--- 
-GitLab
-
-
-From 413efb028f41808e9a59166805f4a8ec73737237 Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Thu, 9 Mar 2023 17:33:54 +0200
-Subject: [PATCH 2/8] Use more-recently-deprecated codepaths.
-
-KDeclarative::setupBindings() is deprecated since 5.45 and current
-KF5_MIN_VERSION is 5.57, so this is probably a feasible thing to do.
----
- src/context/ContextView.cpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/context/ContextView.cpp b/src/context/ContextView.cpp
-index 9e3ba064d2..1aa3fc70af 100644
---- a/src/context/ContextView.cpp
-+++ b/src/context/ContextView.cpp
-@@ -60,7 +60,8 @@ ContextView::ContextView( QWidget *parent )
- 
-     KDeclarative::KDeclarative decl;
-     decl.setDeclarativeEngine( engine() );
--    decl.setupBindings();
-+    engine()->rootContext()->setContextObject( new KLocalizedContext( this ) );
-+    decl.setupEngine( engine() );
- 
-     connect( this, &QQuickWidget::statusChanged, this, &ContextView::slotStatusChanged );
-     connect( The::paletteHandler(), &PaletteHandler::newPalette, this, &ContextView::updatePalette );
--- 
-GitLab
-
-
-From f212bcb2466a2faee48ff43c631a67335c42b2f0 Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Thu, 9 Mar 2023 17:39:18 +0200
-Subject: [PATCH 3/8] Port away from deprecated QDesktopWidget::numScreens.
-
-Replace with QGuiApplication::screens() based approaches as instructed on
-https://doc.qt.io/qt-5/qdesktopwidget-obsolete.html#numScreens
----
- src/configdialog/dialogs/NotificationsConfig.cpp | 2 +-
- src/widgets/Osd.cpp                              | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/configdialog/dialogs/NotificationsConfig.cpp b/src/configdialog/dialogs/NotificationsConfig.cpp
-index 0c16fdcb17..00a15f6bef 100644
---- a/src/configdialog/dialogs/NotificationsConfig.cpp
-+++ b/src/configdialog/dialogs/NotificationsConfig.cpp
-@@ -55,7 +55,7 @@ NotificationsConfig::NotificationsConfig( Amarok2ConfigDialog* parent )
- 
-     connect( m_osdPreview, &OSDPreviewWidget::positionChanged, this, &NotificationsConfig::slotPositionChanged );
- 
--    const int numScreens = QApplication::desktop()->numScreens();
-+    const int numScreens = QApplication::screens().size();
-     for( int i = 0; i < numScreens; i++ )
-         kcfg_OsdScreen->addItem( QString::number( i ) );
- 
-diff --git a/src/widgets/Osd.cpp b/src/widgets/Osd.cpp
-index dc1cf722e3..4de9749a76 100644
---- a/src/widgets/Osd.cpp
-+++ b/src/widgets/Osd.cpp
-@@ -463,7 +463,7 @@ OSDWidget::setTextColor(const QColor& color)
- void
- OSDWidget::setScreen( int screen )
- {
--    const int n = QApplication::desktop()->numScreens();
-+    const int n = QApplication::screens().size();
-     m_screen = ( screen >= n ) ? n - 1 : screen;
- }
- 
--- 
-GitLab
-
-
-From d9cf76b03ea64bc7fa4c40a65f4de2fdc6d57fdc Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Thu, 9 Mar 2023 18:34:21 +0200
-Subject: [PATCH 4/8] Avoid some warnings from a TODO function.
-
----
- src/scripting/scriptengine/AmarokLyricsScript.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/scripting/scriptengine/AmarokLyricsScript.cpp b/src/scripting/scriptengine/AmarokLyricsScript.cpp
-index d4b5eedd5a..fae437130d 100644
---- a/src/scripting/scriptengine/AmarokLyricsScript.cpp
-+++ b/src/scripting/scriptengine/AmarokLyricsScript.cpp
-@@ -97,6 +97,8 @@ AmarokLyricsScript::escape( const QString &str )
- void
- AmarokLyricsScript::setLyricsForTrack( const QString &trackUrl, const QString &lyrics ) const
- {
-+    Q_UNUSED( trackUrl );
-+    Q_UNUSED( lyrics );
-     /* TODO - convert method invocation below
-     LyricsManager::instance()->setLyricsForTrack( trackUrl, lyrics );
-     */
--- 
-GitLab
-
-
-From 3dd0add1d17d52132db13ef74f74034d14c4ffb6 Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Thu, 9 Mar 2023 18:39:01 +0200
-Subject: [PATCH 5/8] Use non-deprecated signals.
-
-Introduced in Qt 5.15 ( https://doc.qt.io/qt-5/qsignalmapper.html#mappedObject
-https://doc.qt.io/qt-5/qsignalmapper.html#mappedString ), which is currently
-the minimum version for us.
----
- src/network/NetworkAccessViewer.cpp        | 2 +-
- src/playlistgenerator/PresetEditDialog.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/network/NetworkAccessViewer.cpp b/src/network/NetworkAccessViewer.cpp
-index 38f50ed038..5454ab8819 100644
---- a/src/network/NetworkAccessViewer.cpp
-+++ b/src/network/NetworkAccessViewer.cpp
-@@ -33,7 +33,7 @@ NetworkAccessViewer::NetworkAccessViewer( QWidget *parent )
-     networkRequestsDialog->setupUi(dialog);
- 
-     mapper = new QSignalMapper(this);
--    connect( mapper, QOverload<QObject*>::of(&QSignalMapper::mapped),
-+    connect( mapper, QOverload<QObject*>::of(&QSignalMapper::mappedObject),
-              this, &NetworkAccessViewer::requestFinished );
- 
-     connect( networkRequestsDialog->requestList, &QTreeWidget::currentItemChanged, this, &NetworkAccessViewer::showItemDetails );
-diff --git a/src/playlistgenerator/PresetEditDialog.cpp b/src/playlistgenerator/PresetEditDialog.cpp
-index 7ef060ce22..fcf0f8e2d0 100644
---- a/src/playlistgenerator/PresetEditDialog.cpp
-+++ b/src/playlistgenerator/PresetEditDialog.cpp
-@@ -52,7 +52,7 @@ APG::PresetEditDialog::PresetEditDialog( const PresetPtr &p )
-     ui.constraintTreeView->expandAll();
- 
-     QSignalMapper* adderMapper = new QSignalMapper( this );
--    connect( adderMapper, QOverload<const QString&>::of(&QSignalMapper::mapped),
-+    connect( adderMapper, QOverload<const QString&>::of(&QSignalMapper::mappedString),
-              this, &PresetEditDialog::addNode );
- 
-     QMenuBar* menuBar_Actions = new QMenuBar( this );
--- 
-GitLab
-
-
-From 5f27e8531b603b82aa7d3371868e2425a1095b77 Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Thu, 9 Mar 2023 18:51:44 +0200
-Subject: [PATCH 6/8] Port away from deprecated TagLib::String::Null.
-
-As instructed on https://taglib.org/api/classTagLib_1_1String.html#ae5f42b9ceca1b59814cffc2eddff3d09
-and https://taglib.org/api/classTagLib_1_1String.html#a8c35a7ec22fdfcf8afaf3edee01a01e0
----
- shared/tag_helpers/APETagHelper.cpp           | 2 +-
- shared/tag_helpers/ASFTagHelper.cpp           | 2 +-
- shared/tag_helpers/ID3v2TagHelper.cpp         | 2 +-
- shared/tag_helpers/MP4TagHelper.cpp           | 2 +-
- shared/tag_helpers/StringHelper.cpp           | 2 +-
- shared/tag_helpers/VorbisCommentTagHelper.cpp | 2 +-
- 6 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/shared/tag_helpers/APETagHelper.cpp b/shared/tag_helpers/APETagHelper.cpp
-index eee34e05a3..66e8510a53 100644
---- a/shared/tag_helpers/APETagHelper.cpp
-+++ b/shared/tag_helpers/APETagHelper.cpp
-@@ -84,7 +84,7 @@ APETagHelper::setTags( const Meta::FieldHash &changes )
-         QVariant value = changes.value( key );
-         TagLib::String field = fieldName( key );
- 
--        if( !field.isNull() && !field.isEmpty() )
-+        if( !field.isEmpty() )
-         {
-             if( key == Meta::valRating )
-                 m_tag->addValue( field, Qt4QStringToTString( QString::number( value.toFloat() / 10.0 ) ) );
-diff --git a/shared/tag_helpers/ASFTagHelper.cpp b/shared/tag_helpers/ASFTagHelper.cpp
-index 241e93d714..772728b58f 100644
---- a/shared/tag_helpers/ASFTagHelper.cpp
-+++ b/shared/tag_helpers/ASFTagHelper.cpp
-@@ -107,7 +107,7 @@ ASFTagHelper::setTags( const Meta::FieldHash &changes )
-         QVariant value = changes.value( key );
-         TagLib::String field = fieldName( key );
- 
--        if( !field.isNull() && !field.isEmpty() )
-+        if( !field.isEmpty() )
-         {
-             if( key == Meta::valHasCover )
-                 continue;
-diff --git a/shared/tag_helpers/ID3v2TagHelper.cpp b/shared/tag_helpers/ID3v2TagHelper.cpp
-index ea9281dc30..7dd98062bc 100644
---- a/shared/tag_helpers/ID3v2TagHelper.cpp
-+++ b/shared/tag_helpers/ID3v2TagHelper.cpp
-@@ -187,7 +187,7 @@ ID3v2TagHelper::setTags( const Meta::FieldHash &changes )
-         QVariant value = changes.value( key );
-         TagLib::ByteVector field( fieldName( key ).toCString() );
- 
--        if( !field.isNull() && !field.isEmpty() )
-+        if( !field.isEmpty() )
-         {
-             if( key == Meta::valHasCover )
-                 continue;
-diff --git a/shared/tag_helpers/MP4TagHelper.cpp b/shared/tag_helpers/MP4TagHelper.cpp
-index 7a28b4473c..54d192ffae 100644
---- a/shared/tag_helpers/MP4TagHelper.cpp
-+++ b/shared/tag_helpers/MP4TagHelper.cpp
-@@ -106,7 +106,7 @@ MP4TagHelper::setTags( const Meta::FieldHash &changes )
-         QVariant value = changes.value( key );
-         TagLib::String field = fieldName( key );
- 
--        if( !field.isNull() && !field.isEmpty() )
-+        if( !field.isEmpty() )
-         {
-             // http://gitorious.org/~jefferai/xdg-specs/jefferais-xdg-specs/blobs/mediaspecs/specifications/FMPSpecs/specification.txt sais that mp4 tags should be saved as strings
-             if( key == Meta::valHasCover )
-diff --git a/shared/tag_helpers/StringHelper.cpp b/shared/tag_helpers/StringHelper.cpp
-index fd7e49b432..a8d2aa3e97 100644
---- a/shared/tag_helpers/StringHelper.cpp
-+++ b/shared/tag_helpers/StringHelper.cpp
-@@ -36,7 +36,7 @@ Meta::Tag::Qt4QStringToTString( const QString &str )
- {
-     // Declare new var to prevent double call of trimmed func
-     QString val = str.trimmed();
--    return val.isEmpty() ? TagLib::String::null : TagLib::String( val.toUtf8().data(), TagLib::String::UTF8 );
-+    return val.isEmpty() ? TagLib::String() : TagLib::String( val.toUtf8().data(), TagLib::String::UTF8 );
- }
- 
- QString
-diff --git a/shared/tag_helpers/VorbisCommentTagHelper.cpp b/shared/tag_helpers/VorbisCommentTagHelper.cpp
-index f3ff542db6..95dc041d8a 100644
---- a/shared/tag_helpers/VorbisCommentTagHelper.cpp
-+++ b/shared/tag_helpers/VorbisCommentTagHelper.cpp
-@@ -151,7 +151,7 @@ VorbisCommentTagHelper::setTags( const Meta::FieldHash &changes )
-         QVariant value = changes.value( key );
-         TagLib::String field = fieldName( key );
- 
--        if( !field.isNull() && !field.isEmpty() )
-+        if( !field.isEmpty() )
-         {
-             if( key == Meta::valHasCover )
-                 continue;
--- 
-GitLab
-
-
-From 45fbce7eff1d4e38751db49f6ee0c4ede884e44e Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Thu, 9 Mar 2023 19:22:02 +0200
-Subject: [PATCH 7/8] Port away from KDiskFreeSpaceInfo.
-
-Deprecated in KF 5.88. QStorageInfo is available since Qt 5.4, and actually
-provides better functionality with bytesAvailable() instead of just bytesFree().
----
- .../db/sql/SqlCollectionLocation.cpp          | 24 +++++++------------
- .../ipodcollection/IpodCollection.cpp         |  8 +++----
- .../MediaDeviceCollection.cpp                 |  2 --
- .../umscollection/UmsCollection.cpp           |  6 ++---
- 4 files changed, 16 insertions(+), 24 deletions(-)
-
-diff --git a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp
-index 7f761432ef..2f6835c073 100644
---- a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp
-+++ b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp
-@@ -38,8 +38,8 @@
- #include <QDir>
- #include <QFile>
- #include <QFileInfo>
-+#include <QStorageInfo>
- 
--#include <KDiskFreeSpaceInfo>
- #include <KFileItem>
- #include <KJob>
- #include <KIO/DeleteJob>
-@@ -90,13 +90,7 @@ SqlCollectionLocation::isWritable() const
-     QStringList folders = actualLocation();
-     foreach( const QString &path, folders )
-     {
--        float used = KDiskFreeSpaceInfo::freeSpaceInfo( path ).used();
--        float total = KDiskFreeSpaceInfo::freeSpaceInfo( path ).size();
--
--        if( total <= 0 ) // protect against div by zero
--            continue; //How did this happen?
--
--        float free_space = total - used;
-+        float free_space = QStorageInfo( path ).bytesAvailable();
-         if( free_space >= 500*1000*1000 ) // ~500 megabytes
-             path_exists_with_space = true;
- 
-@@ -298,18 +292,18 @@ SqlCollectionLocation::showDestinationDialog( const Meta::TrackList &tracks,
-         if( path.isEmpty() )
-             continue;
-         debug() << "Path" << path;
--        KDiskFreeSpaceInfo spaceInfo = KDiskFreeSpaceInfo::freeSpaceInfo( path );
-+        QStorageInfo spaceInfo(path);
-         if( !spaceInfo.isValid() )
-             continue;
- 
--        KIO::filesize_t totalCapacity = spaceInfo.size();
--        KIO::filesize_t used = spaceInfo.used();
-+        KIO::filesize_t totalCapacity = spaceInfo.bytesTotal();
-+        KIO::filesize_t used = totalCapacity - spaceInfo.bytesFree();
- 
--        KIO::filesize_t freeSpace = totalCapacity - used;
-+        KIO::filesize_t availableSpace = spaceInfo.bytesAvailable();
- 
-         debug() << "used:" << used;
-         debug() << "total:" << totalCapacity;
--        debug() << "Free space" << freeSpace;
-+        debug() << "Available space" << availableSpace;
-         debug() << "transfersize" << transferSize;
- 
-         if( totalCapacity <= 0 ) // protect against div by zero
-@@ -320,8 +314,8 @@ SqlCollectionLocation::showDestinationDialog( const Meta::TrackList &tracks,
-         // since bad things happen when drives become totally full
- 	// we make sure there is at least ~500MB left
-         // finally, ensure the path is writable
--        debug() << ( freeSpace - transferSize );
--        if( ( freeSpace - transferSize ) > 1024*1024*500 && info.isWritable() )
-+        debug() << ( availableSpace - transferSize );
-+        if( ( availableSpace - transferSize ) > 1024*1024*500 && info.isWritable() )
-             available_folders << path;
-     }
- 
-diff --git a/src/core-impl/collections/ipodcollection/IpodCollection.cpp b/src/core-impl/collections/ipodcollection/IpodCollection.cpp
-index cd555ca47f..1aab224054 100644
---- a/src/core-impl/collections/ipodcollection/IpodCollection.cpp
-+++ b/src/core-impl/collections/ipodcollection/IpodCollection.cpp
-@@ -34,7 +34,6 @@
- #include "core-impl/collections/support/MemoryQueryMaker.h"
- #include "playlistmanager/PlaylistManager.h"
- 
--#include <KDiskFreeSpaceInfo>
- #include <solid/device.h>
- #include <solid/predicate.h>
- #include <solid/storageaccess.h>
-@@ -47,6 +46,7 @@
- #include <KConfigGroup>
- #include <QDialogButtonBox>
- #include <QPushButton>
-+#include <QStorageInfo>
- #include <QVBoxLayout>
- 
- 
-@@ -261,19 +261,19 @@ IpodCollection::icon() const
- bool
- IpodCollection::hasCapacity() const
- {
--    return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).isValid();
-+    return QStorageInfo( m_mountPoint ).isValid();
- }
- 
- float
- IpodCollection::usedCapacity() const
- {
--    return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).used();
-+    return QStorageInfo( m_mountPoint ).bytesTotal() - QStorageInfo( m_mountPoint ).bytesFree();
- }
- 
- float
- IpodCollection::totalCapacity() const
- {
--    return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).size();
-+    return QStorageInfo( m_mountPoint ).bytesTotal();
- }
- 
- Collections::CollectionLocation*
-diff --git a/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp b/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp
-index 0eec859ffd..f6795e733a 100644
---- a/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp
-+++ b/src/core-impl/collections/mediadevicecollection/MediaDeviceCollection.cpp
-@@ -24,8 +24,6 @@
- #include "core-impl/collections/mediadevicecollection/support/MediaDeviceInfo.h"
- #include "core-impl/collections/support/MemoryQueryMaker.h"
- 
--#include <KDiskFreeSpaceInfo>
--
- using namespace Collections;
- 
- MediaDeviceCollectionFactoryBase::MediaDeviceCollectionFactoryBase( ConnectionAssistant* assistant )
-diff --git a/src/core-impl/collections/umscollection/UmsCollection.cpp b/src/core-impl/collections/umscollection/UmsCollection.cpp
-index 32873350e9..0ac4b438fb 100644
---- a/src/core-impl/collections/umscollection/UmsCollection.cpp
-+++ b/src/core-impl/collections/umscollection/UmsCollection.cpp
-@@ -44,12 +44,12 @@
- #include <Solid/StorageDrive>
- #include <Solid/StorageVolume>
- 
-+#include <QStorageInfo>
- #include <QThread>
- #include <QTimer>
- #include <QUrl>
- 
- #include <KConfigGroup>
--#include <KDiskFreeSpaceInfo>
- 
- 
- UmsCollectionFactory::UmsCollectionFactory()
-@@ -407,13 +407,13 @@ UmsCollection::hasCapacity() const
- float
- UmsCollection::usedCapacity() const
- {
--    return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).used();
-+    return QStorageInfo( m_mountPoint ).bytesTotal()-QStorageInfo( m_mountPoint ).bytesFree();
- }
- 
- float
- UmsCollection::totalCapacity() const
- {
--    return KDiskFreeSpaceInfo::freeSpaceInfo( m_mountPoint ).size();
-+    return QStorageInfo( m_mountPoint ).bytesTotal();
- }
- 
- CollectionLocation *
--- 
-GitLab
-
-
-From 7b1af767ba420e175a0f2f3c0486a3e49730c33e Mon Sep 17 00:00:00 2001
-From: Tuomas Nurmi <tuomas@norsumanageri.org>
-Date: Fri, 10 Mar 2023 19:41:19 +0200
-Subject: [PATCH 8/8] Update KF5 and Qt5 requirements in README.
-
----
- README | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/README b/README
-index f2639a2a7c..346094923f 100644
---- a/README
-+++ b/README
-@@ -39,14 +39,14 @@ not be entirely up to date. You can always look at CMakeLists.txt to discover
- the most recent dependencies.
- 
- Required
--    * KDE Frameworks 5.41 (or newer, for an exact list look at CMakeLists.txt)
-+    * KDE Frameworks 5.57 (or newer, for an exact list look at CMakeLists.txt)
-       https://www.kde.org
- 
-     * Phonon 4.6.60 (or newer with support for Qt5) and one of the following backends:
-       * phonon-gstreamer 4.6.3 (or newer)
-       * phonon-vlc 0.6.1 (or newer; as of 0.6.1 doesn't yet play Audio CDs, bug 313046)
- 
--    * Qt 5.10 (or newer)
-+    * Qt 5.15
-       https://qt.io/
- 
-     * TagLib 1.7 (or newer)
--- 
-GitLab
-

diff --git a/sources b/sources
index 283aa6a..b08545e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (amarok-387c30de482522774c28dc02c2636cd41c8334e9.tar.bz2) = b474d591ba106002e202624c76c8ecde1014061c40a155875ecc65c0a53493d23af565e3facabc9de3403e735044862dc53b7d9bd85cb61d1ee8212082734af4
+SHA512 (amarok-7ec45dddb109fd391b900dad8705dacd4088a3c3.tar.bz2) = 0d0d647c452a2f1e019f9ab73749b6c19856cf598143a3bb6effb8c01410c17b33216fd017d788f20f24b2c7dbd4ae4e8c3ce824124678ba74db75f6553ee622

                 reply	other threads:[~2026-07-06 18:32 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178336274798.1.1840417404953809738.rpms-amarok-4cd84c70123a@fedoraproject.org \
    --to=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox