NewProtocol::~NewProtocol() { if (m_connectWnd) delete m_connectWnd; if (m_setup) delete m_setup; if (m_client) delete m_client; for (unsigned n = 0;; n++){ Event e(EventPluginGetInfo, (void*)n); pluginInfo *info = (pluginInfo*)e.process(); if (info == NULL) break; if ((info->info == NULL) || !(info->info->flags & (PLUGIN_PROTOCOL & ~PLUGIN_NOLOAD_DEFAULT))) continue; unsigned i; for (i = 0; i < getContacts()->nClients(); i++){ Client *client = getContacts()->getClient(i); if (client->protocol()->plugin() == info->plugin) break; } if (i < getContacts()->nClients()) continue; info->bDisabled = true; Event eApply(EventApplyPlugin, info->name); eApply.process(); Event eUnload(EventUnloadPlugin, info->name); eUnload.process(); } }
NewProtocol::NewProtocol(QWidget *parent) : NewProtocolBase(parent, "new_protocol", true) { m_setup = NULL; m_client = NULL; m_last = NULL; m_connectWnd = NULL; m_bConnected = false; m_bConnect = false; m_bStart = (parent == NULL); SET_WNDPROC("protocol") setIcon(Pict("configure")); setButtonsPict(this); setCaption(caption()); helpButton()->hide(); for (unsigned n = 0;; n++){ Event e(EventPluginGetInfo, (void*)n); pluginInfo *info = (pluginInfo*)e.process(); if (info == NULL) break; if (info->info == NULL){ Event e(EventLoadPlugin, info->name); e.process(); if (info->info && !(info->info->flags & (PLUGIN_PROTOCOL & ~PLUGIN_NOLOAD_DEFAULT))){ Event e(EventUnloadPlugin, info->name); e.process(); } } if ((info->info == NULL) || !(info->info->flags & (PLUGIN_PROTOCOL & ~PLUGIN_NOLOAD_DEFAULT))) continue; info->bDisabled = false; Event eApply(EventApplyPlugin, info->name); eApply.process(); } Protocol *protocol; ContactList::ProtocolIterator it; while ((protocol = ++it) != NULL){ const CommandDef *cmd = protocol->description(); if (cmd == NULL) continue; m_protocols.push_back(protocol); } sort(m_protocols.begin(), m_protocols.end(), cmp_protocol); for (unsigned i = 0; i < m_protocols.size(); i++){ const CommandDef *cmd = m_protocols[i]->description(); cmbProtocol->insertItem(Pict(cmd->icon), i18n(cmd->text)); } connect(cmbProtocol, SIGNAL(activated(int)), this, SLOT(protocolChanged(int))); cmbProtocol->setCurrentItem(0); protocolChanged(0); connect(this, SIGNAL(selected(const QString&)), this, SLOT(pageChanged(const QString&))); }