bool ResourceFile::save() { m_error_message.clear(); if (m_file_name.isEmpty()) { m_error_message = msgFileNameEmpty(); return false; } QFile file(m_file_name); if (!file.open(QIODevice::WriteOnly)) { m_error_message = file.errorString(); return false; } QDomDocument doc; QDomElement root = doc.createElement(QLatin1String("RCC")); doc.appendChild(root); const QStringList name_list = prefixList(); foreach (const QString &name, name_list) { FileList file_list; QString lang; foreach (const Prefix *pref, m_prefix_list) { if (pref->name == name){ file_list += pref->file_list; lang = pref->lang; } } QDomElement relt = doc.createElement(QLatin1String("qresource")); root.appendChild(relt); relt.setAttribute(QLatin1String("prefix"), name); if (!lang.isEmpty()) relt.setAttribute(QLatin1String("lang"), lang); foreach (const File *f, file_list) { const File &file = *f; QDomElement felt = doc.createElement(QLatin1String("file")); relt.appendChild(felt); const QString conv_file = relativePath(file.name).replace(QDir::separator(), QLatin1Char('/')); const QDomText text = doc.createTextNode(conv_file); felt.appendChild(text); if (!file.alias.isEmpty()) felt.setAttribute(QLatin1String("alias"), file.alias); } }
int main ( int argc, char* argv[] ) { // check if we are being invoked to build the dependency graph if (argc > 2 && strcmp(argv[1], "--depend") == 0) { CalcDepend(2, argc, argv); return 0; } // parse the command line options JString defSuffix, defineText, headerName, inputName, outputName, outputDirName; JPtrArray<JString> userTargetList(JPtrArrayT::kDeleteAll); // empty => include all targets JBoolean searchSysDir, assumeAutoGen; JPtrArray<JString> suffixMapIn(JPtrArrayT::kDeleteAll), suffixMapOut(JPtrArrayT::kDeleteAll); GetOptions(argc, argv, &defSuffix, &defineText, &headerName, &inputName, &outputName, &outputDirName, &userTargetList, &searchSysDir, &assumeAutoGen, &suffixMapIn, &suffixMapOut); // process the input file JPtrArray<JString> mainTargetList(JPtrArrayT::kDeleteAll), mainTargetObjsList(JPtrArrayT::kDeleteAll); JArray<JBoolean> javaTargetList; JPtrArray<JString> targetList(JPtrArrayT::kDeleteAll), prefixList(JPtrArrayT::kDeleteAll), suffixList(JPtrArrayT::kDeleteAll); JPtrArray<JString> outPrefixList(JPtrArrayT::kDeleteAll), outSuffixList(JPtrArrayT::kDeleteAll); JArray<JIndexRange> matchList; targetList.SetCompareFunction(JCompareStringsCaseSensitive); // skip comments and check for possible first suffix instruction ifstream input(inputName); input >> ws; while (!input.eof() && !input.fail()) { if (input.peek() == '-') { input.ignore(1); JString cmd = JReadUntil(input, ' '); JString value = JReadUntil(input, '\n'); input >> ws; value.TrimWhitespace(); if (cmd == "suffix") { defSuffix = value; } else { cerr << argv[0] << ": unknown parameter: " << cmd << '\n'; } } else if (input.peek() == '#')