void CppCheckPlugin::DoSettingsItem(ProjectPtr project/*= NULL*/) { // Find the default path for the CppCheckSettingsDialog's wxFileDialog wxString defaultpath; IEditor* ed = m_mgr->GetActiveEditor(); if (ed && ed->GetFileName().IsOk()) { defaultpath = ed->GetFileName().GetPath(); } // If there's an active project, first load any project-specific settings: definitions and undefines // (We couldn't do that with the rest of the settings as the workspace hadn't yet been loaded) m_settings.LoadProjectSpecificSettings(project); // NB we still do this if !project, as that will clear any stale settings CppCheckSettingsDialog dlg(m_mgr->GetTheApp()->GetTopWindow(), &m_settings, m_mgr->GetConfigTool(), defaultpath, project.Get() != NULL); if (dlg.ShowModal() == wxID_OK) { m_mgr->GetConfigTool()->WriteObject(wxT("CppCheck"), &m_settings); if (project) { // Also save any project-specific settings: definitions and undefines wxString definitions = wxJoin(m_settings.GetDefinitions(), ','); wxString undefines = wxJoin(m_settings.GetUndefines(), ','); if (!(definitions.empty() && undefines.empty())) { project->SetPluginData("CppCheck", definitions + ';' + undefines); } else { project->SetPluginData("CppCheck", ""); } } } }
void QMakeTab::Save(IManager *manager, const wxString& projectName, const wxString& confgName) { wxString errMsg; ProjectPtr p = manager->GetWorkspace()->FindProjectByName(projectName, errMsg); if ( p ) { wxString data = p->GetPluginData(wxT("qmake")); QmakePluginData pd( data ); QmakePluginData::BuildConfPluginData bcpd; bcpd.m_buildConfName = confgName; bcpd.m_enabled = m_checkBoxUseQmake->IsChecked(); bcpd.m_freeText = m_textCtrlFreeText->GetValue(); bcpd.m_qmakeConfig = m_choiceQmakeSettings->GetStringSelection(); bcpd.m_qmakeExecutionLine = m_textCtrlQmakeExeLine->GetValue(); pd.SetDataForBuildConf(confgName, bcpd); p->SetPluginData(wxT("qmake"), pd.ToString()); } }