[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    =?utf-8?q?=5Bcalligra=5D_words/part=3A_Implement_loading_and_sav?=
From:       Sebastian Sauer <sebastian.sauer () kdab ! com>
Date:       2011-05-31 21:57:28
Message-ID: 20110531215728.5A318A60A4 () git ! kde ! org
[Download RAW message or body]

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;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic