From a1a60f79c6ffccfd49034a6251031e1f9a0c63a0 Mon Sep 17 00:00:00 2001 From: Julien Nabet Date: Tue, 20 Feb 2018 23:50:04 +0100 Subject: tdf#115853: save current custom property when adding line by reloading current lines before adding a brand new one indeed the info are deleted by ClearCustomProperties each time SfxDocumentInfoItem destructor is called Change-Id: Id1e2e652e90c720f00b8612aa9afbfa91b784d1d Reviewed-on: https://gerrit.libreoffice.org/50070 Tested-by: Jenkins Reviewed-by: Julien Nabet --- sfx2/source/dialog/dinfdlg.cxx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx index 69847ed42692..415e8af27ad9 100644 --- a/sfx2/source/dialog/dinfdlg.cxx +++ b/sfx2/source/dialog/dinfdlg.cxx @@ -2162,7 +2162,22 @@ void SfxCustomPropertiesPage::dispose() IMPL_LINK_NOARG(SfxCustomPropertiesPage, AddHdl, Button*, void) { - m_pPropertiesCtrl->AddLine( Any() ); + // tdf#115853: reload current lines before adding a brand new one + // indeed the info are deleted by ClearCustomProperties + // each time SfxDocumentInfoItem destructor is called + SfxDocumentInfoItem pInfo; + Sequence< beans::PropertyValue > aPropertySeq = m_pPropertiesCtrl->GetCustomProperties(); + sal_Int32 i = 0, nCount = aPropertySeq.getLength(); + for ( ; i < nCount; ++i ) + { + if ( !aPropertySeq[i].Name.isEmpty() ) + { + pInfo.AddCustomProperty( aPropertySeq[i].Name, aPropertySeq[i].Value ); + } + } + + Any aAny; + m_pPropertiesCtrl->AddLine(aAny); } bool SfxCustomPropertiesPage::FillItemSet( SfxItemSet* rSet ) -- cgit