summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--forms/source/component/DatabaseForm.cxx26
-rw-r--r--forms/source/component/DatabaseForm.hxx5
2 files changed, 22 insertions, 9 deletions
diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx
index 277534a83fbf..6592cc4fb43f 100644
--- a/forms/source/component/DatabaseForm.cxx
+++ b/forms/source/component/DatabaseForm.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: DatabaseForm.cxx,v $
*
- * $Revision: 1.28 $
+ * $Revision: 1.29 $
*
- * last change: $Author: fs $ $Date: 2001-05-31 14:08:06 $
+ * last change: $Author: fs $ $Date: 2001-06-12 11:52:27 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -765,6 +765,7 @@ ODatabaseForm::ODatabaseForm(const Reference<XMultiServiceFactory>& _rxFactory)
,m_pLoadTimer(NULL)
,m_nResetsPending(0)
,m_bForwardingConnection(sal_False)
+ ,m_pAggregatePropertyMultiplexer(NULL)
{
DBG_CTOR(ODatabaseForm,NULL);
@@ -782,11 +783,12 @@ ODatabaseForm::ODatabaseForm(const Reference<XMultiServiceFactory>& _rxFactory)
// listen for the properties, important for Parameters
if (m_xAggregateSet.is())
{
- OPropertyChangeMultiplexer* pMultiplexer = new OPropertyChangeMultiplexer(this, m_xAggregateSet);
- pMultiplexer->addProperty(PROPERTY_COMMAND);
- pMultiplexer->addProperty(PROPERTY_FILTER_CRITERIA);
- pMultiplexer->addProperty(PROPERTY_APPLYFILTER);
- pMultiplexer->addProperty(PROPERTY_ACTIVE_CONNECTION);
+ m_pAggregatePropertyMultiplexer = new OPropertyChangeMultiplexer(this, m_xAggregateSet, sal_False);
+ m_pAggregatePropertyMultiplexer->acquire();
+ m_pAggregatePropertyMultiplexer->addProperty(PROPERTY_COMMAND);
+ m_pAggregatePropertyMultiplexer->addProperty(PROPERTY_FILTER_CRITERIA);
+ m_pAggregatePropertyMultiplexer->addProperty(PROPERTY_APPLYFILTER);
+ m_pAggregatePropertyMultiplexer->addProperty(PROPERTY_ACTIVE_CONNECTION);
}
if (m_xAggregate.is())
@@ -809,6 +811,13 @@ ODatabaseForm::~ODatabaseForm()
if (m_xAggregate.is())
m_xAggregate->setDelegator(InterfaceRef());
+
+ if (m_pAggregatePropertyMultiplexer)
+ {
+ m_pAggregatePropertyMultiplexer->dispose();
+ m_pAggregatePropertyMultiplexer->release();
+ m_pAggregatePropertyMultiplexer = NULL;
+ }
}
//==============================================================================
@@ -1875,6 +1884,9 @@ sal_Bool ODatabaseForm::executeRowSet(ReusableMutexGuard& _rClearForNotifies, sa
//------------------------------------------------------------------
void ODatabaseForm::disposing()
{
+ if (m_pAggregatePropertyMultiplexer)
+ m_pAggregatePropertyMultiplexer->dispose();
+
if (m_bLoaded)
unload();
diff --git a/forms/source/component/DatabaseForm.hxx b/forms/source/component/DatabaseForm.hxx
index f5cc66a4e2c8..f3f066a725f5 100644
--- a/forms/source/component/DatabaseForm.hxx
+++ b/forms/source/component/DatabaseForm.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: DatabaseForm.hxx,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: fs $ $Date: 2001-04-12 09:44:13 $
+ * last change: $Author: fs $ $Date: 2001-06-12 11:52:41 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -290,6 +290,7 @@ class ODatabaseForm :public OFormComponents
// same object, interface as member because of performance reasons
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet> m_xAggregateAsRowSet;
+ OPropertyChangeMultiplexer* m_pAggregatePropertyMultiplexer;
// Verwaltung der ControlGruppen
OGroupManager* m_pGroupManager;
OParameterInfoImpl* m_pParameterInfo;