[Libreoffice-commits] .: 2 commits - src/docdraw.py src/msodraw.py

Miklos Vajna vmiklos at kemper.freedesktop.org
Wed Dec 5 05:32:54 PST 2012


 src/docdraw.py |   32 ++------------------------------
 src/msodraw.py |   16 +++++++++++++++-
 2 files changed, 17 insertions(+), 31 deletions(-)

New commits:
commit 49c31bfee519069e2afab3b10b62e0439255a6ff
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Wed Dec 5 14:32:48 2012 +0100

    docdraw: use msodraw.FDG

diff --git a/src/docdraw.py b/src/docdraw.py
index aba4c2c..2c4d5f8 100644
--- a/src/docdraw.py
+++ b/src/docdraw.py
@@ -49,19 +49,6 @@ class OfficeArtDggContainer(DOCDirStream):
         assert pos == self.pos + self.rh.recLen
         self.officeArtContent.pos = pos
 
-class OfficeArtFDG(DOCDirStream):
-    """The OfficeArtFDG record specifies the number of shapes, the drawing identifier, and the shape identifier of the last shape in a drawing."""
-    def __init__(self, officeArtDgContainer, pos):
-        DOCDirStream.__init__(self, officeArtDgContainer.bytes)
-        self.pos = pos
-
-    def dumpXml(self, compat, rh):
-        self.rh = rh
-        print '<drawingData type="OfficeArtFDG" offset="%d">' % self.pos
-        self.printAndSet("csp", self.readuInt32())
-        self.printAndSet("spidCur", self.readuInt32())
-        print '</drawingData>'
-
 class OfficeArtFSPGR(DOCDirStream):
     """The OfficeArtFSPGR record specifies the coordinate system of the group shape that the anchors of the child shape are expressed in."""
     def __init__(self, officeArtSpContainer, pos):
@@ -303,7 +290,7 @@ recMap = {
         0xf003: [OfficeArtSpgrContainer, True],
         0xf004: [OfficeArtSpContainer, True],
         0xf006: [msodraw.FDGGBlock],
-        0xf008: [OfficeArtFDG, True],
+        0xf008: [msodraw.FDG],
         0xf009: [OfficeArtFSPGR, True],
         0xf00a: [OfficeArtFSP, True],
         0xf00b: [OfficeArtFOPT, True],
diff --git a/src/msodraw.py b/src/msodraw.py
index 6c87b17..dd62660 100644
--- a/src/msodraw.py
+++ b/src/msodraw.py
@@ -159,6 +159,12 @@ class FDG:
         recHdl.appendLine("  shape count: %d"%self.shapeCount)
         recHdl.appendLine("  last shape ID: %d"%self.lastShapeID)
 
+    def dumpXml(self, recHdl, rh):
+        recHdl.appendLine('<drawingData type="OfficeArtFDG">')
+        recHdl.appendLine('<csp value="%d"/>' % self.shapeCount)
+        recHdl.appendLine('<spidCur value="%d"/>' % self.lastShapeID)
+        recHdl.appendLine('</drawingData>')
+
 
 class IDCL:
     def __init__ (self, strm):
commit d867ea88e44d67f7affb81813cdd65104caa1787
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Wed Dec 5 14:25:25 2012 +0100

    docdraw: use msodraw.SplitMenuColorContainer

diff --git a/src/docdraw.py b/src/docdraw.py
index 508d2fd..aba4c2c 100644
--- a/src/docdraw.py
+++ b/src/docdraw.py
@@ -11,21 +11,6 @@ from docdirstream import DOCDirStream
 import docsprm
 import msodraw
 
-class OfficeArtSplitMenuColorContainer(DOCDirStream):
-    """The OfficeArtSplitMenuColorContainer record specifies a container for the colors that were most recently used to format shapes."""
-    def __init__(self, officeArtDggContainer, pos):
-        DOCDirStream.__init__(self, officeArtDggContainer.bytes)
-        self.pos = pos
-
-    def dumpXml(self, compat, rh):
-        self.rh = rh
-        print '<splitColors type="OfficeArtSplitMenuColorContainer" offset="%d">' % self.pos
-        for i in ["fill", "line", "shadow", "3d"]:
-            print '<smca type="%s">' % i
-            msodraw.MSOCR(self).dumpXml(self)
-            print '</smca>'
-        print '</splitColors>'
-
 class OfficeArtDggContainer(DOCDirStream):
     """The OfficeArtDggContainer record type specifies the container for all the OfficeArt file records that contain document-wide data."""
     def __init__(self, officeArtContent, name):
@@ -323,7 +308,7 @@ recMap = {
         0xf00a: [OfficeArtFSP, True],
         0xf00b: [OfficeArtFOPT, True],
         0xf011: [OfficeArtClientData, True],
-        0xf11e: [OfficeArtSplitMenuColorContainer, True],
+        0xf11e: [msodraw.SplitMenuColorContainer],
         }
 
 # vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab:
diff --git a/src/msodraw.py b/src/msodraw.py
index 1b56ce3..6c87b17 100644
--- a/src/msodraw.py
+++ b/src/msodraw.py
@@ -519,7 +519,7 @@ class MSOCR:
         else:
             recHdl.appendLine("  RGB color: (red=%d, green=%d, blue=%d)"%(self.red, self.green, self.blue))
 
-    def dumpXml(self, recHdl):
+    def dumpXml(self, recHdl, rh):
         recHdl.appendLine('<msocr type="MSOCR">')
         recHdl.appendLine('<red value="%d"/>' % self.red)
         recHdl.appendLine('<green value="%d"/>' % self.green)
@@ -539,6 +539,14 @@ class SplitMenuColorContainer:
         for msocr in self.smca:
             msocr.appendLines(recHdl, rh)
 
+    def dumpXml(self, recHdl, rh):
+        recHdl.appendLine('<splitColors type="OfficeArtSplitMenuColorContainer">')
+        for i, smca in enumerate(self.smca):
+            recHdl.appendLine('<smca index="%d">' % i)
+            smca.dumpXml(recHdl, rh)
+            recHdl.appendLine('</smca>')
+        recHdl.appendLine('</splitColors>')
+
 
 class FClientAnchorSheet:
     """Excel-specific anchor data (OfficeArtClientAnchorSheet)"""


More information about the Libreoffice-commits mailing list