diff options
author | Ravindra_Vidhate <ravindra.vidhate@synerzip.com> | 2015-05-15 14:35:40 +0530 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2015-07-20 23:09:07 +0200 |
commit | b71901da42a0429ff759b96bc9dd7cfd1bd189ac (patch) | |
tree | 0a0a415409f5b3493f8230e7709ba213ae621dfa /sc/qa | |
parent | 0a91e08a46118b495f80f7901b2132b194d6d409 (diff) |
tdf#68868: better handle xlsx with samecell anchor image
Problem Description :
In the bugzill attached file, a image is anchored to the cell,
it is shown as stretched image after opening in the LO.
The image anchor attribute <xdr:from> and <xdr:to> are having the
same value. It means <xdr:col>, <xdr:colOff>, <xdr:row>, <xdr:rowOff>
tag values of from and to are the same.
So this image will have width and height as 1.
Although, this is very rare case, where from and to has the same
attribute values. Eventhough, we tried to create such kind of EXCEL
file but failed to do so.
Solution :
When twocellAnchor attributes of from and to has the same value, then
hide the shape.
If we avoid to add the shape, then the original image file will be
shown as stretched. If we don't add it into the shape, the original
image will not be preserved.
Change-Id: I48ea1cffcdfb013cec115ef8df5401e532fd2efd
Diffstat (limited to 'sc/qa')
-rwxr-xr-x | sc/qa/unit/data/xlsx/cell-anchored-hidden-shapes.xlsx | bin | 0 -> 121247 bytes | |||
-rw-r--r-- | sc/qa/unit/subsequent_filters-test.cxx | 23 |
2 files changed, 23 insertions, 0 deletions
diff --git a/sc/qa/unit/data/xlsx/cell-anchored-hidden-shapes.xlsx b/sc/qa/unit/data/xlsx/cell-anchored-hidden-shapes.xlsx Binary files differnew file mode 100755 index 000000000000..7e79cc3157f3 --- /dev/null +++ b/sc/qa/unit/data/xlsx/cell-anchored-hidden-shapes.xlsx diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index f9b35fa391dd..9ab7f162f105 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -172,6 +172,7 @@ public: void testNumberFormatCSV(); void testCellAnchoredShapesODS(); + void testCellAnchoredHiddenShapesXLSX(); void testPivotTableBasicODS(); void testPivotTableNamedRangeSourceODS(); @@ -261,6 +262,7 @@ public: CPPUNIT_TEST(testNumberFormatCSV); CPPUNIT_TEST(testCellAnchoredShapesODS); + CPPUNIT_TEST(testCellAnchoredHiddenShapesXLSX); CPPUNIT_TEST(testPivotTableBasicODS); CPPUNIT_TEST(testPivotTableNamedRangeSourceODS); @@ -1701,6 +1703,27 @@ void ScFiltersTest::testCellAnchoredShapesODS() xDocSh->DoClose(); } +void ScFiltersTest::testCellAnchoredHiddenShapesXLSX() +{ + ScDocShellRef xDocSh = loadDoc("cell-anchored-hidden-shapes.", XLSX); + CPPUNIT_ASSERT_MESSAGE("Failed to load cell-anchored-shapes.xlsx", xDocSh.Is()); + + // There are two cell-anchored objects on the first sheet. + ScDocument& rDoc = xDocSh->GetDocument(); + + CPPUNIT_ASSERT_MESSAGE("There should be at least one sheet.", rDoc.GetTableCount() > 0); + + ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer(); + SdrPage* pPage = pDrawLayer->GetPage(0); + CPPUNIT_ASSERT_MESSAGE("draw page for sheet 1 should exist.", pPage); + const size_t nCount = pPage->GetObjCount(); + CPPUNIT_ASSERT_MESSAGE("There should be 2 shapes.", !(nCount == 2)); + + SdrObject* pObj = pPage->GetObj(1); + CPPUNIT_ASSERT_MESSAGE("Failed to get drawing object.", pObj); + CPPUNIT_ASSERT_MESSAGE("The shape having same twocellanchor from and to attribute values, is visible.", !pObj->IsVisible()); +} + namespace { class FindDimByName : std::unary_function<const ScDPSaveDimension*, bool> |