summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx2
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSymbolProperties.cxx76
-rw-r--r--xmloff/source/chart/PropertyMap.hxx4
-rw-r--r--xmloff/source/chart/PropertyMaps.cxx21
-rw-r--r--xmloff/source/chart/XMLSymbolImageContext.cxx18
5 files changed, 51 insertions, 70 deletions
diff --git a/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx b/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx
index 36619d12417c..dec06433ac9a 100644
--- a/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx
+++ b/chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx
@@ -590,7 +590,7 @@ beans::PropertyState SAL_CALL DataSeriesPointWrapper::getPropertyState( const OU
beans::PropertyState aState( beans::PropertyState_DIRECT_VALUE );
try
{
- if (rPropertyName == "SymbolBitmapURL")
+ if (rPropertyName == "SymbolBitmap")
{
uno::Any aAny = WrappedPropertySet::getPropertyValue("SymbolType");
sal_Int32 nVal = css::chart::ChartSymbolType::NONE;
diff --git a/chart2/source/controller/chartapiwrapper/WrappedSymbolProperties.cxx b/chart2/source/controller/chartapiwrapper/WrappedSymbolProperties.cxx
index 0547222017c8..ec84b1f869ad 100644
--- a/chart2/source/controller/chartapiwrapper/WrappedSymbolProperties.cxx
+++ b/chart2/source/controller/chartapiwrapper/WrappedSymbolProperties.cxx
@@ -61,13 +61,13 @@ public:
tSeriesOrDiagramPropertyType ePropertyType);
};
-class WrappedSymbolBitmapURLProperty : public WrappedSeriesOrDiagramProperty< OUString >
+class WrappedSymbolBitmapProperty : public WrappedSeriesOrDiagramProperty<uno::Reference<graphic::XGraphic>>
{
public:
- virtual OUString getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const override;
- virtual void setValueToSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet, const OUString& aNewGraphicURL ) const override;
+ virtual uno::Reference<graphic::XGraphic> getValueFromSeries(const Reference<beans::XPropertySet>& xSeriesPropertySet) const override;
+ virtual void setValueToSeries(const Reference<beans::XPropertySet> & xSeriesPropertySet, uno::Reference<graphic::XGraphic> const & aNewGraphicURL) const override;
- explicit WrappedSymbolBitmapURLProperty(const std::shared_ptr<Chart2ModelContact>& spChart2ModelContact,
+ explicit WrappedSymbolBitmapProperty(const std::shared_ptr<Chart2ModelContact>& spChart2ModelContact,
tSeriesOrDiagramPropertyType ePropertyType);
};
@@ -99,7 +99,7 @@ enum
{
//symbol properties
PROP_CHART_SYMBOL_TYPE = FAST_PROPERTY_ID_START_CHART_SYMBOL_PROP,
- PROP_CHART_SYMBOL_BITMAP_URL,
+ PROP_CHART_SYMBOL_BITMAP,
PROP_CHART_SYMBOL_SIZE,
PROP_CHART_SYMBOL_AND_LINES
};
@@ -154,7 +154,7 @@ void lcl_addWrappedProperties( std::vector< WrappedProperty* >& rList
, tSeriesOrDiagramPropertyType ePropertyType )
{
rList.push_back( new WrappedSymbolTypeProperty( spChart2ModelContact, ePropertyType ) );
- rList.push_back( new WrappedSymbolBitmapURLProperty( spChart2ModelContact, ePropertyType ) );
+ rList.push_back( new WrappedSymbolBitmapProperty( spChart2ModelContact, ePropertyType ) );
rList.push_back( new WrappedSymbolSizeProperty( spChart2ModelContact, ePropertyType ) );
rList.push_back( new WrappedSymbolAndLinesProperty( spChart2ModelContact, ePropertyType ) );
}
@@ -169,9 +169,9 @@ void WrappedSymbolProperties::addProperties( std::vector< Property > & rOutPrope
beans::PropertyAttribute::BOUND
| beans::PropertyAttribute::MAYBEDEFAULT );
- rOutProperties.emplace_back( "SymbolBitmapURL",
- PROP_CHART_SYMBOL_BITMAP_URL,
- cppu::UnoType<OUString>::get(),
+ rOutProperties.emplace_back( "SymbolBitmap",
+ PROP_CHART_SYMBOL_BITMAP,
+ cppu::UnoType<graphic::XGraphic>::get(),
beans::PropertyAttribute::BOUND
| beans::PropertyAttribute::MAYBEDEFAULT );
@@ -281,66 +281,42 @@ beans::PropertyState WrappedSymbolTypeProperty::getPropertyState( const Referenc
return WrappedProperty::getPropertyState( xInnerPropertyState );
}
-WrappedSymbolBitmapURLProperty::WrappedSymbolBitmapURLProperty(
+WrappedSymbolBitmapProperty::WrappedSymbolBitmapProperty(
const std::shared_ptr<Chart2ModelContact>& spChart2ModelContact,
tSeriesOrDiagramPropertyType ePropertyType )
- : WrappedSeriesOrDiagramProperty< OUString >( "SymbolBitmapURL"
- , uno::Any( OUString() ), spChart2ModelContact, ePropertyType )
+ : WrappedSeriesOrDiagramProperty<uno::Reference<graphic::XGraphic>>("SymbolBitmap",
+ uno::Any(uno::Reference<graphic::XGraphic>()), spChart2ModelContact, ePropertyType)
{
}
-OUString WrappedSymbolBitmapURLProperty::getValueFromSeries( const Reference< beans::XPropertySet >& xSeriesPropertySet ) const
+uno::Reference<graphic::XGraphic> WrappedSymbolBitmapProperty::getValueFromSeries(const Reference< beans::XPropertySet >& xSeriesPropertySet) const
{
- OUString aRet;
- m_aDefaultValue >>= aRet;
+ uno::Reference<graphic::XGraphic> xGraphic;
+ m_aDefaultValue >>= xGraphic;
+
chart2::Symbol aSymbol;
- if( xSeriesPropertySet.is() && ( xSeriesPropertySet->getPropertyValue("Symbol") >>= aSymbol )
+ if (xSeriesPropertySet.is() && (xSeriesPropertySet->getPropertyValue("Symbol") >>= aSymbol)
&& aSymbol.Graphic.is())
{
- GraphicObject aGrObj( Graphic( aSymbol.Graphic ));
- aRet = UNO_NAME_GRAPHOBJ_URLPREFIX +
- OStringToOUString(aGrObj.GetUniqueID(),
- RTL_TEXTENCODING_ASCII_US);
+ xGraphic = aSymbol.Graphic;
}
- return aRet;
+ return xGraphic;
}
-void WrappedSymbolBitmapURLProperty::setValueToSeries(
+void WrappedSymbolBitmapProperty::setValueToSeries(
const Reference< beans::XPropertySet >& xSeriesPropertySet,
- const OUString& aNewGraphicURL ) const
+ uno::Reference<graphic::XGraphic> const & xNewGraphic) const
{
- if(!xSeriesPropertySet.is())
+ if (!xSeriesPropertySet.is())
return;
chart2::Symbol aSymbol;
- if( xSeriesPropertySet->getPropertyValue("Symbol") >>= aSymbol )
+ if (xSeriesPropertySet->getPropertyValue("Symbol") >>= aSymbol)
{
- bool bMatchesPrefix = aNewGraphicURL.match( UNO_NAME_GRAPHOBJ_URLPREFIX );
- if( bMatchesPrefix )
- {
- GraphicObject aGrObj = GraphicObject(
- OUStringToOString(aNewGraphicURL.copy( RTL_CONSTASCII_LENGTH(UNO_NAME_GRAPHOBJ_URLPREFIX) ), RTL_TEXTENCODING_ASCII_US));
- aSymbol.Graphic.set( aGrObj.GetGraphic().GetXGraphic());
- xSeriesPropertySet->setPropertyValue( "Symbol", uno::Any( aSymbol ) );
- }
- else
+ if (xNewGraphic.is())
{
- try
- {
- // @todo: get factory from some context?
- Reference< uno::XComponentContext > xContext = comphelper::getProcessComponentContext();
- Reference< graphic::XGraphicProvider > xGraphProv( graphic::GraphicProvider::create(xContext) );
- Sequence< beans::PropertyValue > aArgs(1);
- aArgs[0] = beans::PropertyValue( "URL", -1, uno::Any( aNewGraphicURL ),
- beans::PropertyState_DIRECT_VALUE );
- aSymbol.Graphic.set( xGraphProv->queryGraphic( aArgs ));
- OSL_ENSURE( aSymbol.Graphic.is(), "Invalid URL for Symbol Bitmap" );
- xSeriesPropertySet->setPropertyValue( "Symbol", uno::Any( aSymbol ) );
- }
- catch( const uno::Exception & ex )
- {
- SAL_WARN("chart2", "Exception caught. " << ex );
- }
+ aSymbol.Graphic.set(xNewGraphic);
+ xSeriesPropertySet->setPropertyValue("Symbol", uno::Any(aSymbol));
}
}
}
diff --git a/xmloff/source/chart/PropertyMap.hxx b/xmloff/source/chart/PropertyMap.hxx
index 93285f84ae77..d81a11993082 100644
--- a/xmloff/source/chart/PropertyMap.hxx
+++ b/xmloff/source/chart/PropertyMap.hxx
@@ -121,7 +121,7 @@ const XMLPropertyMapEntry aXMLChartPropMap[] =
// if type=="named-symbol" => name of symbol (square, diamond, ...)
MAP_ENTRY( "SymbolType", CHART, XML_SYMBOL_NAME, XML_SCH_TYPE_NAMED_SYMBOL | MID_FLAG_MULTI_PROPERTY ),
// if type=="image" => an xlink:href element with a linked (package) URI
- MAP_SPECIAL( "SymbolBitmapURL", CHART, XML_SYMBOL_IMAGE, XML_TYPE_STRING | MID_FLAG_ELEMENT_ITEM, XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE ),
+ MAP_SPECIAL( "SymbolBitmap", CHART, XML_SYMBOL_IMAGE, XML_TYPE_STRING | MID_FLAG_ELEMENT_ITEM, XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE ),
MAP_SPECIAL( "SymbolSize", CHART, XML_SYMBOL_WIDTH, XML_TYPE_MEASURE | MID_FLAG_MERGE_PROPERTY, XML_SCH_CONTEXT_SPECIAL_SYMBOL_WIDTH ),
MAP_SPECIAL( "SymbolSize", CHART, XML_SYMBOL_HEIGHT, XML_TYPE_MEASURE | MID_FLAG_MERGE_PROPERTY, XML_SCH_CONTEXT_SPECIAL_SYMBOL_HEIGHT ),
MAP_ENTRY( "Vertical", CHART, XML_VERTICAL, XML_TYPE_BOOL ),
@@ -251,7 +251,7 @@ const XMLPropertyMapEntry aXMLChartPropMap[] =
MAP_ENTRY( "StackedText", STYLE, XML_DIRECTION, XML_SCH_TYPE_TEXT_ORIENTATION ),
// for compatibility to pre 6.0beta documents
-// MAP_SPECIAL( "SymbolBitmapURL", CHART, XML_SYMBOL_IMAGE_NAME, XML_TYPE_STRING, XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE_NAME ),
+// MAP_SPECIAL( "SymbolBitmap", CHART, XML_SYMBOL_IMAGE_NAME, XML_TYPE_STRING, XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE_NAME ),
MAP_ENTRY( "ChartUserDefinedAttributes", TEXT, XML_XMLNS, XML_TYPE_ATTRIBUTE_CONTAINER | MID_FLAG_SPECIAL_ITEM ),
diff --git a/xmloff/source/chart/PropertyMaps.cxx b/xmloff/source/chart/PropertyMaps.cxx
index 76f4fda22a2b..7c97657f022f 100644
--- a/xmloff/source/chart/PropertyMaps.cxx
+++ b/xmloff/source/chart/PropertyMaps.cxx
@@ -289,15 +289,20 @@ void XMLChartExportPropertyMapper::handleElementItem(
{
case XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE:
{
- OUString aURLStr;
- rProperty.maValue >>= aURLStr;
+ uno::Reference<graphic::XGraphic> xGraphic;
+ rProperty.maValue >>= xGraphic;
+ OUString sInternalURL;
// export as XLink reference into the package
// if embedding is off
- OUString sTempURL( mrExport.AddEmbeddedGraphicObject( aURLStr ));
- if( !sTempURL.isEmpty() )
+ if (xGraphic.is())
{
- mrExport.AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, sTempURL );
+ OUString aOutMimeType;
+ sInternalURL = mrExport.AddEmbeddedXGraphic(xGraphic, aOutMimeType);
+ }
+ if (!sInternalURL.isEmpty())
+ {
+ mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, sInternalURL);
}
{
@@ -310,8 +315,8 @@ void XMLChartExportPropertyMapper::handleElementItem(
// export as Base64 embedded graphic
// if embedding is on
- if( !aURLStr.isEmpty())
- mrExport.AddEmbeddedGraphicObjectAsBase64( aURLStr );
+ if (xGraphic.is())
+ mrExport.AddEmbeddedXGraphicAsBase64(xGraphic);
}
}
break;
@@ -639,7 +644,7 @@ bool XMLChartImportPropertyMapper::handleSpecialItem(
// deprecated from 6.0 beta on
case XML_SCH_CONTEXT_SPECIAL_SYMBOL_IMAGE_NAME:
- rProperty.maValue <<= mrImport.ResolveGraphicObjectURL( rValue, false );
+ rProperty.maValue <<= mrImport.loadGraphicByURL(rValue);
break;
case XML_SCH_CONTEXT_SPECIAL_REGRESSION_TYPE:
diff --git a/xmloff/source/chart/XMLSymbolImageContext.cxx b/xmloff/source/chart/XMLSymbolImageContext.cxx
index d90119809028..4e9fae4a9df5 100644
--- a/xmloff/source/chart/XMLSymbolImageContext.cxx
+++ b/xmloff/source/chart/XMLSymbolImageContext.cxx
@@ -25,9 +25,9 @@
#include <xmloff/nmspmap.hxx>
#include <xmloff/XMLBase64ImportContext.hxx>
#include <com/sun/star/io/XOutputStream.hpp>
+#include <com/sun/star/graphic/XGraphic.hpp>
-
-using namespace ::com::sun::star;
+using namespace css;
enum SvXMLTokenMapAttrs
{
@@ -115,22 +115,22 @@ SvXMLImportContextRef XMLSymbolImageContext::CreateChildContext(
void XMLSymbolImageContext::EndElement()
{
- OUString sResolvedURL;
+ uno::Reference<graphic::XGraphic> xGraphic;
- if( !msURL.isEmpty() )
+ if (!msURL.isEmpty())
{
- sResolvedURL = GetImport().ResolveGraphicObjectURL( msURL, false );
+ xGraphic = GetImport().loadGraphicByURL(msURL);
}
- else if( mxBase64Stream.is() )
+ else if (mxBase64Stream.is())
{
- sResolvedURL = GetImport().ResolveGraphicObjectURLFromBase64( mxBase64Stream );
+ xGraphic = GetImport().loadGraphicFromBase64(mxBase64Stream);
mxBase64Stream = nullptr;
}
- if( !sResolvedURL.isEmpty())
+ if (xGraphic.is())
{
// aProp is a member of XMLElementPropertyContext
- aProp.maValue <<= sResolvedURL;
+ aProp.maValue <<= xGraphic;
SetInsert( true );
}