summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2016-12-09 00:28:46 +0100
committerNoel Grandin <noel.grandin@collabora.co.uk>2016-12-09 07:40:49 +0000
commitf7a61c6c462ef188b82ade6c36d0c0bce1fe7f26 (patch)
tree3e709468a1b31ab34153362b5d71d475ccbfb75c
parent282e2de90fe724958c82c76f449a19e8ccbfc017 (diff)
tdf#104105: fix Vcl lifecycle in CondFormat (reportdesign)
Avoid this error: Window ( 7VclVBox()) with live children destroyed: N5rptui9ConditionE() * n by calling disposeAndClear on each element of m_aConditions m_aConditions is Conditions type Conditions type is ::std::vector< VclPtr<Condition> > See http://opengrok.libreoffice.org/xref/core/reportdesign/source/ui/inc/CondFormat.hxx#70 Change-Id: Ie99f8cdb5acd787892237787525d79f3231689db Reviewed-on: https://gerrit.libreoffice.org/31775 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr> (cherry picked from commit 73131fc3806ce2a7da61c93590e467e5b044c341) Reviewed-on: https://gerrit.libreoffice.org/31780 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--reportdesign/source/ui/dlg/CondFormat.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/reportdesign/source/ui/dlg/CondFormat.cxx b/reportdesign/source/ui/dlg/CondFormat.cxx
index c48f4622419c..a68f05049003 100644
--- a/reportdesign/source/ui/dlg/CondFormat.cxx
+++ b/reportdesign/source/ui/dlg/CondFormat.cxx
@@ -135,6 +135,12 @@ namespace rptui
void ConditionalFormattingDialog::dispose()
{
+
+ for (auto i = m_aConditions.begin(); i != m_aConditions.end(); ++i)
+ {
+ i->disposeAndClear();
+ }
+
m_aConditions.clear();
m_pConditionPlayground.clear();
m_pScrollWindow.clear();
@@ -191,7 +197,6 @@ namespace rptui
Reference< XFormatCondition > xCond = m_xCopy->createFormatCondition();
::comphelper::copyProperties(m_xCopy.get(),xCond.get());
m_xCopy->insertByIndex( _nNewCondIndex, makeAny( xCond ) );
-
VclPtrInstance<Condition> pCon( m_pConditionPlayground, *this, m_rController );
pCon->setCondition( xCond );
pCon->reorderWithinParent(_nNewCondIndex);