From 3f9acf02b0a45deb258c96b638c6fddd9af31ff9 Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Tue, 28 Jun 2016 00:30:29 +1000 Subject: tdf#99729 prerequisite: model-level user data r/w This commit introduces a system for reading/writing common model-level user data (like compatibility flags from settings.xml). It is designed to reduce code duplication in cases where an option is applicable to any type of document. Change-Id: Id4e31df14f49cbb673f4a6df943ccec6d98eb9aa Reviewed-on: https://gerrit.libreoffice.org/26719 Tested-by: Jenkins Reviewed-by: Miklos Vajna --- svx/source/svdraw/svdmodel.cxx | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'svx') diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index 5edce8f8b453..f537e07b206e 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -1925,6 +1925,35 @@ SvxNumType SdrModel::GetPageNumType() const return SVX_ARABIC; } +void SdrModel::ReadUserDataSequenceValue(const css::beans::PropertyValue* /*pValue*/) +{ + // TODO: Read common model-level values +} + +template +inline void addPair(std::vector< std::pair< OUString, Any > >& aUserData, const OUString& name, const T val) +{ + aUserData.push_back(std::pair< OUString, Any >(name, css::uno::makeAny(val))); +} + +void SdrModel::WriteUserDataSequence(css::uno::Sequence < css::beans::PropertyValue >& rValues, bool /*bBrowse*/) +{ + std::vector< std::pair< OUString, Any > > aUserData; + // TODO: addPair(aUserData, "PropName", PropValue); + + const sal_Int32 nOldLength = rValues.getLength(); + rValues.realloc(nOldLength + aUserData.size()); + + css::beans::PropertyValue* pValue = &(rValues.getArray()[nOldLength]); + + for (const auto &aIter : aUserData) + { + pValue->Name = aIter.first; + pValue->Value = aIter.second; + ++pValue; + } +} + const SdrPage* SdrModel::GetPage(sal_uInt16 nPgNum) const { DBG_ASSERT(nPgNum < maPages.size(), "SdrModel::GetPage: Access out of range (!)"); -- cgit