LibreOffice Module xmloff (master) 1
PropertyMaps.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include "PropertyMap.hxx"
21
23
24#include "SchXMLTools.hxx"
31#include <propimp0.hxx>
32
34#include <xmloff/attrlist.hxx>
36#include <xmloff/xmluconv.hxx>
38#include <xmloff/xmlexp.hxx>
39#include <xmloff/xmltoken.hxx>
40#include <xmloff/prhdlfac.hxx>
41
42#include <com/sun/star/awt/Size.hpp>
43#include <com/sun/star/drawing/LineStyle.hpp>
44#include <com/sun/star/drawing/FillStyle.hpp>
45#include <com/sun/star/chart/ChartAxisMarks.hpp>
46#include <com/sun/star/chart/ChartDataCaption.hpp>
47#include <com/sun/star/chart2/MovingAverageType.hpp>
48#include <com/sun/star/chart2/XChartDocument.hpp>
49#include <com/sun/star/chart2/data/XRangeXMLConversion.hpp>
50#include <com/sun/star/graphic/XGraphic.hpp>
51
52#include <rtl/ustrbuf.hxx>
53#include <xmlprop.hxx>
54
55#define SCH_XML_SETFLAG( status, flag ) (status)|= (flag)
56#define SCH_XML_UNSETFLAG( status, flag ) (status) = ((status) | (flag)) - (flag)
57
58using namespace com::sun::star;
59using namespace ::xmloff::token;
60using namespace css::chart2;
61
62
63#define MAP_FULL( ApiName, NameSpace, XMLTokenName, XMLType, ContextId, EarliestODFVersionForExport ) { ApiName, XML_NAMESPACE_##NameSpace, xmloff::token::XMLTokenName, XMLType|XML_TYPE_PROP_CHART, ContextId, EarliestODFVersionForExport, false }
64#define MAP_ENTRY( a, ns, nm, t ) { a, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFSVER_010, false }
65#define MAP_ENTRY_ODF12( a, ns, nm, t ) { a, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFSVER_012, false }
66#define MAP_ENTRY_ODF13( a, ns, nm, t ) { a, ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFSVER_013, false }
67#define MAP_ENTRY_ODF_EXT( a, ns, nm, t ) { a, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, false }
68#define MAP_ENTRY_ODF_EXT_IMPORT( a, ns, nm, t ) { a, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, 0, SvtSaveOptions::ODFSVER_FUTURE_EXTENDED, true }
69#define MAP_CONTEXT( a, ns, nm, t, c ) { a, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART, c, SvtSaveOptions::ODFSVER_010, false }
70#define MAP_SPECIAL( a, ns, nm, t, c ) { a, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART | MID_FLAG_SPECIAL_ITEM, c, SvtSaveOptions::ODFSVER_010, false }
71#define MAP_SPECIAL_ODF12( a, ns, nm, t, c ) { a, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART | MID_FLAG_SPECIAL_ITEM, c, SvtSaveOptions::ODFSVER_012, false }
72#define MAP_SPECIAL_ODF13( a, ns, nm, t, c ) { a, XML_NAMESPACE_##ns, xmloff::token::nm, t|XML_TYPE_PROP_CHART | MID_FLAG_SPECIAL_ITEM, c, SvtSaveOptions::ODFSVER_013, false }
73#define MAP_ENTRY_END { nullptr }
74
75// PropertyMap for Chart properties drawing- and
76// textproperties are added later using the chaining
77// mechanism
78
80{
81 // chart subtypes
82 MAP_ENTRY( PROP_UpDown, CHART, XML_JAPANESE_CANDLE_STICK, XML_TYPE_BOOL ), // formerly XML_STOCK_UPDOWN_BARS
89 // ODF 1.3 OFFICE-3662 added values
92 // type: "none", "automatic", "named-symbol" or "image"
94 // if type=="named-symbol" => name of symbol (square, diamond, ...)
96 // if type=="image" => an xlink:href element with a linked (package) URI
101 // #i32368# property should no longer be used as XML-property (in OASIS
102 // format), but is still ex-/imported for compatibility with the OOo file format
105
112 // #72304 Chart data table flags
119 // Chart display units flags
123
128
133
134 // Data table
139
141
142 // spline settings
145
146 // plot-area properties
150
151 // axis properties
174
179
180 // statistical properties
181
190
191 // regression curve properties
195
196 // ODF 1.3 OFFICE-3958
205
206 // ODF 1.3 OFFICE-3959
209
214
217
220
221 // errorbars properties (chart2)
224
225 // series/data-point properties
235
236 // text properties for titles
239
240 // for compatibility to pre 6.0beta documents
241// MAP_SPECIAL( PROP_SymbolBitmap", CHART, XML_SYMBOL_IMAGE_NAME, XML_TYPE_STRING, XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE_NAME ),
242
244
246};
247
248// maps for enums to XML attributes
249
251{
252 { ::xmloff::token::XML_NEAR_AXIS, css::chart::ChartAxisLabelPosition_NEAR_AXIS },
253 { ::xmloff::token::XML_NEAR_AXIS_OTHER_SIDE, css::chart::ChartAxisLabelPosition_NEAR_AXIS_OTHER_SIDE },
254 { ::xmloff::token::XML_OUTSIDE_START, css::chart::ChartAxisLabelPosition_OUTSIDE_START },
255 { ::xmloff::token::XML_OUTSIDE_END, css::chart::ChartAxisLabelPosition_OUTSIDE_END },
256 { ::xmloff::token::XML_OUTSIDE_MINIMUM, css::chart::ChartAxisLabelPosition_OUTSIDE_START },//#i114142#
257 { ::xmloff::token::XML_OUTSIDE_MAXIMUM, css::chart::ChartAxisLabelPosition_OUTSIDE_END },//#i114142#
258 { ::xmloff::token::XML_TOKEN_INVALID, css::chart::ChartAxisLabelPosition(0) }
259};
260
262{
263 { ::xmloff::token::XML_AT_LABELS, css::chart::ChartAxisMarkPosition_AT_LABELS },
264 { ::xmloff::token::XML_AT_AXIS, css::chart::ChartAxisMarkPosition_AT_AXIS },
265 { ::xmloff::token::XML_AT_LABELS_AND_AXIS, css::chart::ChartAxisMarkPosition_AT_LABELS_AND_AXIS },
266 { ::xmloff::token::XML_TOKEN_INVALID, css::chart::ChartAxisMarkPosition(0) }
267};
268
270{
271 { ::xmloff::token::XML_SIDE_BY_SIDE, css::chart::ChartAxisArrangeOrderType_SIDE_BY_SIDE },
272 { ::xmloff::token::XML_STAGGER_EVEN, css::chart::ChartAxisArrangeOrderType_STAGGER_EVEN },
273 { ::xmloff::token::XML_STAGGER_ODD, css::chart::ChartAxisArrangeOrderType_STAGGER_ODD },
274 { ::xmloff::token::XML_TOKEN_INVALID, css::chart::ChartAxisArrangeOrderType(0) }
275};
276
278{
279 { ::xmloff::token::XML_NONE, css::chart::ErrorBarStyle::NONE },
280 { ::xmloff::token::XML_VARIANCE, css::chart::ErrorBarStyle::VARIANCE },
281 { ::xmloff::token::XML_STANDARD_DEVIATION, css::chart::ErrorBarStyle::STANDARD_DEVIATION },
282 { ::xmloff::token::XML_CONSTANT, css::chart::ErrorBarStyle::ABSOLUTE },
283 { ::xmloff::token::XML_PERCENTAGE, css::chart::ErrorBarStyle::RELATIVE },
284 { ::xmloff::token::XML_ERROR_MARGIN, css::chart::ErrorBarStyle::ERROR_MARGIN },
285 { ::xmloff::token::XML_STANDARD_ERROR, css::chart::ErrorBarStyle::STANDARD_ERROR },
286 { ::xmloff::token::XML_CELL_RANGE, css::chart::ErrorBarStyle::FROM_DATA },
288};
289
291{
292 { ::xmloff::token::XML_CUBOID, css::chart::ChartSolidType::RECTANGULAR_SOLID },
293 { ::xmloff::token::XML_CYLINDER, css::chart::ChartSolidType::CYLINDER },
294 { ::xmloff::token::XML_CONE, css::chart::ChartSolidType::CONE },
295 { ::xmloff::token::XML_PYRAMID, css::chart::ChartSolidType::PYRAMID },
297};
298
300{
301 { ::xmloff::token::XML_COLUMNS, css::chart::ChartDataRowSource_COLUMNS },
302 { ::xmloff::token::XML_ROWS, css::chart::ChartDataRowSource_ROWS },
303 { ::xmloff::token::XML_TOKEN_INVALID, css::chart::ChartDataRowSource(0) }
304};
305
307{
308 // this is neither an enum nor a constants group, but just a
309 // documented long property
314};
315
317{
318 // this is neither an enum nor a constants group, but just a
319 // documented long property
327 // the GNM values should only be used for reading Gnumeric ods files
328 // they should never be used for writing ods file
334};
335
337{
338 { ::xmloff::token::XML_AVOID_OVERLAP, css::chart::DataLabelPlacement::AVOID_OVERLAP },
339 { ::xmloff::token::XML_CENTER, css::chart::DataLabelPlacement::CENTER },
340 { ::xmloff::token::XML_TOP, css::chart::DataLabelPlacement::TOP },
341 { ::xmloff::token::XML_TOP_LEFT, css::chart::DataLabelPlacement::TOP_LEFT },
342 { ::xmloff::token::XML_LEFT, css::chart::DataLabelPlacement::LEFT },
343 { ::xmloff::token::XML_BOTTOM_LEFT, css::chart::DataLabelPlacement::BOTTOM_LEFT },
344 { ::xmloff::token::XML_BOTTOM, css::chart::DataLabelPlacement::BOTTOM },
345 { ::xmloff::token::XML_BOTTOM_RIGHT, css::chart::DataLabelPlacement::BOTTOM_RIGHT },
346 { ::xmloff::token::XML_RIGHT, css::chart::DataLabelPlacement::RIGHT },
347 { ::xmloff::token::XML_TOP_RIGHT, css::chart::DataLabelPlacement::TOP_RIGHT },
348 { ::xmloff::token::XML_INSIDE, css::chart::DataLabelPlacement::INSIDE },
349 { ::xmloff::token::XML_OUTSIDE, css::chart::DataLabelPlacement::OUTSIDE },
350 { ::xmloff::token::XML_NEAR_ORIGIN, css::chart::DataLabelPlacement::NEAR_ORIGIN },
352};
353
355{
356 { ::xmloff::token::XML_LEAVE_GAP, css::chart::MissingValueTreatment::LEAVE_GAP },
357 { ::xmloff::token::XML_USE_ZERO, css::chart::MissingValueTreatment::USE_ZERO },
358 { ::xmloff::token::XML_IGNORE, css::chart::MissingValueTreatment::CONTINUE },
360};
361
362namespace {
363
364SvXMLEnumMapEntry<drawing::LineStyle> const aLineStyleMap[] =
365{
366 { XML_NONE, drawing::LineStyle_NONE },
367 { XML_SOLID, drawing::LineStyle_SOLID },
368 { XML_DASH, drawing::LineStyle_DASH },
369 { XML_TOKEN_INVALID, drawing::LineStyle(0) }
370};
371
372SvXMLEnumMapEntry<drawing::FillStyle> const aFillStyleMap[] =
373{
374 { XML_NONE, drawing::FillStyle_NONE },
375 { XML_SOLID, drawing::FillStyle_SOLID },
376 { XML_HATCH, drawing::FillStyle_HATCH }
377};
378
379}
380
381// the following class implementations are in this file:
382
383// * XMLChartPropHdlFactory
384// * XMLChartPropertySetMapper
385// * XMLChartExportPropertyMapper
386// * XMLChartImportPropertyMapper
387// * SchXMLStyleExport
388
390 : m_pExport(pExport)
391{
392}
393
395{
396}
397
399{
401 if( ! pHdl )
402 {
403 switch( nType )
404 {
406 pHdl = new XMLAxisPositionPropertyHdl( false );
407 break;
409 pHdl = new XMLAxisPositionPropertyHdl( true );
410 break;
411
414 break;
415
418 break;
419
422 break;
423
425 // here we have a constant rather than an enum
427 break;
428
430 pHdl = new XMLErrorIndicatorPropertyHdl( false );
431 break;
433 pHdl = new XMLErrorIndicatorPropertyHdl( true );
434 break;
435
437 // here we have a constant rather than an enum
439 break;
441 // here we have a constant rather than an enum
443 break;
446 break;
448 pHdl = new XMLTextOrientationHdl;
449 break;
450
453 {
455 }
456 else // ODF 1.3 OFFICE-3662
457 {
459 }
460 break;
462 pHdl = new XMLSymbolTypePropertyHdl( false );
463 break;
464
466 pHdl = new XMLSymbolTypePropertyHdl( true );
467 break;
468
471 break;
473 pHdl = new XMLEnumPropertyHdl( aLineStyleMap );
474 break;
476 pHdl = new XMLOpacityPropertyHdl(nullptr);
477 break;
479 pHdl = new XMLEnumPropertyHdl( aFillStyleMap );
480 break;
481 default:
482 ;
483 }
484 if( pHdl )
485 PutHdlCache( nType, pHdl );
486 }
487
488 return pHdl;
489}
490
492 : XMLPropertySetMapper(aXMLChartPropMap, new XMLChartPropHdlFactory(pExport), pExport != nullptr)
493{
494}
495
497{
498}
499
501 SvXMLExport& rExport) :
502 SvXMLExportPropertyMapper( rMapper ),
503 mrExport( rExport )
504{
505 // chain draw properties
507
508 // chain text properties
510}
511
513{
514}
515
517 bool bEnableFoFontFamily,
518 std::vector< XMLPropertyState >& rProperties,
519 const uno::Reference< beans::XPropertySet >& rPropSet ) const
520{
521 OUString aAutoPropName;
522 bool bCheckAuto = false;
523
524 // filter properties
525 for( auto& rProperty : rProperties )
526 {
527 // find properties with context
528 // to prevent writing this property set mnIndex member to -1
529 switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ))
530 {
531 // if Auto... is set the corresponding properties mustn't be exported
533 bCheckAuto = true;
534 aAutoPropName = "AutoMin";
535 break;
537 bCheckAuto = true;
538 aAutoPropName = "AutoMax";
539 break;
541 bCheckAuto = true;
542 aAutoPropName = "AutoStepMain";
543 break;
545 bCheckAuto = true;
546 aAutoPropName = "AutoStepHelp";
547 break;
548
550 bCheckAuto = true;
551 aAutoPropName = "AutoOrigin";
552 break;
553
554 // the following property is deprecated
555 // element-item symbol-image is used now
557 rProperty.mnIndex = -1;
558 break;
559
562 // note this avoids export of the properties in OASIS format,
563 // but also for the OOo XML Flat format (used by binfilter),
564 // because there, the transformation to OOo is done after the
565 // complete export of the chart in OASIS format.
567 rProperty.mnIndex = -1;
568 break;
569 }
570
571 if( bCheckAuto )
572 {
573 if( rPropSet.is())
574 {
575 try
576 {
577 bool bAuto = false;
578 uno::Any aAny = rPropSet->getPropertyValue( aAutoPropName );
579 aAny >>= bAuto;
580 if( bAuto )
581 rProperty.mnIndex = -1;
582 }
583 catch(const beans::UnknownPropertyException&)
584 {
585 }
586 }
587 bCheckAuto = false;
588 }
589 }
590
591 SvXMLExportPropertyMapper::ContextFilter(bEnableFoFontFamily, rProperties, rPropSet);
592}
593
595 SvXMLExport& rExport,
596 const XMLPropertyState& rProperty, SvXmlExportFlags nFlags,
597 const ::std::vector< XMLPropertyState > *pProperties,
598 sal_uInt32 nIdx ) const
599{
600 switch( getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex ))
601 {
603 {
604 uno::Reference<graphic::XGraphic> xGraphic;
605 rProperty.maValue >>= xGraphic;
606
607 OUString sInternalURL;
608 // export as XLink reference into the package
609 // if embedding is off
610 if (xGraphic.is())
611 {
612 OUString aOutMimeType;
613 sInternalURL = mrExport.AddEmbeddedXGraphic(xGraphic, aOutMimeType);
614 }
615 if (!sInternalURL.isEmpty())
616 {
618 }
619
620 {
621 sal_uInt32 nPropIndex = rProperty.mnIndex;
622 // this is the element that has to live until the next statement
624 getPropertySetMapper()->GetEntryNameSpace( nPropIndex ),
625 getPropertySetMapper()->GetEntryXMLName( nPropIndex ),
626 true, true );
627
628 // export as Base64 embedded graphic
629 // if embedding is on
630 if (xGraphic.is())
632 }
633 }
634 break;
635
637 {
638 OUString aSeparator;
639 rProperty.maValue >>= aSeparator;
640
641 if( !aSeparator.isEmpty() )
642 {
643 sal_uInt32 nPropIndex = rProperty.mnIndex;
645 getPropertySetMapper()->GetEntryNameSpace( nPropIndex ),
646 getPropertySetMapper()->GetEntryXMLName( nPropIndex ),
647 true, true );
648
649 SchXMLTools::exportText( mrExport, aSeparator, true );
650 }
651 }
652 break;
653
654 default:
655 // call parent
657 nFlags, pProperties, nIdx );
658 break;
659 }
660}
661
662namespace {
663
664OUString convertRange( const OUString & rRange, const uno::Reference< chart2::XChartDocument > & xDoc )
665{
666 OUString aResult = rRange;
667 if( !xDoc.is() )
668 return aResult;
669 uno::Reference< chart2::data::XRangeXMLConversion > xConversion(
670 xDoc->getDataProvider(), uno::UNO_QUERY );
671 try
672 {
673 if( xConversion.is())
674 aResult = xConversion->convertRangeToXML( rRange );
675 }
676 catch (css::lang::IllegalArgumentException&)
677 {
678 }
679
680 return aResult;
681}
682
683}
684
686 SvXMLAttributeList& rAttrList, const XMLPropertyState& rProperty,
687 const SvXMLUnitConverter& rUnitConverter,
688 const SvXMLNamespaceMap& rNamespaceMap,
689 const ::std::vector< XMLPropertyState > *pProperties,
690 sal_uInt32 nIdx ) const
691{
692 bool bHandled = false;
693
694 sal_Int32 nContextId = getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex );
695
696 if( nContextId )
697 {
698 bHandled = true;
699
700 OUString sAttrName = getPropertySetMapper()->GetEntryXMLName( rProperty.mnIndex );
701 sal_uInt16 nNameSpace = getPropertySetMapper()->GetEntryNameSpace( rProperty.mnIndex );
702 OUStringBuffer sValueBuffer;
703
704 sal_Int32 nValue = 0;
705 bool bValue = false;
706
707 switch( nContextId )
708 {
711 rProperty.maValue >>= nValue;
712 bValue = (( nValue & chart::ChartAxisMarks::INNER ) == chart::ChartAxisMarks::INNER );
713 ::sax::Converter::convertBool( sValueBuffer, bValue );
714 break;
717 rProperty.maValue >>= nValue;
718 bValue = (( nValue & chart::ChartAxisMarks::OUTER ) == chart::ChartAxisMarks::OUTER );
719 ::sax::Converter::convertBool( sValueBuffer, bValue );
720 break;
722 {
723 // convert from 100th degrees to degrees (double)
724 rProperty.maValue >>= nValue;
725 double fVal = static_cast<double>(nValue) / 100.0;
726 ::sax::Converter::convertDouble( sValueBuffer, fVal );
727 }
728 break;
730 {
731 rProperty.maValue >>= nValue;
732 if( ( nValue & chart::ChartDataCaption::VALUE ) == chart::ChartDataCaption::VALUE )
733 {
734 if( ( nValue & chart::ChartDataCaption::PERCENT ) == chart::ChartDataCaption::PERCENT )
735 {
736 const SvtSaveOptions::ODFSaneDefaultVersion nCurrentVersion(
738 if (nCurrentVersion < SvtSaveOptions::ODFSVER_012)
739 sValueBuffer.append( GetXMLToken( XML_PERCENTAGE ));
740 else
741 sValueBuffer.append( GetXMLToken( XML_VALUE_AND_PERCENTAGE ));
742 }
743 else
744 sValueBuffer.append( GetXMLToken( XML_VALUE ));
745 }
746 else if(( nValue & chart::ChartDataCaption::PERCENT ) == chart::ChartDataCaption::PERCENT )
747 sValueBuffer.append( GetXMLToken( XML_PERCENTAGE ));
748 else
749 sValueBuffer.append( GetXMLToken( XML_NONE ));
750 }
751 break;
753 rProperty.maValue >>= nValue;
754 bValue = (( nValue & chart::ChartDataCaption::TEXT ) == chart::ChartDataCaption::TEXT );
755 ::sax::Converter::convertBool( sValueBuffer, bValue );
756 break;
758 rProperty.maValue >>= nValue;
759 bValue = (( nValue & chart::ChartDataCaption::SYMBOL ) == chart::ChartDataCaption::SYMBOL );
760 ::sax::Converter::convertBool( sValueBuffer, bValue );
761 break;
763 rProperty.maValue >>= nValue;
764 bValue = (( nValue & chart::ChartDataCaption::DATA_SERIES ) == chart::ChartDataCaption::DATA_SERIES );
765 ::sax::Converter::convertBool( sValueBuffer, bValue );
766 break;
769 {
770 awt::Size aSize;
771 rProperty.maValue >>= aSize;
772 rUnitConverter.convertMeasureToXML( sValueBuffer,
774 ? aSize.Width
775 : aSize.Height );
776 }
777 break;
778
780 {
781 // just for import
782 break;
783 }
784
786 {
787 OUString aRangeStr;
788 rProperty.maValue >>= aRangeStr;
789 sValueBuffer.append(convertRange(aRangeStr, mxChartDoc));
790 }
791 break;
793 {
794 const SvtSaveOptions::ODFSaneDefaultVersion nCurrentVersion(
796
797 OUString aServiceName;
798 rProperty.maValue >>= aServiceName;
799 if (aServiceName == "com.sun.star.chart2.LinearRegressionCurve")
800 sValueBuffer.append( GetXMLToken( XML_LINEAR ));
801 else if (aServiceName == "com.sun.star.chart2.LogarithmicRegressionCurve")
802 sValueBuffer.append( GetXMLToken( XML_LOGARITHMIC ));
803 else if (aServiceName == "com.sun.star.chart2.ExponentialRegressionCurve")
804 sValueBuffer.append( GetXMLToken( XML_EXPONENTIAL ));
805 else if (aServiceName == "com.sun.star.chart2.PotentialRegressionCurve")
806 sValueBuffer.append( GetXMLToken( XML_POWER ));
807 else if (nCurrentVersion >= SvtSaveOptions::ODFSVER_013 && aServiceName == "com.sun.star.chart2.PolynomialRegressionCurve")
808 { // ODF 1.3 OFFICE-3958
809 sValueBuffer.append( GetXMLToken( XML_POLYNOMIAL ));
810 }
811 else if (nCurrentVersion >= SvtSaveOptions::ODFSVER_013 && aServiceName == "com.sun.star.chart2.MovingAverageRegressionCurve")
812 { // ODF 1.3 OFFICE-3959
813 sValueBuffer.append( GetXMLToken( XML_MOVING_AVERAGE ));
814 }
815 }
816 break;
817
819 {
820 rProperty.maValue >>= nValue;
821 if (nValue == MovingAverageType::Prior)
822 sValueBuffer.append( GetXMLToken( XML_PRIOR ));
823 else if (nValue == MovingAverageType::Central)
824 sValueBuffer.append( GetXMLToken( XML_CENTRAL ));
825 else if (nValue == MovingAverageType::AveragedAbscissa)
826 sValueBuffer.append( GetXMLToken( XML_AVERAGED_ABSCISSA ));
827 else // default
828 sValueBuffer.append( GetXMLToken( XML_PRIOR ));
829 }
830 break;
831
832 default:
833 bHandled = false;
834 break;
835 }
836
837 if( !sValueBuffer.isEmpty())
838 {
839 OUString sValue = sValueBuffer.makeStringAndClear();
840 sAttrName = rNamespaceMap.GetQNameByKey( nNameSpace, sAttrName );
841 rAttrList.AddAttribute( sAttrName, sValue );
842 }
843 }
844
845 if( !bHandled )
846 {
847 // call parent
848 SvXMLExportPropertyMapper::handleSpecialItem( rAttrList, rProperty, rUnitConverter, rNamespaceMap, pProperties, nIdx );
849 }
850}
851
852void XMLChartExportPropertyMapper::setChartDoc( const uno::Reference< chart2::XChartDocument >& xChartDoc )
853{
854 mxChartDoc = xChartDoc;
855}
856
858 const SvXMLImport& _rImport ) :
859 SvXMLImportPropertyMapper( rMapper, const_cast< SvXMLImport & >( _rImport )),
860 mrImport( const_cast< SvXMLImport & > ( _rImport ))
861{
862 // chain shape mapper for drawing properties
863
864 // give an empty model. It is only used for numbering rules that don't exist in chart
865 uno::Reference< frame::XModel > xEmptyModel;
867
868 //#i14365# save and load writing-mode for chart elements
869 //The property TextWritingMode is mapped wrongly in the underlying draw mapper, but for draw it is necessary
870 //We remove that property here only for chart thus the chart can use the correct mapping from the writer paragraph settings (attribute 'writing-mode' <-> property 'WritingMode')
871 sal_Int32 nUnwantedWrongEntry = maPropMapper->FindEntryIndex( "TextWritingMode", XML_NAMESPACE_STYLE, GetXMLToken(XML_WRITING_MODE) );
872 maPropMapper->RemoveEntry(nUnwantedWrongEntry);
873
874 // do not chain text properties: on import this is done by shape mapper
875 // to import old documents
876}
877
879{
880}
881
883 XMLPropertyState& rProperty,
884 ::std::vector< XMLPropertyState >& rProperties,
885 const OUString& rValue,
886 const SvXMLUnitConverter& rUnitConverter,
887 const SvXMLNamespaceMap& rNamespaceMap ) const
888{
889 sal_Int32 nContextId = maPropMapper->GetEntryContextId( rProperty.mnIndex );
890 bool bRet = (nContextId != 0);
891
892 if( nContextId )
893 {
894 sal_Int32 nValue = 0;
895 bool bValue = false;
896
897 switch( nContextId )
898 {
901 (void)::sax::Converter::convertBool( bValue, rValue );
902 // modify old value
903 rProperty.maValue >>= nValue;
904 if( bValue )
905 SCH_XML_SETFLAG( nValue, chart::ChartAxisMarks::INNER );
906 else
907 SCH_XML_UNSETFLAG( nValue, chart::ChartAxisMarks::INNER );
908 rProperty.maValue <<= nValue;
909 break;
912 (void)::sax::Converter::convertBool( bValue, rValue );
913 // modify old value
914 rProperty.maValue >>= nValue;
915 if( bValue )
916 SCH_XML_SETFLAG( nValue, chart::ChartAxisMarks::OUTER );
917 else
918 SCH_XML_UNSETFLAG( nValue, chart::ChartAxisMarks::OUTER );
919 rProperty.maValue <<= nValue;
920 break;
922 {
923 // convert from degrees (double) to 100th degrees (integer)
924 double fVal;
925 ::sax::Converter::convertDouble( fVal, rValue );
926 nValue = static_cast<sal_Int32>( fVal * 100.0 );
927 rProperty.maValue <<= nValue;
928 }
929 break;
931 {
932 // modify old value
933 rProperty.maValue >>= nValue;
934 if( IsXMLToken( rValue, XML_NONE ))
935 SCH_XML_UNSETFLAG( nValue, chart::ChartDataCaption::VALUE | chart::ChartDataCaption::PERCENT );
936 else if( IsXMLToken( rValue, XML_VALUE_AND_PERCENTAGE ) )
937 SCH_XML_SETFLAG( nValue, chart::ChartDataCaption::VALUE | chart::ChartDataCaption::PERCENT );
938 else if( IsXMLToken( rValue, XML_VALUE ) )
939 SCH_XML_SETFLAG( nValue, chart::ChartDataCaption::VALUE );
940 else // must be XML_PERCENTAGE
941 SCH_XML_SETFLAG( nValue, chart::ChartDataCaption::PERCENT );
942 rProperty.maValue <<= nValue;
943 }
944 break;
946 rProperty.maValue >>= nValue;
947 (void)::sax::Converter::convertBool( bValue, rValue );
948 if( bValue )
949 SCH_XML_SETFLAG( nValue, chart::ChartDataCaption::TEXT );
950 else
951 SCH_XML_UNSETFLAG( nValue, chart::ChartDataCaption::TEXT );
952 rProperty.maValue <<= nValue;
953 break;
955 rProperty.maValue >>= nValue;
956 (void)::sax::Converter::convertBool( bValue, rValue );
957 if( bValue )
958 SCH_XML_SETFLAG( nValue, chart::ChartDataCaption::SYMBOL );
959 else
960 SCH_XML_UNSETFLAG( nValue, chart::ChartDataCaption::SYMBOL );
961 rProperty.maValue <<= nValue;
962 break;
964 rProperty.maValue >>= nValue;
965 (void)::sax::Converter::convertBool( bValue, rValue );
966 if( bValue )
967 SCH_XML_SETFLAG( nValue, chart::ChartDataCaption::DATA_SERIES );
968 else
969 SCH_XML_UNSETFLAG( nValue, chart::ChartDataCaption::DATA_SERIES );
970 rProperty.maValue <<= nValue;
971 break;
974 {
975 awt::Size aSize;
976 rProperty.maValue >>= aSize;
977 rUnitConverter.convertMeasureToCore(
979 ? aSize.Width
980 : aSize.Height,
981 rValue );
982 rProperty.maValue <<= aSize;
983 }
984 break;
985
987 {
988 rProperty.maValue <<= rValue;
989 }
990 break;
991
992 // deprecated from 6.0 beta on
994 rProperty.maValue <<= mrImport.loadGraphicByURL(rValue);
995 break;
996
998 {
999 if (IsXMLToken( rValue, XML_LINEAR ))
1000 rProperty.maValue <<= OUString("com.sun.star.chart2.LinearRegressionCurve");
1001 else if (IsXMLToken( rValue, XML_LOGARITHMIC))
1002 rProperty.maValue <<= OUString("com.sun.star.chart2.LogarithmicRegressionCurve");
1003 else if (IsXMLToken( rValue, XML_EXPONENTIAL))
1004 rProperty.maValue <<= OUString("com.sun.star.chart2.ExponentialRegressionCurve");
1005 else if (IsXMLToken( rValue, XML_POWER))
1006 rProperty.maValue <<= OUString("com.sun.star.chart2.PotentialRegressionCurve");
1007 else if (IsXMLToken( rValue, XML_POLYNOMIAL))
1008 rProperty.maValue <<= OUString("com.sun.star.chart2.PolynomialRegressionCurve");
1009 else if (IsXMLToken( rValue, XML_MOVING_AVERAGE))
1010 rProperty.maValue <<= OUString("com.sun.star.chart2.MovingAverageRegressionCurve");
1011 }
1012 break;
1013
1015 {
1016 if (IsXMLToken( rValue, XML_PRIOR ))
1017 rProperty.maValue <<= MovingAverageType::Prior;
1018 else if (IsXMLToken( rValue, XML_CENTRAL))
1019 rProperty.maValue <<= MovingAverageType::Central;
1020 else if (IsXMLToken( rValue, XML_AVERAGED_ABSCISSA))
1021 rProperty.maValue <<= MovingAverageType::AveragedAbscissa;
1022 else // default
1023 rProperty.maValue <<= MovingAverageType::Prior;
1024 }
1025 break;
1026
1027 default:
1028 bRet = false;
1029 break;
1030 }
1031 }
1032
1033 // if we didn't handle it, the parent should
1034 if( !bRet )
1035 {
1036 // call parent
1037 bRet = SvXMLImportPropertyMapper::handleSpecialItem( rProperty, rProperties, rValue, rUnitConverter, rNamespaceMap );
1038 }
1039
1040 return bRet;
1041}
1042
1043void XMLChartImportPropertyMapper::finished( ::std::vector< XMLPropertyState >& /*rProperties*/, sal_Int32 /*nStartIndex*/, sal_Int32 /*nEndIndex*/ ) const
1044{
1045}
1046
1047/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define XML_SCH_CONTEXT_LOGARITHMIC
Definition: PropertyMap.hxx:64
#define XML_SCH_CONTEXT_STOCK_WITH_VOLUME
Definition: PropertyMap.hxx:65
#define XML_SCH_CONTEXT_SPECIAL_REGRESSION_TYPE
Definition: PropertyMap.hxx:84
#define XML_SCH_TYPE_LABEL_PLACEMENT_TYPE
Definition: PropertyMap.hxx:47
#define XML_SCH_CONTEXT_SPECIAL_DATA_LABEL_TEXT
Definition: PropertyMap.hxx:74
#define XML_SCH_TYPE_LABEL_BORDER_OPACITY
Definition: PropertyMap.hxx:54
#define XML_SCH_TYPE_SOLID_TYPE
Definition: PropertyMap.hxx:39
#define XML_SCH_CONTEXT_SPECIAL_DATA_LABEL_NUMBER
Definition: PropertyMap.hxx:73
#define XML_SCH_CONTEXT_STEP_MAIN
Definition: PropertyMap.hxx:61
#define XML_SCH_TYPE_DATAROWSOURCE
Definition: PropertyMap.hxx:42
#define XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE_NAME
Definition: PropertyMap.hxx:80
#define XML_SCH_CONTEXT_SPECIAL_TICKS_MAJ_INNER
Definition: PropertyMap.hxx:68
#define XML_SCH_CONTEXT_SPECIAL_SYMBOL_WIDTH
Definition: PropertyMap.hxx:78
#define XML_SCH_TYPE_TEXT_ORIENTATION
Definition: PropertyMap.hxx:43
#define XML_SCH_CONTEXT_SPECIAL_TICKS_MIN_INNER
Definition: PropertyMap.hxx:70
#define XML_SCH_CONTEXT_STEP_HELP_COUNT
Definition: PropertyMap.hxx:62
#define XML_SCH_TYPE_LABEL_BORDER_STYLE
Definition: PropertyMap.hxx:53
#define XML_SCH_TYPE_ERROR_INDICATOR_UPPER
Definition: PropertyMap.hxx:40
#define XML_SCH_TYPE_AXIS_LABEL_POSITION
Definition: PropertyMap.hxx:51
#define XML_SCH_TYPE_AXIS_POSITION
Definition: PropertyMap.hxx:49
#define XML_SCH_CONTEXT_SPECIAL_TICKS_MIN_OUTER
Definition: PropertyMap.hxx:71
#define XML_SCH_CONTEXT_SPECIAL_DATA_LABEL_SERIES
Definition: PropertyMap.hxx:85
#define XML_SCH_CONTEXT_SPECIAL_MOVING_AVERAGE_TYPE
Definition: PropertyMap.hxx:86
#define XML_SCH_TYPE_MISSING_VALUE_TREATMENT
Definition: PropertyMap.hxx:48
#define XML_SCH_CONTEXT_SPECIAL_TICKS_MAJ_OUTER
Definition: PropertyMap.hxx:69
#define XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE
Definition: PropertyMap.hxx:81
#define XML_SCH_TYPE_INTERPOLATION
Definition: PropertyMap.hxx:44
#define XML_SCH_TYPE_AXIS_POSITION_VALUE
Definition: PropertyMap.hxx:50
#define XML_SCH_TYPE_TICK_MARK_POSITION
Definition: PropertyMap.hxx:52
#define XML_SCH_CONTEXT_SPECIAL_NUMBER_FORMAT
Definition: PropertyMap.hxx:76
#define XML_SCH_CONTEXT_LINES_USED
Definition: PropertyMap.hxx:66
#define XML_SCH_CONTEXT_SPECIAL_DATA_LABEL_SYMBOL
Definition: PropertyMap.hxx:75
#define XML_SCH_CONTEXT_ORIGIN
Definition: PropertyMap.hxx:63
#define XML_SCH_CONTEXT_MIN
Definition: PropertyMap.hxx:59
#define XML_SCH_CONTEXT_MAX
Definition: PropertyMap.hxx:60
#define XML_SCH_TYPE_SYMBOL_TYPE
Definition: PropertyMap.hxx:45
#define XML_SCH_CONTEXT_SPECIAL_ERRORBAR_RANGE
Definition: PropertyMap.hxx:83
#define XML_SCH_CONTEXT_SPECIAL_TEXT_ROTATION
Definition: PropertyMap.hxx:72
#define XML_SCH_TYPE_ERROR_BAR_STYLE
Definition: PropertyMap.hxx:37
#define XML_SCH_CONTEXT_SPECIAL_SYMBOL_HEIGHT
Definition: PropertyMap.hxx:79
#define XML_SCH_TYPE_NAMED_SYMBOL
Definition: PropertyMap.hxx:46
#define XML_SCH_TYPE_LABEL_FILL_STYLE
Definition: PropertyMap.hxx:55
#define XML_SCH_TYPE_AXIS_ARRANGEMENT
Definition: PropertyMap.hxx:36
#define XML_SCH_CONTEXT_SPECIAL_LABEL_SEPARATOR
Definition: PropertyMap.hxx:82
#define XML_SCH_TYPE_ERROR_INDICATOR_LOWER
Definition: PropertyMap.hxx:41
#define SCH_XML_SETFLAG(status, flag)
const SvXMLEnumMapEntry< sal_Int32 > aXMLChartErrorBarStyleEnumMap[]
const SvXMLEnumMapEntry< css::chart::ChartDataRowSource > aXMLChartDataRowSourceTypeEnumMap[]
const SvXMLEnumMapEntry< sal_Int32 > g_XMLChartInterpolationTypeEnumMap[]
#define MAP_ENTRY_ODF12(a, ns, nm, t)
#define MAP_FULL(ApiName, NameSpace, XMLTokenName, XMLType, ContextId, EarliestODFVersionForExport)
const SvXMLEnumMapEntry< sal_Int32 > aXMLChartMissingValueTreatmentEnumMap[]
const SvXMLEnumMapEntry< css::chart::ChartAxisMarkPosition > aXMLChartAxisMarkPositionEnumMap[]
#define MAP_SPECIAL(a, ns, nm, t, c)
const SvXMLEnumMapEntry< sal_Int32 > g_XMLChartInterpolationTypeEnumMap_ODF12[]
#define MAP_ENTRY(a, ns, nm, t)
#define MAP_SPECIAL_ODF13(a, ns, nm, t, c)
#define MAP_ENTRY_END
#define MAP_SPECIAL_ODF12(a, ns, nm, t, c)
const SvXMLEnumMapEntry< css::chart::ChartAxisArrangeOrderType > aXMLChartAxisArrangementEnumMap[]
#define MAP_ENTRY_ODF13(a, ns, nm, t)
const SvXMLEnumMapEntry< sal_Int32 > aXMLChartDataLabelPlacementEnumMap[]
#define MAP_CONTEXT(a, ns, nm, t, c)
const SvXMLEnumMapEntry< sal_Int32 > aXMLChartSolidTypeEnumMap[]
#define SCH_XML_UNSETFLAG(status, flag)
#define MAP_ENTRY_ODF_EXT_IMPORT(a, ns, nm, t)
const SvXMLEnumMapEntry< css::chart::ChartAxisLabelPosition > aXMLChartAxisLabelPositionEnumMap[]
#define MAP_ENTRY_ODF_EXT(a, ns, nm, t)
const XMLPropertyMapEntry aXMLChartPropMap[]
void AddAttribute(const OUString &sName, const OUString &sValue)
Definition: attrlist.cxx:110
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const
this method is called for every item that has the MID_FLAG_ELEMENT_EXPORT flag set
Definition: xmlexppr.cxx:874
void ChainExportMapper(const rtl::Reference< SvXMLExportPropertyMapper > &rMapper)
Definition: xmlexppr.cxx:490
virtual void ContextFilter(bool bEnableFoFontFamily, ::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const
Application-specific filter.
Definition: xmlexppr.cxx:673
const rtl::Reference< XMLPropertySetMapper > & getPropertySetMapper() const
Definition: xmlexppr.cxx:1124
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set
Definition: xmlexppr.cxx:858
void AddAttribute(sal_uInt16 nPrefix, const OUString &rName, const OUString &rValue)
Definition: xmlexp.cxx:911
SvXMLExportFlags getExportFlags() const
Definition: xmlexp.hxx:478
SvtSaveOptions::ODFSaneDefaultVersion getSaneDefaultVersion() const
returns the deterministic version for odf export
Definition: xmlexp.cxx:2271
bool AddEmbeddedXGraphicAsBase64(css::uno::Reference< css::graphic::XGraphic > const &rxGraphic)
Definition: xmlexp.cxx:1879
OUString AddEmbeddedXGraphic(css::uno::Reference< css::graphic::XGraphic > const &rxGraphic, OUString &rOutMimeType, OUString const &rRequestedName=OUString())
Definition: xmlexp.cxx:1842
virtual bool handleSpecialItem(XMLPropertyState &rProperty, ::std::vector< XMLPropertyState > &rProperties, const OUString &rValue, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_IMPORT flag set
Definition: xmlimppr.cxx:347
void ChainImportMapper(const rtl::Reference< SvXMLImportPropertyMapper > &rMapper)
Definition: xmlimppr.cxx:76
rtl::Reference< XMLPropertySetMapper > maPropMapper
Definition: xmlimppr.hxx:75
OUString GetQNameByKey(sal_uInt16 nKey, const OUString &rLocalName, bool bCache=true) const
the SvXMLTypeConverter converts values of various types from their internal representation to the tex...
Definition: xmluconv.hxx:83
bool convertMeasureToCore(sal_Int32 &rValue, std::u16string_view rString, sal_Int32 nMin=SAL_MIN_INT32, sal_Int32 nMax=SAL_MAX_INT32) const
convert string to measure with meCoreMeasureUnit, using optional min and max values
Definition: xmluconv.cxx:187
void convertMeasureToXML(OUStringBuffer &rBuffer, sal_Int32 nMeasure) const
convert measure to string: from meCoreMeasureUnit to meXMLMeasureUnit
Definition: xmluconv.cxx:207
void setChartDoc(const css::uno::Reference< css::chart2::XChartDocument > &xChartDoc)
virtual void handleSpecialItem(SvXMLAttributeList &rAttrList, const XMLPropertyState &rProperty, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_EXPORT flag set
virtual void handleElementItem(SvXMLExport &rExport, const XMLPropertyState &rProperty, SvXmlExportFlags nFlags, const ::std::vector< XMLPropertyState > *pProperties, sal_uInt32 nIdx) const override
this method is called for every item that has the MID_FLAG_ELEMENT_EXPORT flag set
virtual ~XMLChartExportPropertyMapper() override
XMLChartExportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper, SvXMLExport &rExport)
css::uno::Reference< css::chart2::XChartDocument > mxChartDoc
virtual void ContextFilter(bool bEnableFoFontFamily, ::std::vector< XMLPropertyState > &rProperties, const css::uno::Reference< css::beans::XPropertySet > &rPropSet) const override
Application-specific filter.
virtual ~XMLChartImportPropertyMapper() override
virtual void finished(::std::vector< XMLPropertyState > &rProperties, sal_Int32 nStartIndex, sal_Int32 nEndIndex) const override
This method is called when all attributes have benn processed.
virtual bool handleSpecialItem(XMLPropertyState &rProperty, ::std::vector< XMLPropertyState > &rProperties, const OUString &rValue, const SvXMLUnitConverter &rUnitConverter, const SvXMLNamespaceMap &rNamespaceMap) const override
this method is called for every item that has the MID_FLAG_SPECIAL_ITEM_IMPORT flag set
XMLChartImportPropertyMapper(const rtl::Reference< XMLPropertySetMapper > &rMapper, const SvXMLImport &rImport)
virtual ~XMLChartPropHdlFactory() override
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const override
This method retrieves a PropertyHandler for the given XML-type.
SvXMLExport const *const m_pExport
XMLChartPropHdlFactory(SvXMLExport const *)
virtual ~XMLChartPropertySetMapper() override
XMLChartPropertySetMapper(SvXMLExport const *pExport)
PropertyHandler for a generic xml enumeration type:
void PutHdlCache(sal_Int32 nType, const XMLPropertyHandler *pHdl) const
Puts a PropertyHandler into the internal cache.
Definition: prhdlfac.cxx:159
virtual const XMLPropertyHandler * GetPropertyHandler(sal_Int32 nType) const
This method retrieves a PropertyHandler for the given XML-type.
Definition: prhdlfac.cxx:141
Abstract base-class for different XML-types.
Definition: xmlprhdl.hxx:36
static SvXMLExportPropertyMapper * CreateShapePropMapper(SvXMLExport &rExport)
returns the export property mapper for external chaining
static SvXMLImportPropertyMapper * CreateShapePropMapper(const css::uno::Reference< css::frame::XModel > &rModel, SvXMLImport &rImport)
creates a property mapper for external chaining
static SvXMLExportPropertyMapper * CreateParaExtPropMapper(SvXMLExport &rExport)
Definition: txtparae.cxx:1459
static void convertDouble(OUStringBuffer &rBuffer, double fNumber, bool bWriteUnits, sal_Int16 nSourceUnit, sal_Int16 nTargetUnit)
static bool convertBool(bool &rBool, std::u16string_view rString)
sal_Int16 nValue
void exportText(SvXMLExport &rExport, const OUString &rText, bool bConvertTabsLFs)
Handling of tokens in XML:
@ XML_ERROR_UPPER_INDICATOR
Definition: xmltoken.hxx:782
@ XML_ERROR_STANDARD_WEIGHT
Definition: xmltoken.hxx:3424
@ XML_LABEL_STROKE_OPACITY
Definition: xmltoken.hxx:1153
@ XML_JAPANESE_CANDLE_STICK
Definition: xmltoken.hxx:2770
@ XML_DATA_LABEL_NUMBER
Definition: xmltoken.hxx:588
@ XML_ERROR_LOWER_LIMIT
Definition: xmltoken.hxx:777
@ XML_AT_LABELS_AND_AXIS
Definition: xmltoken.hxx:3333
@ XML_DATA_TABLE_SHOW_HORZ_BORDER
Definition: xmltoken.hxx:3431
@ XML_LINK_DATA_STYLE_TO_SOURCE
Definition: xmltoken.hxx:2183
@ XML_AUTOMATIC_POSITION
Definition: xmltoken.hxx:3236
@ XML_TRY_STAGGERING_FIRST
Definition: xmltoken.hxx:2033
@ XML_LABEL_STROKE_COLOR
Definition: xmltoken.hxx:1152
@ XML_PERCENTAGE_DATA_STYLE_NAME
Definition: xmltoken.hxx:3232
@ XML_DATA_TABLE_SHOW_OUTLINE
Definition: xmltoken.hxx:3433
@ XML_NEAR_AXIS_OTHER_SIDE
Definition: xmltoken.hxx:3327
@ XML_REGRESSION_FORCE_INTERCEPT
Definition: xmltoken.hxx:2321
@ XML_CHART_DUNITS_DISPLAYUNITS
Definition: xmltoken.hxx:3435
@ XML_AXIS_LABEL_POSITION
Definition: xmltoken.hxx:3325
@ XML_SHOW_VERTICAL_BORDER
Definition: xmltoken.hxx:1759
@ XML_TICK_MARKS_MAJOR_OUTER
Definition: xmltoken.hxx:1988
@ XML_FILL_HATCH_SOLID
Definition: xmltoken.hxx:822
@ XML_REGRESSION_EXTRAPOLATE_FORWARD
Definition: xmltoken.hxx:2315
@ XML_REGRESSION_MAX_DEGREE
Definition: xmltoken.hxx:2317
@ XML_ERROR_LOWER_INDICATOR
Definition: xmltoken.hxx:776
@ XML_TICK_MARKS_MAJOR_INNER
Definition: xmltoken.hxx:1987
@ XML_ERROR_UPPER_LIMIT
Definition: xmltoken.hxx:783
@ XML_STANDARD_DEVIATION
Definition: xmltoken.hxx:1825
@ XML_DATA_TABLE_SHOW_VERT_BORDER
Definition: xmltoken.hxx:3432
@ XML_ERROR_PERCENTAGE
Definition: xmltoken.hxx:781
@ XML_TICK_MARKS_MINOR_INNER
Definition: xmltoken.hxx:1989
@ XML_REGRESSION_INTERCEPT_VALUE
Definition: xmltoken.hxx:2322
@ XML_REGRESSION_MOVING_TYPE
Definition: xmltoken.hxx:2319
@ XML_TICK_MARKS_MINOR_OUTER
Definition: xmltoken.hxx:1990
@ XML_CUSTOM_LEADERLINES
Definition: xmltoken.hxx:569
@ XML_GROUP_BARS_PER_AXIS
Definition: xmltoken.hxx:3234
@ XML_REGRESSION_CURVE_NAME
Definition: xmltoken.hxx:2314
@ XML_DATA_LABEL_SERIES
Definition: xmltoken.hxx:591
@ XML_LABEL_STROKE_WIDTH
Definition: xmltoken.hxx:1154
@ XML_INTERVAL_MINOR_DIVISOR
Definition: xmltoken.hxx:2656
@ XML_DATA_LABEL_SYMBOL
Definition: xmltoken.hxx:589
@ XML_SHOW_HORIZONTAL_BORDER
Definition: xmltoken.hxx:1751
@ XML_AVERAGED_ABSCISSA
Definition: xmltoken.hxx:306
@ XML_REGRESSION_EXTRAPOLATE_BACKWARD
Definition: xmltoken.hxx:2316
@ XML_CHART_DUNITS_BUILTINUNIT
Definition: xmltoken.hxx:3436
@ XML_INCLUDE_HIDDEN_CELLS
Definition: xmltoken.hxx:3235
@ XML_TICK_MARK_POSITION
Definition: xmltoken.hxx:3330
@ XML_VALUE_AND_PERCENTAGE
Definition: xmltoken.hxx:3233
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
compare eToken to the string
Definition: xmltoken.cxx:3583
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
return the OUString representation for eToken
Definition: xmltoken.cxx:3527
QPRO_FUNC_TYPE nType
Represents a property with its API-name, its XML-name and the type of its value.
Definition: maptype.hxx:33
Smart struct to transport an Any with an index to the appropriate property-name.
Definition: maptype.hxx:140
css::uno::Any maValue
Definition: maptype.hxx:142
sal_Int32 mnIndex
Definition: maptype.hxx:141
TEXT
SvXmlExportFlags
Definition: xmlexppr.hxx:41
constexpr sal_uInt16 XML_NAMESPACE_XLINK
constexpr sal_uInt16 XML_NAMESPACE_CHART
constexpr sal_uInt16 XML_NAMESPACE_LO_EXT
constexpr sal_uInt16 XML_NAMESPACE_STYLE
constexpr OUStringLiteral PROP_MarkPosition
Definition: xmlprop.hxx:436
constexpr OUStringLiteral PROP_ForceIntercept
Definition: xmlprop.hxx:313
constexpr OUStringLiteral PROP_ArrangeOrder
Definition: xmlprop.hxx:19
constexpr OUStringLiteral PROP_ReverseDirection
Definition: xmlprop.hxx:548
constexpr OUStringLiteral PROP_LabelBorderStyle
Definition: xmlprop.hxx:406
constexpr OUStringLiteral PROP_Origin
Definition: xmlprop.hxx:468
constexpr OUStringLiteral PROP_InterceptValue
Definition: xmlprop.hxx:392
constexpr OUStringLiteral PROP_Max
Definition: xmlprop.hxx:438
constexpr OUStringLiteral PROP_ShowNegativeError
Definition: xmlprop.hxx:575
constexpr OUStringLiteral PROP_Deep
Definition: xmlprop.hxx:170
constexpr OUStringLiteral PROP_StepMain
Definition: xmlprop.hxx:596
constexpr OUStringLiteral PROP_TryStaggeringFirst
Definition: xmlprop.hxx:644
constexpr OUStringLiteral PROP_SolidType
Definition: xmlprop.hxx:582
constexpr OUStringLiteral PROP_Percent
Definition: xmlprop.hxx:524
constexpr OUStringLiteral PROP_SplineOrder
Definition: xmlprop.hxx:587
constexpr OUStringLiteral PROP_DataTableVBorder
Definition: xmlprop.hxx:169
constexpr OUStringLiteral PROP_DisplayLabels
Definition: xmlprop.hxx:173
constexpr OUStringLiteral PROP_VBorder
Definition: xmlprop.hxx:653
constexpr OUStringLiteral PROP_MajorOrigin
Definition: xmlprop.hxx:435
constexpr OUStringLiteral PROP_Dim3D
Definition: xmlprop.hxx:172
constexpr OUStringLiteral PROP_UpDown
Definition: xmlprop.hxx:645
constexpr OUStringLiteral PROP_XName
Definition: xmlprop.hxx:667
constexpr OUStringLiteral PROP_MeanValue
Definition: xmlprop.hxx:439
constexpr OUStringLiteral PROP_DisplayUnits
Definition: xmlprop.hxx:174
constexpr OUStringLiteral PROP_ExternalData
Definition: xmlprop.hxx:196
constexpr OUStringLiteral PROP_StepHelpCount
Definition: xmlprop.hxx:595
constexpr OUStringLiteral PROP_LabelFillHatchName
Definition: xmlprop.hxx:411
constexpr OUStringLiteral PROP_ShowCustomLeaderLines
Definition: xmlprop.hxx:574
constexpr OUStringLiteral PROP_Outline
Definition: xmlprop.hxx:469
constexpr OUStringLiteral PROP_ErrorBarRangePositive
Definition: xmlprop.hxx:193
constexpr OUStringLiteral PROP_LabelFillStyle
Definition: xmlprop.hxx:412
constexpr OUStringLiteral PROP_DataCaption
Definition: xmlprop.hxx:165
constexpr OUStringLiteral PROP_LabelFillColor
Definition: xmlprop.hxx:410
constexpr OUStringLiteral PROP_TextRotation
Definition: xmlprop.hxx:629
constexpr OUStringLiteral PROP_GapWidth
Definition: xmlprop.hxx:319
constexpr OUStringLiteral PROP_IncludeHiddenCells
Definition: xmlprop.hxx:391
constexpr OUStringLiteral PROP_TextCanOverlap
Definition: xmlprop.hxx:614
constexpr OUStringLiteral PROP_ErrorBarStyle
Definition: xmlprop.hxx:194
constexpr OUStringLiteral PROP_Marks
Definition: xmlprop.hxx:437
constexpr OUStringLiteral PROP_LabelBorderColor
Definition: xmlprop.hxx:405
constexpr OUStringLiteral PROP_ScaleText
Definition: xmlprop.hxx:560
constexpr OUStringLiteral PROP_LabelPlacement
Definition: xmlprop.hxx:413
constexpr OUStringLiteral PROP_CurveName
Definition: xmlprop.hxx:142
constexpr OUStringLiteral PROP_HBorder
Definition: xmlprop.hxx:337
constexpr OUStringLiteral PROP_ExtrapolateForward
Definition: xmlprop.hxx:198
constexpr OUStringLiteral PROP_NegativeError
Definition: xmlprop.hxx:459
constexpr OUStringLiteral PROP_LabelBorderTransparency
Definition: xmlprop.hxx:407
constexpr OUStringLiteral PROP_SplineResolution
Definition: xmlprop.hxx:588
constexpr OUStringLiteral PROP_CrossoverPosition
Definition: xmlprop.hxx:140
constexpr OUStringLiteral PROP_StartingAngle
Definition: xmlprop.hxx:594
constexpr OUStringLiteral PROP_SortByXValues
Definition: xmlprop.hxx:583
constexpr OUStringLiteral PROP_ExtrapolateBackward
Definition: xmlprop.hxx:197
constexpr OUStringLiteral PROP_CrossoverValue
Definition: xmlprop.hxx:141
constexpr OUStringLiteral PROP_DataRowSource
Definition: xmlprop.hxx:166
constexpr OUStringLiteral PROP_HelpMarks
Definition: xmlprop.hxx:382
constexpr OUStringLiteral PROP_ChartUserDefinedAttributes
Definition: xmlprop.hxx:129
constexpr OUStringLiteral PROP_LinkNumberFormatToSource
Definition: xmlprop.hxx:433
constexpr OUStringLiteral PROP_Keys
Definition: xmlprop.hxx:404
constexpr OUStringLiteral PROP_Logarithmic
Definition: xmlprop.hxx:434
constexpr OUStringLiteral PROP_Lines
Definition: xmlprop.hxx:432
constexpr OUStringLiteral PROP_PercentageNumberFormat
Definition: xmlprop.hxx:526
constexpr OUStringLiteral PROP_PositiveError
Definition: xmlprop.hxx:529
constexpr OUStringLiteral PROP_Stacked
Definition: xmlprop.hxx:590
constexpr OUStringLiteral PROP_NumberFormat
Definition: xmlprop.hxx:460
constexpr OUStringLiteral PROP_AutomaticSize
Definition: xmlprop.hxx:22
constexpr OUStringLiteral PROP_SymbolBitmap
Definition: xmlprop.hxx:599
constexpr OUStringLiteral PROP_Volume
Definition: xmlprop.hxx:661
constexpr OUStringLiteral PROP_SymbolSize
Definition: xmlprop.hxx:601
constexpr OUStringLiteral PROP_StackedBarsConnected
Definition: xmlprop.hxx:591
constexpr OUStringLiteral PROP_Overlap
Definition: xmlprop.hxx:470
constexpr OUStringLiteral PROP_MovingAverageType
Definition: xmlprop.hxx:458
constexpr OUStringLiteral PROP_YName
Definition: xmlprop.hxx:668
constexpr OUStringLiteral PROP_LabelBorderWidth
Definition: xmlprop.hxx:408
constexpr OUStringLiteral PROP_RightAngledAxes
Definition: xmlprop.hxx:549
constexpr OUStringLiteral PROP_LabelPosition
Definition: xmlprop.hxx:414
constexpr OUStringLiteral PROP_BuiltInUnit
Definition: xmlprop.hxx:38
constexpr OUStringLiteral PROP_GroupBarsPerAxis
Definition: xmlprop.hxx:335
constexpr OUStringLiteral PROP_ErrorBarRangeNegative
Definition: xmlprop.hxx:192
constexpr OUStringLiteral PROP_TextBreak
Definition: xmlprop.hxx:613
constexpr OUStringLiteral PROP_PolynomialDegree
Definition: xmlprop.hxx:527
constexpr OUStringLiteral PROP_LabelSeparator
Definition: xmlprop.hxx:415
constexpr OUStringLiteral PROP_RegressionType
Definition: xmlprop.hxx:543
constexpr OUStringLiteral PROP_Min
Definition: xmlprop.hxx:453
constexpr OUStringLiteral PROP_PercentageError
Definition: xmlprop.hxx:525
constexpr OUStringLiteral PROP_NumberOfLines
Definition: xmlprop.hxx:461
constexpr OUStringLiteral PROP_DataTableOutline
Definition: xmlprop.hxx:168
constexpr OUStringLiteral PROP_SegmentOffset
Definition: xmlprop.hxx:566
constexpr OUStringLiteral PROP_StackedText
Definition: xmlprop.hxx:592
constexpr OUStringLiteral PROP_ErrorMargin
Definition: xmlprop.hxx:195
constexpr OUStringLiteral PROP_SymbolType
Definition: xmlprop.hxx:602
constexpr OUStringLiteral PROP_LabelFillBackground
Definition: xmlprop.hxx:409
constexpr OUStringLiteral PROP_AutomaticPosition
Definition: xmlprop.hxx:21
constexpr OUStringLiteral PROP_Vertical
Definition: xmlprop.hxx:658
constexpr OUStringLiteral PROP_MissingValueTreatment
Definition: xmlprop.hxx:455
constexpr OUStringLiteral PROP_MovingAveragePeriod
Definition: xmlprop.hxx:457
constexpr OUStringLiteral PROP_DataTableHBorder
Definition: xmlprop.hxx:167
constexpr OUStringLiteral PROP_Weight
Definition: xmlprop.hxx:662
constexpr OUStringLiteral PROP_SplineType
Definition: xmlprop.hxx:589
constexpr OUStringLiteral PROP_Visible
Definition: xmlprop.hxx:659
constexpr OUStringLiteral PROP_ShowPositiveError
Definition: xmlprop.hxx:576
#define XML_TYPE_DOUBLE
Definition: xmltypes.hxx:138
#define MID_FLAG_MERGE_PROPERTY
Definition: xmltypes.hxx:61
#define MID_FLAG_SPECIAL_ITEM
Definition: xmltypes.hxx:87
#define MID_FLAG_MULTI_PROPERTY
Definition: xmltypes.hxx:64
#define MID_FLAG_ELEMENT_ITEM
Definition: xmltypes.hxx:70
#define XML_TYPE_STYLENAME
Definition: xmltypes.hxx:150
#define XML_TYPE_ATTRIBUTE_CONTAINER
Definition: xmltypes.hxx:219
#define XML_TYPE_STRING
Definition: xmltypes.hxx:132
#define XML_TYPE_MEASURE
Definition: xmltypes.hxx:126
#define XML_TYPE_COLOR
Definition: xmltypes.hxx:133
#define MID_FLAG_MERGE_ATTRIBUTE
Definition: xmltypes.hxx:57
#define XML_TYPE_NUMBER
Definition: xmltypes.hxx:134
#define XML_TYPE_BOOL
Definition: xmltypes.hxx:125