void WorkspaceTab::OpenProjectSettings(const wxString& project) { if(m_dlg) { m_dlg->Raise(); return; } wxString projectName = project.IsEmpty() ? ManagerST::Get()->GetActiveProjectName() : project; wxString title(projectName); title << _(" Project Settings"); // Allow plugins to process this event first clCommandEvent openEvent(wxEVT_CMD_OPEN_PROJ_SETTINGS); openEvent.SetString(project); if(EventNotifier::Get()->ProcessEvent(openEvent)) { return; } // open the project properties dialog BuildMatrixPtr matrix = ManagerST::Get()->GetWorkspaceBuildMatrix(); #ifdef __WXMAC__ // On OSX we use a modal version of the project settings // since otherwise we get some weird focus issues when the project // settings dialog popups helper dialogs ProjectSettingsDlg dlg(clMainFrame::Get(), this, matrix->GetProjectSelectedConf(matrix->GetSelectedConfigurationName(), projectName), projectName, title); dlg.ShowModal(); #else // Find the project configuration name that matches the workspace selected configuration m_dlg = new ProjectSettingsDlg(clMainFrame::Get(), this, matrix->GetProjectSelectedConf(matrix->GetSelectedConfigurationName(), projectName), projectName, title); m_dlg->Show(); #endif // Mark this project as modified ProjectPtr proj = ManagerST::Get()->GetProject(projectName); if(proj) { proj->SetModified(true); } }
void AdvancedDlg::OnApply(wxCommandEvent& event) { // save the build page m_compilersPage->Save(); m_buildPage->Save(); m_buildSettings->Save(); // mark all the projects as dirty wxArrayString projects; clCxxWorkspaceST::Get()->GetProjectList(projects); for(size_t i = 0; i < projects.size(); i++) { ProjectPtr proj = ManagerST::Get()->GetProject(projects.Item(i)); if(proj) { proj->SetModified(true); } } }