summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-04-16 18:15:21 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-04-16 18:36:41 +0200
commit142d63d01567b5c7e513258f2835dbde54b30012 (patch)
tree308ad9ddf04a70d4de94ba59f795e46601e7ef3b
parenta60d9aa7ce7d5c77798e7be1efce2afc05d97f85 (diff)
oox: add a method to dump a PropertyMap as data
It was already possible to dump a PropertyMap as code, but not as data. The plan here is that if we dump the customshape preset definitions as data, then once there is a parser for it, we can get rid of the ugly generated code. Change-Id: If596941fedf71693e5d0bff436446ac0855c4c84
-rw-r--r--include/oox/helper/propertymap.hxx2
-rw-r--r--include/sal/log-areas.dox1
-rw-r--r--oox/source/drawingml/customshapeproperties.cxx3
-rw-r--r--oox/source/helper/propertymap.cxx19
4 files changed, 25 insertions, 0 deletions
diff --git a/include/oox/helper/propertymap.hxx b/include/oox/helper/propertymap.hxx
index 4b4f416809ab..5cd606b0745a 100644
--- a/include/oox/helper/propertymap.hxx
+++ b/include/oox/helper/propertymap.hxx
@@ -110,6 +110,8 @@ public:
#endif
static void dumpCode( ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > rXPropSet);
void dumpCode();
+ static void dumpData(com::sun::star::uno::Reference<com::sun::star::beans::XPropertySet> rXPropSet);
+ void dumpData();
#endif
private:
const PropertyNameVector* mpPropNames;
diff --git a/include/sal/log-areas.dox b/include/sal/log-areas.dox
index 90fd1c0cbf44..c924dcbd1c14 100644
--- a/include/sal/log-areas.dox
+++ b/include/sal/log-areas.dox
@@ -173,6 +173,7 @@ certain functionality.
@li @c filter.tiff
@li @c filter.xslt - xslt import/export
@li @c oox.cscode - see oox/source/drawingml/customshapes/README
+@li @c oox.csdata - see oox/source/drawingml/customshapes/README
@li @c oox.drawingml - DrawingML
@li @c oox.ppt - pptx filter
@li @c oox.storage - ZipStorage class
diff --git a/oox/source/drawingml/customshapeproperties.cxx b/oox/source/drawingml/customshapeproperties.cxx
index 4886912ac054..cfaec25460dd 100644
--- a/oox/source/drawingml/customshapeproperties.cxx
+++ b/oox/source/drawingml/customshapeproperties.cxx
@@ -351,6 +351,9 @@ void CustomShapeProperties::pushToPropSet( const ::oox::core::FilterBase& /* rFi
SAL_INFO("oox.cscode", "==cscode== begin");
aPropertyMap.dumpCode();
SAL_INFO("oox.cscode", "==cscode== end");
+ SAL_INFO("oox.csdata", "==csdata== begin");
+ aPropertyMap.dumpData();
+ SAL_INFO("oox.csdata", "==csdata== end");
#endif
// converting the vector to a sequence
Sequence< PropertyValue > aSeq = aPropertyMap.makePropertyValueSequence();
diff --git a/oox/source/helper/propertymap.cxx b/oox/source/helper/propertymap.cxx
index 05c3b135ea54..1e5af51263b5 100644
--- a/oox/source/helper/propertymap.cxx
+++ b/oox/source/helper/propertymap.cxx
@@ -27,6 +27,8 @@
# include <com/sun/star/text/WritingMode.hpp>
using ::com::sun::star::style::LineSpacing;
using ::com::sun::star::text::WritingMode;
+#include <comphelper/anytostring.hxx>
+#include <iostream>
#endif
#include <com/sun/star/beans/PropertyValue.hpp>
@@ -929,10 +931,27 @@ void PropertyMap::dumpCode( Reference< XPropertySet > rXPropSet )
}
}
+void PropertyMap::dumpData(Reference<XPropertySet> xPropertySet)
+{
+ Reference<XPropertySetInfo> xPropertySetInfo = xPropertySet->getPropertySetInfo();
+ Sequence<Property> aProperties = xPropertySetInfo->getProperties();
+
+ for (int i = 0; i < aProperties.getLength(); ++i)
+ {
+ std::cerr << aProperties[i].Name << std::endl;
+ std::cerr << comphelper::anyToString(xPropertySet->getPropertyValue(aProperties[i].Name)) << std::endl;
+ }
+}
+
void PropertyMap::dumpCode()
{
dumpCode( Reference< XPropertySet >( makePropertySet(), UNO_QUERY ) );
}
+
+void PropertyMap::dumpData()
+{
+ dumpData( Reference< XPropertySet >( makePropertySet(), UNO_QUERY ) );
+}
#endif
} // namespace oox