From 3311ba3a67da5d5590ef7c8f8fd1ecc31b6610a7 Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Mon, 10 Jun 2019 14:07:05 +0300 Subject: [PATCH] Use lambdas instead of QSignalMapper Reviewers: #okular, aacid Reviewed By: #okular, aacid Subscribers: okular-devel Tags: #okular Differential Revision: https://phabricator.kde.org/D17481 --- core/audioplayer.cpp | 11 ++++++----- core/audioplayer.h | 1 - core/audioplayer_p.h | 3 --- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/core/audioplayer.cpp b/core/audioplayer.cpp index 3188fe6a0..5e89d4840 100644 --- a/core/audioplayer.cpp +++ b/core/audioplayer.cpp @@ -90,7 +90,6 @@ public: AudioPlayerPrivate::AudioPlayerPrivate( AudioPlayer * qq ) : q( qq ), m_state( AudioPlayer::StoppedState ) { - QObject::connect( &m_mapper, SIGNAL(mapped(int)), q, SLOT(finished(int)) ); } AudioPlayerPrivate::~AudioPlayerPrivate() @@ -131,7 +130,9 @@ bool AudioPlayerPrivate::play( const SoundInfo& si ) if ( !url.isEmpty() ) { int newid = newId(); - m_mapper.setMapping( data->m_mediaobject, newid ); + QObject::connect( data->m_mediaobject, &Phonon::MediaObject::finished, q, [this, newid]() { + finished(newid); + }); QUrl newurl; if ( QUrl::fromUserInput(url).isRelative() ) { @@ -156,7 +157,9 @@ bool AudioPlayerPrivate::play( const SoundInfo& si ) { qCDebug(OkularCoreDebug) << "Mediaobject:" << data->m_mediaobject; int newid = newId(); - m_mapper.setMapping( data->m_mediaobject, newid ); + QObject::connect( data->m_mediaobject, &Phonon::MediaObject::finished, q, [this, newid]() { + finished(newid); + }); data->m_buffer = new QBuffer(); data->m_buffer->setData( filedata ); data->m_mediaobject->setCurrentSource( Phonon::MediaSource( data->m_buffer ) ); @@ -173,7 +176,6 @@ bool AudioPlayerPrivate::play( const SoundInfo& si ) } if ( data ) { - QObject::connect( data->m_mediaobject, SIGNAL(finished()), &m_mapper, SLOT(map()) ); qCDebug(OkularCoreDebug) << "PLAY"; data->play(); m_state = AudioPlayer::PlayingState; @@ -203,7 +205,6 @@ void AudioPlayerPrivate::finished( int id ) } else { - m_mapper.removeMappings( it.value()->m_mediaobject ); delete it.value(); m_playing.erase( it ); m_state = AudioPlayer::StoppedState; diff --git a/core/audioplayer.h b/core/audioplayer.h index 9b28be260..ad06370b4 100644 --- a/core/audioplayer.h +++ b/core/audioplayer.h @@ -81,7 +81,6 @@ class OKULARCORE_EXPORT AudioPlayer : public QObject friend class Document; Q_DISABLE_COPY( AudioPlayer ) - Q_PRIVATE_SLOT( d, void finished( int ) ) }; } diff --git a/core/audioplayer_p.h b/core/audioplayer_p.h index 1991ca33b..53fd2896d 100644 --- a/core/audioplayer_p.h +++ b/core/audioplayer_p.h @@ -12,7 +12,6 @@ // qt/kde includes #include -#include #include class PlayData; @@ -33,13 +32,11 @@ public: bool play( const SoundInfo& si ); void stopPlayings(); - // private slots void finished( int ); AudioPlayer * q; QHash< int, PlayData * > m_playing; - QSignalMapper m_mapper; QUrl m_currentDocument; AudioPlayer::State m_state; };