void XHTMLReader::addTextStyleEntry(const ZLTextStyleEntry &entry) { if (!entry.isFeatureSupported(ZLTextStyleEntry::FONT_FAMILY)) { myModelReader.addStyleEntry(entry); return; } bool doFixFamiliesList = false; const std::vector<std::string> &families = entry.fontFamilies(); for (std::vector<std::string>::const_iterator it = families.begin(); it != families.end(); ++it) { ZLLogger::Instance().println("FONT", "Requested font family: " + *it); shared_ptr<FontEntry> fontEntry = myFontMap->get(*it); if (!fontEntry.isNull()) { const std::string realFamily = myModelReader.putFontEntry(*it, fontEntry); if (realFamily != *it) { ZLLogger::Instance().println("FONT", "Entry for " + *it + " stored as " + realFamily); doFixFamiliesList = true; break; } } } if (!doFixFamiliesList) { myModelReader.addStyleEntry(entry); } else { std::vector<std::string> realFamilies; for (std::vector<std::string>::const_iterator it = families.begin(); it != families.end(); ++it) { shared_ptr<FontEntry> fontEntry = myFontMap->get(*it); if (!fontEntry.isNull()) { realFamilies.push_back(myModelReader.putFontEntry(*it, fontEntry)); } else { realFamilies.push_back(*it); } } myModelReader.addStyleEntry(entry, realFamilies); } }
void ZLTextModel::addStyleEntry(const ZLTextStyleEntry &entry, unsigned char depth) { addStyleEntry(entry, entry.fontFamilies(), depth); }