From 24af24d367956a5c05a65bf0443bf5512e4ac0eb Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
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

