From bed79d9fdf3eb96ecc8cd8a672c61cdd6cdca212 Mon Sep 17 00:00:00 2001 From: Kurt Hindenburg Date: Mon, 8 Jan 2018 22:24:35 -0500 Subject: [PATCH] convert QSignalMapper (session finished) to lambda --- src/SessionManager.cpp | 17 +++++------------ src/SessionManager.h | 2 +- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/SessionManager.cpp b/src/SessionManager.cpp index dda1b0c2..565c6c72 100644 --- a/src/SessionManager.cpp +++ b/src/SessionManager.cpp @@ -26,7 +26,6 @@ // Qt #include -#include #include // KDE @@ -43,11 +42,6 @@ using namespace Konsole; SessionManager::SessionManager() { - //map finished() signals from sessions - _sessionMapper = new QSignalMapper(this); - connect(_sessionMapper, static_cast(&QSignalMapper::mapped), - this, &Konsole::SessionManager::sessionTerminated); - ProfileManager *profileMananger = ProfileManager::instance(); connect(profileMananger, &Konsole::ProfileManager::profileChanged, this, &Konsole::SessionManager::profileChanged); @@ -107,9 +101,10 @@ Session *SessionManager::createSession(Profile::Ptr profile) &Konsole::SessionManager::sessionProfileCommandReceived); //ask for notification when session dies - _sessionMapper->setMapping(session, session); - connect(session, &Konsole::Session::finished, _sessionMapper, - static_cast(&QSignalMapper::map)); + connect(session, &Konsole::Session::finished, this, + [this, session]() { + sessionTerminated(session); + }); //add session to active list _sessions << session; @@ -123,10 +118,8 @@ void SessionManager::profileChanged(Profile::Ptr profile) applyProfile(profile, true); } -void SessionManager::sessionTerminated(QObject *sessionObject) +void SessionManager::sessionTerminated(Session *session) { - Session *session = qobject_cast(sessionObject); - Q_ASSERT(session); _sessions.removeAll(session); diff --git a/src/SessionManager.h b/src/SessionManager.h index 76202b5f..e8e64f61 100644 --- a/src/SessionManager.h +++ b/src/SessionManager.h @@ -107,7 +107,7 @@ protected Q_SLOTS: * * @param session The Session which has finished executing. */ - void sessionTerminated(QObject *sessionObject); + void sessionTerminated(Session *session); private Q_SLOTS: void sessionProfileCommandReceived(const QString &text);