diff --git a/src/internet/internetmodel.cpp b/src/internet/internetmodel.cpp index 428be65ef..5facb76cf 100644 --- a/src/internet/internetmodel.cpp +++ b/src/internet/internetmodel.cpp @@ -103,6 +103,8 @@ void InternetModel::AddService(InternetService *service) { connect(service, SIGNAL(AddToPlaylistSignal(QMimeData*)), SIGNAL(AddToPlaylist(QMimeData*))); connect(service, SIGNAL(ScrollToIndex(QModelIndex)), SIGNAL(ScrollToIndex(QModelIndex))); connect(service, SIGNAL(destroyed()), SLOT(ServiceDeleted())); + NewClosure(service, SIGNAL(destroyed()), this, + SLOT(ServiceDeleted(InternetService*)), service); service->ReloadSettings(); } @@ -127,8 +129,7 @@ void InternetModel::RemoveService(InternetService* service) { disconnect(service, 0, this, 0); } -void InternetModel::ServiceDeleted() { - InternetService* service = qobject_cast(sender()); +void InternetModel::ServiceDeleted(InternetService* service) { if (service) RemoveService(service); } diff --git a/src/internet/internetmodel.h b/src/internet/internetmodel.h index e1f2b73b3..39225cc11 100644 --- a/src/internet/internetmodel.h +++ b/src/internet/internetmodel.h @@ -166,7 +166,7 @@ signals: void ScrollToIndex(const QModelIndex& index); private slots: - void ServiceDeleted(); + void ServiceDeleted(InternetService* service); private: static QMap* sServices;