KoListLevelProperties::KoListLevelProperties() : QObject() , d(new Private()) { QSharedPointer<KoCharacterStyle> charStyle(new KoCharacterStyle); setCharacterProperties(charStyle); setRelativeBulletSize(100); setAlignmentMode(false); setDisplayLevel(1); connect(this,SIGNAL(styleChanged(int)),SLOT(onStyleChanged(int))); }
QString KoTextWriter::saveCharacterStyle(const QTextCharFormat &charFormat, const QTextCharFormat &blockCharFormat) { KoCharacterStyle *defaultCharStyle = d->styleManager->defaultParagraphStyle()->characterStyle(); KoCharacterStyle *originalCharStyle = d->styleManager->characterStyle(charFormat.intProperty(KoCharacterStyle::StyleId)); if (!originalCharStyle) originalCharStyle = defaultCharStyle; QString generatedName; QString displayName = originalCharStyle->name(); QString internalName = QString(QUrl::toPercentEncoding(displayName, "", " ")).replace('%', '_'); KoCharacterStyle charStyle(charFormat); // we'll convert it to a KoCharacterStyle to check for local changes. // we remove that properties given by the paragraphstyle char format, these are not present in the saved style (should it really be the case?) charStyle.removeDuplicates(blockCharFormat); if (charStyle == (*originalCharStyle)) { // This is the real, unmodified character style. if (originalCharStyle != defaultCharStyle) { if (!charStyle.isEmpty()) { KoGenStyle style(KoGenStyle::StyleUser, "text"); originalCharStyle->saveOdf(style); generatedName = d->context.mainStyles().lookup(style, internalName, KoGenStyles::DontForceNumbering); } } } else { // There are manual changes... We'll have to store them then KoGenStyle style(KoGenStyle::StyleAuto, "text", originalCharStyle != defaultCharStyle ? internalName : "" /*parent*/); if (d->context.isSet(KoShapeSavingContext::AutoStyleInStyleXml)) style.setAutoStyleInStylesDotXml(true); charStyle.removeDuplicates(*originalCharStyle); if (!charStyle.isEmpty()) { charStyle.saveOdf(style); generatedName = d->context.mainStyles().lookup(style, "T"); } } return generatedName; }