diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2016-06-28 00:30:29 +1000 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-06-28 07:06:04 +0000 |
commit | 3f9acf02b0a45deb258c96b638c6fddd9af31ff9 (patch) | |
tree | 6c856a388a32dfda98c47a37c0226b25a1904590 /svx | |
parent | d37e39081328e94b7106c8f3ca1dbc629ecb9a80 (diff) |
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 <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/svdraw/svdmodel.cxx | 29 |
1 files changed, 29 insertions, 0 deletions
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 <typename T> +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 (!)"); |