void ReconcileProjectFiletypesDlg::OnIgnoreBrowse(wxCommandEvent& WXUNUSED(event)) { ProjectPtr proj = ManagerST::Get()->GetProject(m_projname); wxCHECK_RET(proj, "Can't find a Project with the supplied name"); wxString topleveldir, types; wxArrayString ignorefiles, excludes, regexes; proj->GetReconciliationData(topleveldir, types, ignorefiles, excludes, regexes); if (topleveldir.empty()) { topleveldir = proj->GetFileName().GetPath(); } wxFileName tld(topleveldir); if ( tld.IsRelative() ) { tld.MakeAbsolute( proj->GetFileName().GetPath() ); } wxString new_exclude = wxDirSelector(_("Select a directory to ignore:"), tld.GetFullPath(), wxDD_DEFAULT_STYLE, wxDefaultPosition, this); if (!new_exclude.empty()) { wxFileName fn = wxFileName::DirName(new_exclude); fn.MakeRelativeTo(topleveldir); new_exclude = fn.GetFullPath(); if (m_listExclude->FindString(new_exclude) == wxNOT_FOUND) { m_listExclude->Append(new_exclude); } } }
void ReconcileProjectFiletypesDlg::SetData() { ProjectPtr proj = ManagerST::Get()->GetProject(m_projname); wxCHECK_RET(proj, "Can't find a Project with the supplied name"); wxString topleveldir, types; wxArrayString ignorefiles, excludes, regexes; proj->GetReconciliationData(topleveldir, types, ignorefiles, excludes, regexes); if (topleveldir.empty()) { topleveldir = proj->GetFileName().GetPath(); } wxFileName tld(topleveldir); if ( tld.IsRelative() ) { tld.MakeAbsolute( proj->GetFileName().GetPath() ); } m_dirPickerToplevel->SetPath(tld.GetFullPath()); if (types.empty()) { types << "cpp;c;h;hpp;xrc;wxcp;fbp"; } m_textExtensions->ChangeValue(types); m_listIgnoreFiles->Clear(); m_listIgnoreFiles->Append(ignorefiles); m_listExclude->Clear(); m_listExclude->Append(excludes); m_listCtrlRegexes->DeleteAllItems(); for (size_t n = 0; n < regexes.GetCount(); ++n) { SetRegex(regexes[n]); } }