aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2012-03-01 09:03:16 +0000
committerYegor Kozlov <yegor@apache.org>2012-03-01 09:03:16 +0000
commita437cd08acbf8f9c89679ca1c749f77c0450f00e (patch)
tree75469f17f41f47b4f5fb0b25f81112c5a234bcd2
parent2c1f56d1fbdb47c2a541f7f70b984b0d60ea2a26 (diff)
downloadpoi-a437cd08acbf8f9c89679ca1c749f77c0450f00e.tar.gz
poi-a437cd08acbf8f9c89679ca1c749f77c0450f00e.zip
bugzilla 52244 - use correct text attributes when presentation has multiple TxMasterStyleAtoms of the same type
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1295478 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/documentation/content/xdocs/status.xml1
-rw-r--r--src/scratchpad/src/org/apache/poi/hslf/model/SlideMaster.java3
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java17
-rw-r--r--test-data/slideshow/52244.pptbin0 -> 78848 bytes
4 files changed, 20 insertions, 1 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml
index 42050460be..aeb943121b 100644
--- a/src/documentation/content/xdocs/status.xml
+++ b/src/documentation/content/xdocs/status.xml
@@ -34,6 +34,7 @@
<changes>
<release version="3.8-beta6" date="2012-??-??">
+ <action dev="poi-developers" type="fix">52244 - use correct text attributes when presentation has multiple TxMasterStyleAtoms of the same type</action>
<action dev="poi-developers" type="add">support setting background color of sheet tab in XSSF</action>
<action dev="poi-developers" type="add">51564 - support for enforcing fields update in XWPF</action>
<action dev="poi-developers" type="add">51673 - support grouping rows in SXSSF</action>
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/SlideMaster.java b/src/scratchpad/src/org/apache/poi/hslf/model/SlideMaster.java
index 5ebbb27fba..a103d09c77 100644
--- a/src/scratchpad/src/org/apache/poi/hslf/model/SlideMaster.java
+++ b/src/scratchpad/src/org/apache/poi/hslf/model/SlideMaster.java
@@ -124,7 +124,8 @@ public final class SlideMaster extends MasterSheet {
TxMasterStyleAtom[] txrec = ((MainMaster)getSheetContainer()).getTxMasterStyleAtoms();
for (int i = 0; i < txrec.length; i++) {
- _txmaster[txrec[i].getTextType()] = txrec[i];
+ int txType = txrec[i].getTextType();
+ if(_txmaster[txType] == null) _txmaster[txType] = txrec[i];
}
}
}
diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java
index 471ee5bb50..f59eef3a5f 100644
--- a/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java
+++ b/src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextRun.java
@@ -531,4 +531,21 @@ public final class TestTextRun extends TestCase {
}
}
+
+ public void test52244() throws IOException {
+ SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("52244.ppt"));
+ Slide slide = ppt.getSlides()[0];
+ TextRun[] runs = slide.getTextRuns();
+
+ assertEquals("Arial", runs[0].getRichTextRuns()[0].getFontName());
+ assertEquals(36, runs[0].getRichTextRuns()[0].getFontSize());
+
+ assertEquals("Arial", runs[1].getRichTextRuns()[0].getFontName());
+ assertEquals(24, runs[1].getRichTextRuns()[0].getFontSize());
+
+ assertEquals("Arial", runs[2].getRichTextRuns()[0].getFontName());
+ assertEquals(32, runs[2].getRichTextRuns()[0].getFontSize());
+
+ }
+
}
diff --git a/test-data/slideshow/52244.ppt b/test-data/slideshow/52244.ppt
new file mode 100644
index 0000000000..aaf3843608
--- /dev/null
+++ b/test-data/slideshow/52244.ppt
Binary files differ