[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/koffice-ko/filters/kword/msword-odf
From: Miroslav Nohaj <miroslav.nohaj () ixonos ! com>
Date: 2010-04-07 8:54:23
Message-ID: 20100407085423.22DB7AC857 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1112067 by nohaj:
Line numbering support added to msword-odf filter for MS Word documents.
M +4 -0 document.cpp
M +4 -0 document.h
M +33 -0 texthandler.cpp
--- branches/work/koffice-ko/filters/kword/msword-odf/document.cpp #1112066:1112067
@@ -291,6 +291,10 @@
QString displayName = Conversion::string(style->name());
QString name = Conversion::styleNameString(style->name());
+ if (style->sti() == 40) { // if the invariant style identifier \
says it's a style used for line numbers + m_lineNumbersStyleName = name; \
// store the name of that style + }
+
// Process paragraph styles.
if (style && style->type() == wvWare::Style::sgcPara) {
const wvWare::Style* followingStyle = \
styles.styleByID(style->followingStyle());
--- branches/work/koffice-ko/filters/kword/msword-odf/document.h #1112066:1112067
@@ -114,6 +114,8 @@
bool writingHeader(void) const { return m_writingHeader; }
KoXmlWriter* headerWriter(void) const { return m_headerWriter; }
+ // get the style name used for line numbers
+ QString lineNumbersStyleName() const { return m_lineNumbersStyleName; }
public slots:
// Connected to the KWordTextHandler only when parsing the body
void slotSectionFound(wvWare::SharedPtr<const wvWare::Word97::SEP>);
@@ -189,6 +191,8 @@
int m_initialFootnoteNumber;
int m_initialEndnoteNumber;
+
+ QString m_lineNumbersStyleName;
};
#endif // DOCUMENT_H
--- branches/work/koffice-ko/filters/kword/msword-odf/texthandler.cpp \
#1112066:1112067 @@ -181,6 +181,39 @@
m_bodyWriter->addAttribute("text:name", sectionName);
m_bodyWriter->addAttribute("text:style-name", sectionStyleName);
}
+
+ if (sep->nLnnMod != 0) { // if line numbering modulus is not 0, do line \
numbering + if (m_mainStyles) {
+ QString lineNumbersStyleName = QString("Standard"); // set default \
line numbers style +
+ if (m_document) { // if we have \
m_document + QString lineNumbersStyleNameTemp = \
m_document->lineNumbersStyleName(); +
+ if (lineNumbersStyleNameTemp.isEmpty() == false) { // if the \
style name is not empty + lineNumbersStyleName = \
lineNumbersStyleNameTemp; // use it + }
+ }
+
+ // prepare string for line numbering configuration
+ QString lineNumberingConfig("<text:linenumbering-configuration \
text:style-name=\"%1\" " + \
"style:num-format=\"1\" text:number-position=\"left\" text:increment=\"1\"/>"); +
+ m_mainStyles->insertRawOdfStyles(KoGenStyles::DocumentStyles,
+ \
lineNumberingConfig.arg(lineNumbersStyleName).toLatin1()); +
+ KoGenStyle *normalStyle = \
m_mainStyles->styleForModification(QString("Normal")); +
+ // if got Normal style, insert line numbering configuration in it
+ if (normalStyle) {
+ normalStyle->addProperty(QString("text:number-lines"), \
QString("true")); + \
normalStyle->addProperty(QString("text:line-number"), QString("0")); + } \
else { + kWarning() << "Could not find Normal style, numbering not \
added!"; + }
+
+ }
+ }
+
}
void KWordTextHandler::sectionEnd()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic