bool StaffTypeTablature::readConfigFile(const QString& fileName) { QString path; if(fileName == 0 || fileName.isEmpty()) { // defaults to built-in xml #ifdef Q_WS_IOS { extern QString resourcePath(); QString rpath = resourcePath(); path = rpath + QString("/fonts_tablature.xml"); } #else path = ":/fonts/fonts_tablature.xml"; #endif _durationFonts.clear(); _fretFonts.clear(); } else path = fileName; QFileInfo fi(path); QFile f(path); if (!fi.exists() || !f.open(QIODevice::ReadOnly)) { QString s = QT_TRANSLATE_NOOP("file", "cannot open tablature font description:\n%1\n%2"); MScore::lastError = s.arg(f.fileName()).arg(f.errorString()); qDebug("StaffTypeTablature::readConfigFile failed: <%s>\n", qPrintable(path)); return false; } XmlReader e(&f); while (e.readNextStartElement()) { if (e.name() == "museScore") { while (e.readNextStartElement()) { const QStringRef& tag(e.name()); if (tag == "fretFont") { TablatureFretFont f; if (f.read(e)) _fretFonts.append(f); else continue; } else if (tag == "durationFont") { TablatureDurationFont f; if (f.read(e)) _durationFonts.append(f); else continue; } else e.unknown(); } return true; } } return false; }
bool StaffTypeTablature::readConfigFile(const QString& fileName) { QString path; if(fileName == 0 || fileName.isEmpty()) { // defaults to built-in xml #ifdef Q_WS_IOS { extern QString resourcePath(); QString rpath = resourcePath(); path = rpath + QString("/fonts_tablature.xml"); } #else path = ":/fonts/fonts_tablature.xml"; #endif _durationFonts.clear(); _fretFonts.clear(); } else path = fileName; QFileInfo fi(path); QFile f(path); if (!fi.exists() || !f.open(QIODevice::ReadOnly)) { QString s = QT_TRANSLATE_NOOP("file", "cannot open tablature font description:\n%1\n%2"); MScore::lastError = s.arg(f.fileName()).arg(f.errorString()); qDebug("StaffTypeTablature::readConfigFile failed: <%s>\n", qPrintable(path)); return false; } QDomDocument doc; int line, column; QString err; if (!doc.setContent(&f, false, &err, &line, &column)) { QString s = QT_TRANSLATE_NOOP("file", "error reading tablature font description %1 at line %2 column %3: %4\n"); MScore::lastError = s.arg(f.fileName()).arg(line).arg(column).arg(err); return false; } docName = f.fileName(); for (QDomElement e = doc.documentElement(); !e.isNull(); e = e.nextSiblingElement()) { if (e.tagName() == "museScore") { for (QDomElement de = e.firstChildElement(); !de.isNull(); de = de.nextSiblingElement()) { const QString& tag(de.tagName()); if (tag == "fretFont") { TablatureFretFont f; if(f.read(de)) _fretFonts.append(f); else continue; } else if (tag == "durationFont") { TablatureDurationFont f; if(f.read(de)) _durationFonts.append(f); else continue; } else domError(de); } return true; } } return false; }