bool ProjectGenerator::addFile(QString file) { file = fileFixify(file, qmake_getpwd()); QString dir; int s = file.lastIndexOf(Option::dir_sep); if(s != -1) dir = file.left(s+1); if(file.mid(dir.length(), Option::h_moc_mod.length()) == Option::h_moc_mod) return false; ProKey where; for(int cppit = 0; cppit < Option::cpp_ext.size(); ++cppit) { if(file.endsWith(Option::cpp_ext[cppit])) { where = "SOURCES"; break; } } if(where.isEmpty()) { for(int hit = 0; hit < Option::h_ext.size(); ++hit) if(file.endsWith(Option::h_ext.at(hit))) { where = "HEADERS"; break; } } if(where.isEmpty()) { for(int cit = 0; cit < Option::c_ext.size(); ++cit) { if(file.endsWith(Option::c_ext[cit])) { where = "SOURCES"; break; } } } if(where.isEmpty()) { if(file.endsWith(Option::ui_ext)) where = "FORMS"; else if(file.endsWith(Option::lex_ext)) where = "LEXSOURCES"; else if(file.endsWith(Option::yacc_ext)) where = "YACCSOURCES"; else if(file.endsWith(".ts") || file.endsWith(".xlf")) where = "TRANSLATIONS"; else if(file.endsWith(".qrc")) where = "RESOURCES"; } QString newfile = fixPathToQmake(fileFixify(file)); ProStringList &endList = project->values(where); if(!endList.contains(newfile, Qt::CaseInsensitive)) { endList += newfile; return true; } return false; }