void PluginManager::UnLoad() { // Before we unload the plugins, store the list of visible workspace tabs { wxArrayString visibleTabs; for(size_t i = 0; i < GetWorkspacePaneNotebook()->GetPageCount(); ++i) { visibleTabs.Add(GetWorkspacePaneNotebook()->GetPageText(i)); } clConfig::Get().Write("VisibleWorkspaceTabs", visibleTabs); } // Now do the same for the output view { wxArrayString visibleTabs; for(size_t i = 0; i < GetOutputPaneNotebook()->GetPageCount(); ++i) { visibleTabs.Add(GetOutputPaneNotebook()->GetPageText(i)); } clConfig::Get().Write("VisibleOutputTabs", visibleTabs); } std::map<wxString, IPlugin*>::iterator plugIter = m_plugins.begin(); for(; plugIter != m_plugins.end(); plugIter++) { IPlugin* plugin = plugIter->second; plugin->UnPlug(); delete plugin; } m_dl.clear(); m_plugins.clear(); }
void PluginManager::UnLoad() { std::map<wxString, IPlugin*>::iterator plugIter = m_plugins.begin(); for(; plugIter != m_plugins.end(); plugIter++) { IPlugin* plugin = plugIter->second; plugin->UnPlug(); delete plugin; } #if wxVERSION_NUMBER < 2900 std::list<clDynamicLibrary*>::iterator iter = m_dl.begin(); for(; iter != m_dl.end(); iter++) { (*iter)->Detach(); delete (*iter); } #endif m_dl.clear(); m_plugins.clear(); }