[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/filters
From: Lassi Taneli Nieminen <lassniem () gmail ! com>
Date: 2010-04-09 9:37:25
Message-ID: 20100409093725.C4444AC892 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1112832 by lassin:
Fixes reading of paragraphs from styles.xml
M +11 -6 kword/docx/DocxXmlDocumentReader.cpp
M +43 -7 kword/docx/DocxXmlStylesReader.cpp
M +1 -0 libmsooxml/MsooXmlCommonReader.h
M +1 -0 libmsooxml/MsooXmlCommonReaderImpl.h
--- trunk/koffice/filters/kword/docx/DocxXmlDocumentReader.cpp #1112831:1112832
@@ -279,10 +279,6 @@
if (m_backgroundColor.isValid())
m_currentPageStyle.addProperty("fo:background-color", \
m_backgroundColor.name());
- QString pageLayoutStyleName("Mpm");
- pageLayoutStyleName = mainStyles->insert(
- m_currentPageStyle, pageLayoutStyleName, KoGenStyles::DontAddNumberToName);
-
m_masterPageStyle = KoGenStyle(KoGenStyle::MasterPageStyle);
while (!atEnd()) {
@@ -296,6 +292,10 @@
BREAK_IF_END_OF(CURRENT_EL);
}
+ QString pageLayoutStyleName("Mpm");
+ pageLayoutStyleName = mainStyles->insert(
+ m_currentPageStyle, pageLayoutStyleName, KoGenStyles::DontAddNumberToName);
+
//! @todo works because paragraphs have Standard style assigned by default; fix for \
multiple page styles QString masterStyleName("Standard");
//! @todo style:display-name
@@ -1346,6 +1346,10 @@
const QXmlStreamAttributes attrs(attributes());
setParentParagraphStyleName(attrs);
+ if (!m_currentParagraphStylePredefined) {
+ m_currentParagraphStyle = KoGenStyle(KoGenStyle::ParagraphAutoStyle, \
"text"); + }
+
TRY_READ_ATTR_WITHOUT_NS(lvl)
m_pPr_lvl = lvl.toUInt(); // 0 (the default) on failure, so ok.
@@ -1356,6 +1360,7 @@
TRY_READ_IF_IN_CONTEXT(rPr)
ELSE_TRY_READ_IF_IN_CONTEXT(shd)
ELSE_TRY_READ_IF(jc)
+ ELSE_TRY_READ_IF(tabs)
ELSE_TRY_READ_IF(spacing)
ELSE_TRY_READ_IF(pStyle)
ELSE_TRY_READ_IF(pBdr)
@@ -1825,11 +1830,11 @@
TRY_READ_ATTR(val)
body->startElement("style:tab-stop");
- body->addAttribute("style:position", 20);
+ body->addAttribute("style:type", val);
bool ok = false;
const qreal value = qreal(TWIP_TO_POINT(pos.toDouble(&ok)));
if (ok) {
- body->addAttributePt("style:type", value);
+ body->addAttributePt("style:position", value);
}
body->endElement(); // style:tab-stop
--- trunk/koffice/filters/kword/docx/DocxXmlStylesReader.cpp #1112831:1112832
@@ -341,13 +341,25 @@
return KoFilter::WrongFormat;
}
kDebug() << "Setting default style of family" << odfType << "...";
- m_currentTextStyle = *m_defaultStyles.value(odfType.toLatin1());
+ if (type == "character") {
+ m_currentTextStyle = *m_defaultStyles.value(odfType.toLatin1());
+ }
+ else if (type == "paragraph") {
+ m_currentParagraphStyle = *m_defaultStyles.value(odfType.toLatin1());
+ }
}
else {
- m_currentTextStyle = KoGenStyle(KoGenStyle::ParagraphStyle, \
odfType.toLatin1()); + if (type == "character") {
+ m_currentTextStyle = KoGenStyle(KoGenStyle::TextStyle, \
odfType.toLatin1()); + }
+ else if (type == "paragraph") {
+ m_currentParagraphStyle = KoGenStyle(KoGenStyle::ParagraphStyle, \
odfType.toLatin1()); + }
}
MSOOXML::Utils::Setter<bool> \
currentTextStylePredefinedSetter(&m_currentTextStylePredefined, false); + \
MSOOXML::Utils::Setter<bool> \
currentParagraphStylePredefinedSetter(&m_currentParagraphStylePredefined, false); \
m_currentTextStylePredefined = true; + m_currentParagraphStylePredefined = true;
QString nextStyleName;
@@ -357,9 +369,15 @@
const QXmlStreamAttributes attrs(attributes());
TRY_READ_IF(name)
ELSE_TRY_READ_IF_IN_CONTEXT(rPr)
+ ELSE_TRY_READ_IF(pPr)
else if (QUALIFIED_NAME_IS(basedOn)) {
READ_ATTR(val)
- m_currentTextStyle.setParentName(val);
+ if (type == "character") {
+ m_currentTextStyle.setParentName(val);
+ }
+ else if (type == "paragraph") {
+ m_currentParagraphStyle.setParentName(val);
+ }
}
else if (QUALIFIED_NAME_IS(next)) {
READ_ATTR_INTO(val, nextStyleName)
@@ -379,12 +397,18 @@
}
m_currentTextStylePredefined = false;
+ m_currentParagraphStylePredefined = false;
// insert style
if (isDefault) {
// do not insert, will be inserted at the end
kDebug() << "Default style of family" << odfType << "created";
- *m_defaultStyles.value(odfType.toLatin1()) = m_currentTextStyle;
+ if (type == "character") {
+ *m_defaultStyles.value(odfType.toLatin1()) = m_currentTextStyle;
+ }
+ else if (type == "paragraph") {
+ *m_defaultStyles.value(odfType.toLatin1()) = m_currentParagraphStyle;
+ }
}
else {
// Style class: A style may belong to an arbitrary class of styles.
@@ -392,14 +416,26 @@
// but it can for instance be evaluated by user interfaces to show a list of \
styles where // the styles are grouped by its name.
//! @todo oo.o converter defines these classes: list, extra, index, chapter
- m_currentTextStyle.addAttribute("style:class", "text");
+ if (type == "character") {
+ m_currentTextStyle.addAttribute("style:class", "text");
- styleName = mainStyles->insert(m_currentTextStyle, styleName, \
insertionFlags); + styleName = mainStyles->insert(m_currentTextStyle, \
styleName, insertionFlags); + }
+ else if (type == "paragraph") {
+ m_currentParagraphStyle.addAttribute("style:class", "text");
+
+ styleName = mainStyles->insert(m_currentParagraphStyle, styleName, \
insertionFlags); + }
if (!nextStyleName.isEmpty()) {
mainStyles->insertStyleRelation(styleName, nextStyleName, \
"style:next-style-name"); }
}
- m_currentTextStyle = KoGenStyle();
+ if (type == "character") {
+ m_currentTextStyle = KoGenStyle();
+ }
+ else if (type == "paragraph") {
+ m_currentParagraphStyle = KoGenStyle();
+ }
READ_EPILOGUE
}
--- trunk/koffice/filters/libmsooxml/MsooXmlCommonReader.h #1112831:1112832
@@ -51,6 +51,7 @@
//! Used for creating style in w:pPr (style:style/@style:name attr)
KoGenStyle m_currentParagraphStyle;
+ bool m_currentParagraphStylePredefined; //!< true if m_currentParagraphStyle \
shouldn't be created in read_pPr
void setupParagraphStyle();
--- trunk/koffice/filters/libmsooxml/MsooXmlCommonReaderImpl.h #1112831:1112832
@@ -33,6 +33,7 @@
m_posOffsetH = 0;
m_posOffsetV = 0;
m_currentTextStylePredefined = false;
+ m_currentParagraphStylePredefined = false;
m_currentTextStyleProperties = 0;
m_fillImageRenderingStyleStretch = false;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic