void sPut(String& qtf, ArrayMap<String, FileStat>& pfs, ArrayMap<String, FileStat>& all) { FileStat pall; for(int i = 0; i < pfs.GetCount(); i++) { FileStat& fs = pfs[i]; sPut(pfs.GetKey(i), qtf, fs); pall.Add(fs); all.GetAdd(pfs.GetKey(i)).Add(fs); } sPut("All files", qtf, pall); qtf << "}}&&"; }
void SelectPackageDlg::ScanFolder(const String& path, ArrayMap<String, PkData>& nd, const String& nest, Index<String>& dir_exists, const String& prefix) { for(FindFile ff(AppendFileName(path, "*.*")); ff; ff.Next()) if(ff.IsFolder() && !ff.IsHidden()) { dir_exists.Add(ff.GetPath()); String p = ff.GetPath(); bool nw = nd.Find(p) < 0; // Do we have any info loaded about this package? PkData& d = nd.GetAdd(ff.GetPath()); d.package = prefix + ff.GetName(); d.nest = nest; if(nw) { // No cached info available about the folder d.ispackage = IsLetter(*d.package) && d.package.Find('.') < 0; // First heuristic guess d.main = d.ispackage && prefix.GetCount() == 0; // Expect it is main } } }