void KPluginSelectionWidget::save() { kdDebug(702) << k_funcinfo << endl; for(QMap< QCheckListItem *, KPluginInfo * >::Iterator it = d->pluginInfoMap.begin(); it != d->pluginInfoMap.end(); ++it) { KPluginInfo *info = it.data(); bool checked = it.key()->isOn(); info->setPluginEnabled(checked); info->save(d->config); d->plugincheckedchanged[info] = false; } QStringList updatedModules; for(QValueList< KCModuleProxy * >::Iterator it = d->modulelist.begin(); it != d->modulelist.end(); ++it) if((*it)->changed()) { (*it)->save(); QStringList *names = d->moduleParentComponents[*it]; if(names->size() == 0) names->append(QString::null); for(QStringList::ConstIterator nameit = names->begin(); nameit != names->end(); ++nameit) if(updatedModules.find(*nameit) == updatedModules.end()) updatedModules.append(*nameit); } for(QStringList::ConstIterator it = updatedModules.begin(); it != updatedModules.end(); ++it) emit configCommitted((*it).latin1()); updateConfigPage(); kdDebug(702) << "syncing config file" << endl; d->config->sync(); d->changed = 0; emit changed(false); }
Plugin *PluginManager::loadPluginInternal( const QString &pluginId ) { //kDebug( 14010 ) << pluginId; KPluginInfo info = infoForPluginId( pluginId ); if ( !info.isValid() ) { kWarning( 14010 ) << "Unable to find a plugin named '" << pluginId << "'!"; return 0L; } if ( _kpmp->loadedPlugins.contains( info ) ) return _kpmp->loadedPlugins[ info ]; QString error; Plugin *plugin = KServiceTypeTrader::createInstanceFromQuery<Plugin>( QString::fromLatin1( "Kopete/Plugin" ), QString::fromLatin1( "[X-KDE-PluginInfo-Name]=='%1'" ).arg( pluginId ), this, QVariantList(), &error ); if ( plugin ) { _kpmp->loadedPlugins.insert( info, plugin ); info.setPluginEnabled( true ); connect( plugin, SIGNAL(destroyed(QObject*)), this, SLOT(slotPluginDestroyed(QObject*)) ); connect( plugin, SIGNAL(readyForUnload()), this, SLOT(slotPluginReadyForUnload()) ); kDebug( 14010 ) << "Successfully loaded plugin '" << pluginId << "'"; emit pluginLoaded( plugin ); Protocol* protocol = dynamic_cast<Protocol*>( plugin ); if ( protocol ) emit protocolLoaded( protocol ); } else {