summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2016-06-28 00:30:29 +1000
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-06-28 07:06:04 +0000
commit3f9acf02b0a45deb258c96b638c6fddd9af31ff9 (patch)
tree6c856a388a32dfda98c47a37c0226b25a1904590 /svx
parentd37e39081328e94b7106c8f3ca1dbc629ecb9a80 (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.cxx29
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 (!)");