From kde-commits Tue May 31 21:57:28 2011 From: Sebastian Sauer Date: Tue, 31 May 2011 21:57:28 +0000 To: kde-commits Subject: =?utf-8?q?=5Bcalligra=5D_words/part=3A_Implement_loading_and_sav?= Message-Id: <20110531215728.5A318A60A4 () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=130687909816038 Git commit f959dd007f373e7938e7189e3e4658e9a192db49 by Sebastian Sauer. Committed on 31/05/2011 at 22:16. Pushed by sebsauer into branch 'master'. Implement loading and saving of ODF style:page-usage. M +22 -0 words/part/KWPageStyle.cpp M +18 -0 words/part/KWPageStyle.h M +2 -0 words/part/KWPageStyle_p.h http://commits.kde.org/calligra/f959dd007f373e7938e7189e3e4658e9a192db49 diff --git a/words/part/KWPageStyle.cpp b/words/part/KWPageStyle.cpp index 8ea3437..85f47c6 100644 --- a/words/part/KWPageStyle.cpp +++ b/words/part/KWPageStyle.cpp @@ -57,6 +57,7 @@ void KWPageStylePrivate::clear() endNoteDistance = 10; headers = KWord::HFTypeNone; footers = KWord::HFTypeNone; + pageUsage = KWPageStyle::AllPages; columns.columns = 1; columns.columnSpacing = 17; // ~ 6mm direction = KoText::AutoDirection; @@ -101,6 +102,16 @@ KWPageStyle::~KWPageStyle() { } +KWPageStyle::PageUsageType KWPageStyle::pageUsage() const +{ + return d ? d->pageUsage : KWPageStyle::AllPages; +} + +void KWPageStyle::setPageUsage(KWPageStyle::PageUsageType pageusage) const +{ + d->pageUsage = pageusage; +} + void KWPageStyle::setFooterPolicy(KWord::HeaderFooterType p) { d->footers = p; @@ -346,6 +357,17 @@ void KWPageStyle::loadOdf(KoOdfLoadingContext &context, const KoXmlElement &mast QString direction = props.attributeNS(KoXmlNS::style, "writing-mode", "lr-tb"); d->direction = KoText::directionFromString(direction); + QString pageUsage = props.attributeNS(KoXmlNS::style, "page-usage", "all"); + if (pageUsage == "left") { + d->pageUsage = LeftPages; + } else if (pageUsage == "mirrored") { + d->pageUsage = MirroredPages; + } else if (pageUsage == "right") { + d->pageUsage = RightPages; + } else { // "all" + d->pageUsage = AllPages; + } + KoXmlElement columns = KoXml::namedItemNS(props, KoXmlNS::style, "columns"); if (!columns.isNull()) { d->columns.columns = columns.attributeNS(KoXmlNS::fo, "column-count", "15").toInt(); diff --git a/words/part/KWPageStyle.h b/words/part/KWPageStyle.h index e7d5b92..38de51c 100644 --- a/words/part/KWPageStyle.h +++ b/words/part/KWPageStyle.h @@ -82,6 +82,24 @@ public: /// returns true if the KWPageStyle is valid bool isValid() const; + /// Specifies the type of pages that a page master should generate. + enum PageUsageType { + AllPages, ///< if there are no style:header-left or style:footer-left elements, the header and footer content is the same for left and right pages. + LeftPages, ///< style:header-left or style:footer-left elements are ignored. + MirroredPages, ///< if there are no style:header-left or style:footer-left elements, the header and footer content is the same for left and right pages. + RightPages ///< style:header-left or style:footer-left elements are ignored. + }; + + /** + * Returns the type of pages that should be generated. + */ + PageUsageType pageUsage() const; + + /** + * Sets the type of pages that should be generated. + */ + void setPageUsage(PageUsageType pageusage) const; + /** * Return the current columns settings. */ diff --git a/words/part/KWPageStyle_p.h b/words/part/KWPageStyle_p.h index fe7a878..3165979 100644 --- a/words/part/KWPageStyle_p.h +++ b/words/part/KWPageStyle_p.h @@ -30,6 +30,7 @@ public: ~KWPageStylePrivate(); void clear(); + KWPageStyle::PageUsageType pageUsage; KoColumns columns; KoPageLayout pageLayout; QString name; @@ -50,6 +51,7 @@ public: // called from the command void copyProperties(KWPageStylePrivate *other) { + pageUsage = other->pageUsage; columns = other->columns; pageLayout = other->pageLayout; //name = other->name;