You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libreoffice/0001-Fix-export-of-tdf-9367...

1329 lines
70 KiB

From b8e0c4739524504385955180df09f67887b3cb10 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
Date: Thu, 3 Sep 2015 15:07:49 +0100
Subject: [PATCH] Fix export of tdf#93675 to .docx as much as is possible
convert Axis constants to an enum and hilight suspicious absence
that compiler warnings then shows (which I saw manually in the first place)
of AXIS_SECONDARY_X
Change-Id: I873623141020633ea73f14f5c93322c2346b8efb
(cherry picked from commit 90ea1221856340860c406357e274000771b5b127)
Related: tdf#93676 'new' ms-alike numbering has same problem as old numbering
when it comes to nodes which were numbered, but have their number deleted,
where the indent from the numbering is still in effect in writer, but not
in msoffice.
(cherry picked from commit 54f9576aa43e3d6d687469aa0b2ea56ce0bbaca3)
Change-Id: I700f34171d8c9e9f6fb725d115ff1fe704ceb4bb
Related: tdf#93676 unwanted duplicate axis title exported
translateFromChart2AxisIndexToOox toggles between just two
states, so convert consumers/suppliers of that to bool
Then in exportAxesId toggle between primary/seconday pairs based on that, vs
always exporting AXIS_PRIMARY_X + primary/secondary y
Change-Id: I2649f5fc07323a73a3a215fdc52d5f1a5c31c349
(cherry picked from commit 24560df316de86cea93a37edd38e02a2f2d9c0c2)
use correct axis type in secondary x axis export
Change-Id: Ic21d88b55b22c650de4fd69479b51d0f640fec6f
(cherry picked from commit befef6a79feae0490bd3a1cf72b1134e5ff86111)
that change looked wrong
Change-Id: Id40a6802536120501133968d003267f21aaf5c27
(cherry picked from commit cfb717133c7276a7b154379d049e6fac0e5a49da)
related tdf#93676: make the bold property explicit for run export
Change-Id: I5f7f993f2cf0604ec62cea3460b651c07a7b4383
(cherry picked from commit a052479f3c85bdedddfa38cb03b0858003c965c3)
foo
Change-Id: I6e175b3f3b031535488660d45dbb62b998d47e66
related tdf#93676, we want to export all significant digits
The code comment mentions correctly that we want to show all significant
digits but a value of -1 means that the last digit before the decimal
point is rounded away.
Change-Id: Id91a6076e37629502281c5dda426018f93d1e465
(cherry picked from commit 442eb1ab9d8c1ad970993ef6c8a49e89601b7432)
related tdf#93676, also fix chart::CommonFunctors::DoubleToOUString
Change-Id: I8d63d942c7cb7876b864a9720e9a8adbc7345172
(cherry picked from commit bb5d638065590cba700ff46f5a0a1ffbe03b6f1a)
Related: tdf#93676 in msword chart appears with axis positioned between ticks
(cherry picked from commit 694419d813c14f6135aa4463d77f72c3a24a5cc5)
Change-Id: Ibd16d255a45a220faf7681a74785549c32969f78
---
chart2/qa/extras/chart2export.cxx | 9 ++
chart2/qa/extras/data/odt/axis-position.odt | Bin 0 -> 21224 bytes
chart2/source/inc/CommonFunctors.hxx | 8 +-
include/oox/export/chartexport.hxx | 29 +++--
oox/source/export/chartexport.cxx | 136 +++++++++++++--------
oox/source/export/drawingml.cxx | 2 +-
.../ooxmlexport/data/no-numlevel-but-indented.odt | Bin 0 -> 19535 bytes
sw/qa/extras/ooxmlexport/ooxmlexport7.cxx | 9 ++
sw/source/filter/ww8/wrtw8nds.cxx | 18 +--
9 files changed, 140 insertions(+), 71 deletions(-)
create mode 100644 chart2/qa/extras/data/odt/axis-position.odt
create mode 100644 sw/qa/extras/ooxmlexport/data/no-numlevel-but-indented.odt
diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index 5b40560..c30ee91 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -98,6 +98,7 @@ public:
void testPlotVisOnlyXLSX();
void testBarChartVaryColorsXLSX();
void testMultipleAxisXLSX();
+ void testAxisCrossBetweenXSLX();
CPPUNIT_TEST_SUITE(Chart2ExportTest);
CPPUNIT_TEST(testErrorBarXLSX);
@@ -160,6 +161,7 @@ public:
CPPUNIT_TEST(testPlotVisOnlyXLSX);
CPPUNIT_TEST(testBarChartVaryColorsXLSX);
CPPUNIT_TEST(testMultipleAxisXLSX);
+ CPPUNIT_TEST(testAxisCrossBetweenXSLX);
CPPUNIT_TEST_SUITE_END();
protected:
@@ -1462,6 +1464,13 @@ void Chart2ExportTest::testMultipleAxisXLSX()
assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:valAx/c:axPos[@val='r']", 1);
}
+void Chart2ExportTest::testAxisCrossBetweenXSLX()
+{
+ load("/chart2/qa/extras/data/odt/", "axis-position.odt");
+ xmlDocPtr pXmlDoc = parseExport("word/charts/chart", "Office Open XML Text");
+ assertXPath(pXmlDoc, "(//c:crossBetween)[1]", "val", "midCat");
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/odt/axis-position.odt b/chart2/qa/extras/data/odt/axis-position.odt
new file mode 100644
index 0000000000000000000000000000000000000000..35ea152aa0d9cd16783e5b021b05a68da0cbdf96
GIT binary patch
literal 21224
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
literal 0
HcmV?d00001
diff --git a/chart2/source/inc/CommonFunctors.hxx b/chart2/source/inc/CommonFunctors.hxx
index c7bcff1..390f13f 100644
--- a/chart2/source/inc/CommonFunctors.hxx
+++ b/chart2/source/inc/CommonFunctors.hxx
@@ -85,9 +85,9 @@ struct OOO_DLLPUBLIC_CHARTTOOLS AnyToString : public ::std::unary_function< ::co
return ::rtl::math::doubleToUString(
* pDouble,
rtl_math_StringFormat_Automatic,
- -1, // use maximum decimal places available
+ rtl_math_DecimalPlaces_Max, // use maximum decimal places available
sal_Char( '.' ), // decimal separator
- false // do not erase trailing zeros
+ true // remove trailing zeros
);
}
else if( eClass == ::com::sun::star::uno::TypeClass_STRING )
@@ -128,9 +128,9 @@ struct OOO_DLLPUBLIC_CHARTTOOLS DoubleToOUString : public ::std::unary_function<
return ::rtl::math::doubleToUString(
fNumber,
rtl_math_StringFormat_Automatic,
- -1, // use maximum number of decimal places
+ rtl_math_DecimalPlaces_Max, // use maximum decimal places available
static_cast< sal_Char >( '.' ),
- false // do not erase trailing zeros
+ true
);
}
};
diff --git a/include/oox/export/chartexport.hxx b/include/oox/export/chartexport.hxx
index c043fd7..7a4f2f7 100644
--- a/include/oox/export/chartexport.hxx
+++ b/include/oox/export/chartexport.hxx
@@ -64,18 +64,25 @@ namespace com { namespace sun { namespace star {
namespace oox { namespace drawingml {
-const sal_Int32 AXIS_PRIMARY_X = 1;
-const sal_Int32 AXIS_PRIMARY_Y = 2;
-const sal_Int32 AXIS_PRIMARY_Z = 3;
-const sal_Int32 AXIS_SECONDARY_X = 4;
-const sal_Int32 AXIS_SECONDARY_Y = 5;
+enum AxesType
+{
+ AXIS_PRIMARY_X = 1,
+ AXIS_PRIMARY_Y = 2,
+ AXIS_PRIMARY_Z = 3,
+ AXIS_SECONDARY_X = 4,
+ AXIS_SECONDARY_Y = 5
+};
struct AxisIdPair{
- sal_Int32 nAxisType;
+ AxesType nAxisType;
sal_Int32 nAxisId;
sal_Int32 nCrossAx;
- AxisIdPair( sal_Int32 nType, sal_Int32 nId, sal_Int32 nAx ): nAxisType( nType ),nAxisId( nId ),nCrossAx( nAx ) {}
+ AxisIdPair(AxesType nType, sal_Int32 nId, sal_Int32 nAx)
+ : nAxisType(nType)
+ , nAxisId(nId)
+ , nCrossAx(nAx)
+ {}
};
class OOX_DLLPUBLIC ChartExport : public DrawingML {
@@ -145,14 +152,14 @@ private:
void exportHiLowLines();
void exportUpDownBars(css::uno::Reference< css::chart2::XChartType > xChartType );
- void exportAllSeries(css::uno::Reference<css::chart2::XChartType> xChartType, sal_Int32& nAttachedAxis);
+ void exportAllSeries(css::uno::Reference<css::chart2::XChartType> xChartType, bool& rPrimaryAxes);
void exportSeries(css::uno::Reference< css::chart2::XChartType > xChartType,
- css::uno::Sequence<css::uno::Reference<css::chart2::XDataSeries> >& rSeriesSeq, sal_Int32& nAttachedAxis );
+ css::uno::Sequence<css::uno::Reference<css::chart2::XDataSeries> >& rSeriesSeq, bool& rPrimaryAxes);
void exportCandleStickSeries(
const css::uno::Sequence<
css::uno::Reference<
css::chart2::XDataSeries > > & aSeriesSeq,
- bool bJapaneseCandleSticks, sal_Int32& nAttachedAxis );
+ bool bJapaneseCandleSticks, bool& rPrimaryAxes );
void exportSeriesText(
const css::uno::Reference< css::chart2::data::XDataSequence >& xValueSeq );
void exportSeriesCategory(
@@ -186,7 +193,7 @@ private:
sal_Int32 nAxisType,
const char* sAxisPos,
const AxisIdPair& rAxisIdPair );
- void exportAxesId( sal_Int32 nAttachedAxis );
+ void exportAxesId(bool bPrimaryAxes);
void exportView3D();
bool isDeep3dChart();
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 2f0853b..d0fa7dc 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -119,12 +119,12 @@ namespace oox { namespace drawingml {
namespace {
-sal_Int32 translateFromChart2AxisIndexToOox(sal_Int32 nIndex)
+bool isPrimaryAxes(sal_Int32 nIndex)
{
assert(nIndex == 0 || nIndex == 1);
if (nIndex == 1)
- return AXIS_SECONDARY_Y;
- return AXIS_PRIMARY_Y;
+ return false;
+ return true;
}
}
@@ -1533,9 +1533,9 @@ void ChartExport::exportAreaChart( Reference< chart2::XChartType > xChartType )
FSEND );
exportGrouping( );
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportAllSeries( xChartType, nAttachedAxis );
- exportAxesId( nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportAllSeries(xChartType, bPrimaryAxes);
+ exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, nTypeId ) );
}
@@ -1566,8 +1566,8 @@ void ChartExport::exportBarChart( Reference< chart2::XChartType > xChartType )
XML_val, varyColors,
FSEND );
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportAllSeries( xChartType, nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportAllSeries(xChartType, bPrimaryAxes);
Reference< XPropertySet > xTypeProp( xChartType, uno::UNO_QUERY );
@@ -1626,7 +1626,7 @@ void ChartExport::exportBarChart( Reference< chart2::XChartType > xChartType )
}
}
- exportAxesId( nAttachedAxis );
+ exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, nTypeId ) );
}
@@ -1642,14 +1642,14 @@ void ChartExport::exportBubbleChart( Reference< chart2::XChartType > xChartType
XML_val, varyColors,
FSEND );
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportAllSeries( xChartType, nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportAllSeries(xChartType, bPrimaryAxes);
pFS->singleElement(FSNS(XML_c, XML_bubble3D),
XML_val, "0",
FSEND);
- exportAxesId( nAttachedAxis );
+ exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, XML_bubbleChart ) );
}
@@ -1660,8 +1660,8 @@ void ChartExport::exportDoughnutChart( Reference< chart2::XChartType > xChartTyp
pFS->startElement( FSNS( XML_c, XML_doughnutChart ),
FSEND );
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportAllSeries( xChartType, nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportAllSeries(xChartType, bPrimaryAxes);
// firstSliceAng
exportFirstSliceAng( );
//FIXME: holeSize
@@ -1734,8 +1734,8 @@ void ChartExport::exportLineChart( Reference< chart2::XChartType > xChartType )
exportGrouping( );
// TODO: show marker symbol in series?
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportSeries( xChartType, *itr, nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportSeries(xChartType, *itr, bPrimaryAxes);
// show marker?
sal_Int32 nSymbolType = css::chart::ChartSymbolType::NONE;
@@ -1753,7 +1753,7 @@ void ChartExport::exportLineChart( Reference< chart2::XChartType > xChartType )
FSEND );
}
- exportAxesId( nAttachedAxis );
+ exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, nTypeId ) );
}
@@ -1779,8 +1779,8 @@ void ChartExport::exportPieChart( Reference< chart2::XChartType > xChartType )
XML_val, varyColors,
FSEND );
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportAllSeries( xChartType, nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportAllSeries(xChartType, bPrimaryAxes);
if( !mbIs3DChart )
{
@@ -1807,9 +1807,9 @@ void ChartExport::exportRadarChart( Reference< chart2::XChartType > xChartType)
pFS->singleElement( FSNS( XML_c, XML_radarStyle ),
XML_val, radarStyle,
FSEND );
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportAllSeries( xChartType, nAttachedAxis );
- exportAxesId( nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportAllSeries(xChartType, bPrimaryAxes);
+ exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, XML_radarChart ) );
}
@@ -1848,9 +1848,9 @@ void ChartExport::exportScatterChart( Reference< chart2::XChartType > xChartType
FSEND );
// FIXME: should export xVal and yVal
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportSeries( xChartType, *itr, nAttachedAxis );
- exportAxesId( nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportSeries(xChartType, *itr, bPrimaryAxes);
+ exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, XML_scatterChart ) );
}
@@ -1862,8 +1862,7 @@ void ChartExport::exportStockChart( Reference< chart2::XChartType > xChartType )
pFS->startElement( FSNS( XML_c, XML_stockChart ),
FSEND );
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
-
+ bool bPrimaryAxes = true;
bool bJapaneseCandleSticks = false;
Reference< beans::XPropertySet > xCTProp( xChartType, uno::UNO_QUERY );
if( xCTProp.is())
@@ -1872,7 +1871,7 @@ void ChartExport::exportStockChart( Reference< chart2::XChartType > xChartType )
Reference< chart2::XDataSeriesContainer > xDSCnt( xChartType, uno::UNO_QUERY );
if(xDSCnt.is())
exportCandleStickSeries(
- xDSCnt->getDataSeries(), bJapaneseCandleSticks, nAttachedAxis );
+ xDSCnt->getDataSeries(), bJapaneseCandleSticks, bPrimaryAxes );
// export stock properties
Reference< css::chart::XStatisticDisplay > xStockPropProvider( mxDiagram, uno::UNO_QUERY );
@@ -1882,7 +1881,7 @@ void ChartExport::exportStockChart( Reference< chart2::XChartType > xChartType )
exportUpDownBars(xChartType);
}
- exportAxesId( nAttachedAxis );
+ exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, XML_stockChart ) );
}
@@ -1961,14 +1960,14 @@ void ChartExport::exportSurfaceChart( Reference< chart2::XChartType > xChartType
nTypeId = XML_surface3DChart;
pFS->startElement( FSNS( XML_c, nTypeId ),
FSEND );
- sal_Int32 nAttachedAxis = AXIS_PRIMARY_Y;
- exportAllSeries( xChartType, nAttachedAxis );
- exportAxesId( nAttachedAxis );
+ bool bPrimaryAxes = true;
+ exportAllSeries(xChartType, bPrimaryAxes);
+ exportAxesId(bPrimaryAxes);
pFS->endElement( FSNS( XML_c, nTypeId ) );
}
-void ChartExport::exportAllSeries(Reference<chart2::XChartType> xChartType, sal_Int32& rAttachedAxis)
+void ChartExport::exportAllSeries(Reference<chart2::XChartType> xChartType, bool& rPrimaryAxes)
{
Reference< chart2::XDataSeriesContainer > xDSCnt( xChartType, uno::UNO_QUERY );
if( ! xDSCnt.is())
@@ -1976,11 +1975,11 @@ void ChartExport::exportAllSeries(Reference<chart2::XChartType> xChartType, sal_
// export dataseries for current chart-type
Sequence< Reference< chart2::XDataSeries > > aSeriesSeq( xDSCnt->getDataSeries());
- exportSeries(xChartType, aSeriesSeq, rAttachedAxis);
+ exportSeries(xChartType, aSeriesSeq, rPrimaryAxes);
}
void ChartExport::exportSeries( Reference<chart2::XChartType> xChartType,
- Sequence<Reference<chart2::XDataSeries> >& rSeriesSeq, sal_Int32& rAttachedAxis )
+ Sequence<Reference<chart2::XDataSeries> >& rSeriesSeq, bool& rPrimaryAxes )
{
OUString aLabelRole = xChartType->getRoleOfSequenceForSeriesLabel();
OUString aChartType( xChartType->getChartType());
@@ -2048,7 +2047,7 @@ void ChartExport::exportSeries( Reference<chart2::XChartType> xChartType,
{
sal_Int32 nLocalAttachedAxis;
mAny >>= nLocalAttachedAxis;
- rAttachedAxis = translateFromChart2AxisIndexToOox(nLocalAttachedAxis);
+ rPrimaryAxes = isPrimaryAxes(nLocalAttachedAxis);
}
// export shape properties
@@ -2181,12 +2180,12 @@ void ChartExport::exportSeries( Reference<chart2::XChartType> xChartType,
void ChartExport::exportCandleStickSeries(
const Sequence< Reference< chart2::XDataSeries > > & aSeriesSeq,
bool /*bJapaneseCandleSticks*/,
- sal_Int32& rAttachedAxis )
+ bool& rPrimaryAxes)
{
for( sal_Int32 nSeriesIdx=0; nSeriesIdx<aSeriesSeq.getLength(); ++nSeriesIdx )
{
Reference< chart2::XDataSeries > xSeries( aSeriesSeq[nSeriesIdx] );
- rAttachedAxis = lcl_isSeriesAttachedToFirstAxis( xSeries ) ? AXIS_PRIMARY_Y : AXIS_SECONDARY_Y;
+ rPrimaryAxes = lcl_isSeriesAttachedToFirstAxis(xSeries) ? true : false;
Reference< chart2::data::XDataSource > xSource( xSeries, uno::UNO_QUERY );
if( xSource.is())
@@ -2456,6 +2455,21 @@ void ChartExport::exportAxes( )
}
}
+namespace {
+
+sal_Int32 getXAxisType(sal_Int32 eChartType)
+{
+ if( (eChartType == chart::TYPEID_SCATTER)
+ || (eChartType == chart::TYPEID_BUBBLE) )
+ return XML_valAx;
+ else if( eChartType == chart::TYPEID_STOCK )
+ return XML_dateAx;
+
+ return XML_catAx;
+}
+
+}
+
void ChartExport::exportAxis(const AxisIdPair& rAxisIdPair)
{
// get some properties from document first
@@ -2519,12 +2533,8 @@ void ChartExport::exportAxis(const AxisIdPair& rAxisIdPair)
if( bHasXAxisMinorGrid )
xMinorGrid.set( xAxisXSupp->getXHelpGrid(), uno::UNO_QUERY );
- sal_Int32 eChartType = getChartType( );
- if( (eChartType == chart::TYPEID_SCATTER)
- || (eChartType == chart::TYPEID_BUBBLE) )
- nAxisType = XML_valAx;
- else if( eChartType == chart::TYPEID_STOCK )
- nAxisType = XML_dateAx;
+ sal_Int32 eChartType = getChartType();
+ nAxisType = getXAxisType(eChartType);
// FIXME: axPos, need to check axis direction
sAxPos = "b";
break;
@@ -2568,6 +2578,23 @@ void ChartExport::exportAxis(const AxisIdPair& rAxisIdPair)
sAxPos = "b";
break;
}
+ case AXIS_SECONDARY_X:
+ {
+ Reference< css::chart::XTwoAxisXSupplier > xAxisTwoXSupp( mxDiagram, uno::UNO_QUERY );
+ if( xAxisTwoXSupp.is())
+ xAxisProp = xAxisTwoXSupp->getSecondaryXAxis();
+ if( bHasSecondaryXAxisTitle )
+ {
+ Reference< css::chart::XSecondAxisTitleSupplier > xAxisSupp( mxDiagram, uno::UNO_QUERY );
+ xAxisTitle.set( xAxisSupp->getSecondXAxisTitle(), uno::UNO_QUERY );
+ }
+
+ sal_Int32 eChartType = getChartType();
+ nAxisType = getXAxisType(eChartType);
+ // FIXME: axPos, need to check axis direction
+ sAxPos = "t";
+ break;
+ }
case AXIS_SECONDARY_Y:
{
Reference< css::chart::XTwoAxisYSupplier > xAxisTwoYSupp( mxDiagram, uno::UNO_QUERY );
@@ -2869,6 +2896,17 @@ void ChartExport::_exportAxis(
FSEND );
}
+ // TODO: MSO does not support random axis cross position for
+ // category axis, so we ideally need an algorithm that decides
+ // when to map the crossing to the tick mark and when to the
+ // middle of the category
+ if (nAxisType == XML_valAx)
+ {
+ pFS->singleElement( FSNS( XML_c, XML_crossBetween ),
+ XML_val, "midCat",
+ FSEND );
+ }
+
// majorUnit
bool bAutoStepMain = false;
if(GetProperty( xAxisProp, "AutoStepMain" ) )
@@ -3179,12 +3217,14 @@ void ChartExport::exportDataPoints(
}
}
-void ChartExport::exportAxesId( sal_Int32 nAttachedAxis )
+void ChartExport::exportAxesId(bool bPrimaryAxes)
{
sal_Int32 nAxisIdx = lcl_generateRandomValue();
sal_Int32 nAxisIdy = lcl_generateRandomValue();
- maAxes.push_back( AxisIdPair( AXIS_PRIMARY_X, nAxisIdx, nAxisIdy ) );
- maAxes.push_back( AxisIdPair( nAttachedAxis, nAxisIdy, nAxisIdx ) );
+ AxesType eXAxis = bPrimaryAxes ? AXIS_PRIMARY_X : AXIS_SECONDARY_X;
+ AxesType eYAxis = bPrimaryAxes ? AXIS_PRIMARY_Y : AXIS_SECONDARY_Y;
+ maAxes.push_back( AxisIdPair( eXAxis, nAxisIdx, nAxisIdy ) );
+ maAxes.push_back( AxisIdPair( eYAxis, nAxisIdy, nAxisIdx ) );
FSHelperPtr pFS = GetFS();
pFS->singleElement( FSNS( XML_c, XML_axId ),
XML_val, I32S( nAxisIdx ),
@@ -3192,7 +3232,7 @@ void ChartExport::exportAxesId( sal_Int32 nAttachedAxis )
pFS->singleElement( FSNS( XML_c, XML_axId ),
XML_val, I32S( nAxisIdy ),
FSEND );
- if( mbHasZAxis )
+ if (mbHasZAxis)
{
sal_Int32 nAxisIdz = 0;
if( isDeep3dChart() )
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 878276a..ba32712 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -1206,7 +1206,7 @@ void DrawingML::WriteRunProperties( Reference< XPropertySet > rRun, bool bIsFiel
PropertyState eState;
SvtScriptType nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage( Application::GetSettings().GetLanguageTag().getLanguageType() );
bool bComplex = ( nScriptType == SvtScriptType::COMPLEX );
- const char* bold = NULL;
+ const char* bold = "0";
const char* italic = NULL;
const char* underline = NULL;
const char* strikeout = NULL;
diff --git a/sw/qa/extras/ooxmlexport/data/no-numlevel-but-indented.odt b/sw/qa/extras/ooxmlexport/data/no-numlevel-but-indented.odt
new file mode 100644
index 0000000000000000000000000000000000000000..e435acdad35e581e1eb627d054951a4c81697712
GIT binary patch
literal 19535
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
NgayD23Mbt`JOD+tDuw_6
literal 0
HcmV?d00001
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
index 2af85c3..efd9223 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
@@ -1004,6 +1004,15 @@ DECLARE_OOXMLEXPORT_TEST(testExportAdjustmentValue, "tdf91429.docx")
assertXPath(pXmlDoc,"/w:document/w:body/w:p/w:r[1]/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/a:graphic/a:graphicData/wps:wsp/wps:spPr/a:prstGeom/a:avLst/a:gd", "fmla", "val 50000");
}
+
+DECLARE_OOXMLEXPORT_TEST(testTDF93675, "no-numlevel-but-indented.odt")
+{
+ xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+ if (!pXmlDoc)
+ return;
+ assertXPath(pXmlDoc, "//w:ind", "start", "1418");
+}
+
#endif
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx
index 9adbbb1..ed29d59 100644
--- a/sw/source/filter/ww8/wrtw8nds.cxx
+++ b/sw/source/filter/ww8/wrtw8nds.cxx
@@ -2698,15 +2698,19 @@ void MSWordExportBase::OutputTextNode( const SwTextNode& rNode )
SvxNumberFormat::LABEL_WIDTH_AND_POSITION )
{
aLRSpace.SetTextLeft( aLRSpace.GetLeft() + rNumFormat.GetAbsLSpace() );
+ }
+ else
+ {
+ aLRSpace.SetTextLeft( aLRSpace.GetLeft() + rNumFormat.GetIndentAt() );
+ }
- // new first line indent = 0
- // (first line indent is ignored for NO_NUMLEVEL)
- if (!bParaRTL)
- aLRSpace.SetTextFirstLineOfst( 0 );
+ // new first line indent = 0
+ // (first line indent is ignored for NO_NUMLEVEL)
+ if (!bParaRTL)
+ aLRSpace.SetTextFirstLineOfst( 0 );
- // put back the new item
- pTmpSet->Put( aLRSpace );
- }
+ // put back the new item
+ pTmpSet->Put( aLRSpace );
// assure that numbering rule is in <pTmpSet>
if (SfxItemState::SET != pTmpSet->GetItemState(RES_PARATR_NUMRULE, false) )
--
2.4.0