diff --git a/src/libtomahawk/sip/SipHandler.cpp b/src/libtomahawk/sip/SipHandler.cpp index 210e17805..bf0408707 100644 --- a/src/libtomahawk/sip/SipHandler.cpp +++ b/src/libtomahawk/sip/SipHandler.cpp @@ -152,6 +152,7 @@ SipHandler::createPlugin( const QString& factoryId ) SipPlugin* sip = m_pluginFactories[ factoryId ]->createPlugin(); hookUpPlugin( sip ); + emit pluginAdded( sip ); return sip; } @@ -165,6 +166,7 @@ SipHandler::loadPlugin( const QString& pluginId ) SipPlugin* sip = m_pluginFactories[ factoryName ]->createPlugin( pluginId ); hookUpPlugin( sip ); + // caller responsible for calling pluginAdded() return sip; } @@ -194,8 +196,6 @@ SipHandler::hookUpPlugin( SipPlugin* sip ) QObject::connect( sip, SIGNAL( avatarReceived( QString, QPixmap ) ), SLOT( onAvatarReceived( QString, QPixmap ) ) ); QObject::connect( sip, SIGNAL( avatarReceived( QPixmap ) ), SLOT( onAvatarReceived( QPixmap ) ) ); - - emit pluginAdded( sip ); } diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index 4ebd4741d..e88dc3c26 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -537,7 +537,7 @@ SettingsDialog::sipFactoryClicked( SipPluginFactory* factory ) added = true; } else { // canceled, delete it - delete p; + added = false; } } else { // no config, so just add it @@ -560,6 +560,8 @@ SettingsDialog::sipFactoryClicked( SipPluginFactory* factory ) } if( toremove ) ui->addSipButton->removeAction( toremove ); + } else if( added == false ) { // user pressed cancel + delete p; } }