From 24af24d367956a5c05a65bf0443bf5512e4ac0eb Mon Sep 17 00:00:00 2001 From: David Tardon Date: Wed, 24 Jan 2018 21:25:55 +0100 Subject: [PATCH 02/12] handle more style effects --- Scribus/scribus/plugins/import/revenge/rawpainter.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Scribus/scribus/plugins/import/revenge/rawpainter.cpp b/Scribus/scribus/plugins/import/revenge/rawpainter.cpp index 06e4c3d27..d4a8d4077 100644 --- a/Scribus/scribus/plugins/import/revenge/rawpainter.cpp +++ b/Scribus/scribus/plugins/import/revenge/rawpainter.cpp @@ -1658,7 +1658,11 @@ void RawPainter::openSpan(const librevenge::RVNGPropertyList &propList) } StyleFlag styleEffects = textCharStyle.effects(); if (propList["style:text-underline-type"]) + { styleEffects |= ScStyle_Underline; + if (propList["style:text-underline-mode"] && propList["style:text-underline-mode"]->getStr() == "skip-white-space") + styleEffects |= ScStyle_UnderlineWords; + } if (propList["style:text-position"]) { if (propList["style:text-position"]->getStr() == "50% 67%") @@ -1666,6 +1670,19 @@ void RawPainter::openSpan(const librevenge::RVNGPropertyList &propList) else styleEffects |= ScStyle_Subscript; } + if (propList["fo:font-variant"] && propList["fo:font-variant"]->getStr() == "small-caps") + styleEffects |= ScStyle_SmallCaps; + if (propList["fo:text-transform"] && propList["fo:text-transform"]->getStr() == "uppercase") + styleEffects |= ScStyle_AllCaps; + if (propList["style:text-line-through-style"]) + styleEffects |= ScStyle_Strikethrough; + if (propList["style:text-outline"] && propList["style:text-outline"]->getInt()) + styleEffects |= ScStyle_Outline; + if (propList["style:text-shadow"]) // TODO: parse offsets + styleEffects |= ScStyle_Shadowed; + if (propList["fo:hyphenate"]) + styleEffects |= ScStyle_HyphenationPossible; + // TODO: handle drop caps textCharStyle.setFeatures(styleEffects.featureList()); } -- 2.14.3