From 2890190c82ebaf45e0b7e5e38523ad1e8c44d0e1 Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Tue, 9 Dec 2014 00:07:46 +0100 Subject: [PATCH] Remove LinkGeneratorPlugins from LinkGenerator on destruction --- src/libtomahawk/utils/LinkGenerator.cpp | 7 +++++++ src/libtomahawk/utils/LinkGenerator.h | 1 + src/libtomahawk/utils/LinkGeneratorPlugin.cpp | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/src/libtomahawk/utils/LinkGenerator.cpp b/src/libtomahawk/utils/LinkGenerator.cpp index 085264e90..58dadf61e 100644 --- a/src/libtomahawk/utils/LinkGenerator.cpp +++ b/src/libtomahawk/utils/LinkGenerator.cpp @@ -72,6 +72,13 @@ void LinkGenerator::addPlugin( LinkGeneratorPlugin* plugin ) } +void +LinkGenerator::removePlugin( LinkGeneratorPlugin* plugin ) +{ + m_plugins.removeAll( plugin ); +} + + void LinkGenerator::copyScriptJobResultToClipboard( const QVariantMap& data ) { diff --git a/src/libtomahawk/utils/LinkGenerator.h b/src/libtomahawk/utils/LinkGenerator.h index 1ad111a3c..76f6cd036 100644 --- a/src/libtomahawk/utils/LinkGenerator.h +++ b/src/libtomahawk/utils/LinkGenerator.h @@ -41,6 +41,7 @@ public: virtual ~LinkGenerator(); void addPlugin( LinkGeneratorPlugin* plugin ); + void removePlugin( LinkGeneratorPlugin* plugin ); // TODO: openLink(QString, QString, QString) is a rather annoying special case. Can we get rid of it? ScriptJob* openLink( const QString& title, const QString& artist, const QString& album ) const diff --git a/src/libtomahawk/utils/LinkGeneratorPlugin.cpp b/src/libtomahawk/utils/LinkGeneratorPlugin.cpp index ab777c2d6..8501265b7 100644 --- a/src/libtomahawk/utils/LinkGeneratorPlugin.cpp +++ b/src/libtomahawk/utils/LinkGeneratorPlugin.cpp @@ -17,6 +17,8 @@ */ #include "LinkGeneratorPlugin.h" +#include "LinkGenerator.h" + #include "../Query.h" #include "../Track.h" #include "../Artist.h" @@ -24,6 +26,8 @@ Tomahawk::Utils::LinkGeneratorPlugin::~LinkGeneratorPlugin() { + // do this on destroyed() if you ever make this a QObject + LinkGenerator::instance()->removePlugin( this ); }