summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Nebel <nn@openoffice.org>2010-10-04 16:18:38 +0200
committerNiklas Nebel <nn@openoffice.org>2010-10-04 16:18:38 +0200
commit85ae59e8c0a0bd320e0883c61a08fc46311264c0 (patch)
treeabe3d67c537f094c8c1dc4eb2817f2c88477c56a
parent07e200fd6ceb1ec01bc01e06121db68db4fb9b97 (diff)
dr77: #i113668# don't create cyclic references between ScTableConditionalFormat and ScTableConditionalEntry
-rw-r--r--sc/inc/fmtuno.hxx6
-rw-r--r--sc/source/ui/unoobj/fmtuno.cxx41
2 files changed, 4 insertions, 43 deletions
diff --git a/sc/inc/fmtuno.hxx b/sc/inc/fmtuno.hxx
index eebd808c30a4..6b79f88f4263 100644
--- a/sc/inc/fmtuno.hxx
+++ b/sc/inc/fmtuno.hxx
@@ -95,7 +95,6 @@ public:
void FillFormat( ScConditionalFormat& rFormat, ScDocument* pDoc,
formula::FormulaGrammar::Grammar eGrammar) const;
- void DataChanged();
// XSheetConditionalEntries
virtual void SAL_CALL addNew( const ::com::sun::star::uno::Sequence<
@@ -157,13 +156,11 @@ class ScTableConditionalEntry : public cppu::WeakImplHelper3<
com::sun::star::lang::XServiceInfo >
{
private:
- ScTableConditionalFormat* pParent;
ScCondFormatEntryItem aData;
ScTableConditionalEntry(); // disabled
public:
- ScTableConditionalEntry(ScTableConditionalFormat* pPar,
- const ScCondFormatEntryItem& aItem);
+ ScTableConditionalEntry(const ScCondFormatEntryItem& aItem);
virtual ~ScTableConditionalEntry();
void GetData(ScCondFormatEntryItem& rData) const;
@@ -241,7 +238,6 @@ public:
ScValidationData* CreateValidationData( ScDocument* pDoc,
formula::FormulaGrammar::Grammar eGrammar ) const;
- void DataChanged();
// XSheetCondition
virtual ::com::sun::star::sheet::ConditionOperator SAL_CALL getOperator()
diff --git a/sc/source/ui/unoobj/fmtuno.cxx b/sc/source/ui/unoobj/fmtuno.cxx
index 392533c7cf93..6da02cf9e4e3 100644
--- a/sc/source/ui/unoobj/fmtuno.cxx
+++ b/sc/source/ui/unoobj/fmtuno.cxx
@@ -236,16 +236,11 @@ ScTableConditionalFormat::~ScTableConditionalFormat()
void ScTableConditionalFormat::AddEntry_Impl(const ScCondFormatEntryItem& aEntry)
{
- ScTableConditionalEntry* pNew = new ScTableConditionalEntry(this, aEntry);
+ ScTableConditionalEntry* pNew = new ScTableConditionalEntry(aEntry);
pNew->acquire();
aEntries.Insert( pNew, LIST_APPEND );
}
-void ScTableConditionalFormat::DataChanged()
-{
- // wenn's mal das "lebende Objekt" ist, muss hier was passieren...
-}
-
// XSheetConditionalFormat
ScTableConditionalEntry* ScTableConditionalFormat::GetObjectByIndex_Impl(USHORT nIndex) const
@@ -348,7 +343,6 @@ void SAL_CALL ScTableConditionalFormat::addNew(
}
AddEntry_Impl(aEntry);
- DataChanged();
}
void SAL_CALL ScTableConditionalFormat::removeByIndex( sal_Int32 nIndex )
@@ -360,7 +354,6 @@ void SAL_CALL ScTableConditionalFormat::removeByIndex( sal_Int32 nIndex )
{
aEntries.Remove(pEntry);
pEntry->release();
- DataChanged();
}
}
@@ -371,8 +364,6 @@ void SAL_CALL ScTableConditionalFormat::clear() throw(uno::RuntimeException)
aEntries.First();
while ( ( pEntry = (ScTableConditionalEntry*)aEntries.Remove() ) != NULL )
pEntry->release();
-
- DataChanged();
}
// XEnumerationAccess
@@ -525,19 +516,14 @@ ScTableConditionalFormat* ScTableConditionalFormat::getImplementation(
//UNUSED2008-05 {
//UNUSED2008-05 }
-ScTableConditionalEntry::ScTableConditionalEntry(ScTableConditionalFormat* pPar,
- const ScCondFormatEntryItem& aItem) :
- pParent( pPar ),
+ScTableConditionalEntry::ScTableConditionalEntry(const ScCondFormatEntryItem& aItem) :
aData( aItem )
{
- if (pParent)
- pParent->acquire();
+ // #i113668# only store the settings, keep no reference to parent object
}
ScTableConditionalEntry::~ScTableConditionalEntry()
{
- if (pParent)
- pParent->release();
}
void ScTableConditionalEntry::GetData(ScCondFormatEntryItem& rData) const
@@ -559,8 +545,6 @@ void SAL_CALL ScTableConditionalEntry::setOperator( sheet::ConditionOperator nOp
{
ScUnoGuard aGuard;
aData.meMode = lcl_ConditionOperatorToMode( nOperator );
- if (pParent)
- pParent->DataChanged();
}
rtl::OUString SAL_CALL ScTableConditionalEntry::getFormula1() throw(uno::RuntimeException)
@@ -574,8 +558,6 @@ void SAL_CALL ScTableConditionalEntry::setFormula1( const rtl::OUString& aFormul
{
ScUnoGuard aGuard;
aData.maExpr1 = String( aFormula1 );
- if (pParent)
- pParent->DataChanged();
}
rtl::OUString SAL_CALL ScTableConditionalEntry::getFormula2() throw(uno::RuntimeException)
@@ -589,8 +571,6 @@ void SAL_CALL ScTableConditionalEntry::setFormula2( const rtl::OUString& aFormul
{
ScUnoGuard aGuard;
aData.maExpr2 = String( aFormula2 );
- if (pParent)
- pParent->DataChanged();
}
table::CellAddress SAL_CALL ScTableConditionalEntry::getSourcePosition() throw(uno::RuntimeException)
@@ -608,8 +588,6 @@ void SAL_CALL ScTableConditionalEntry::setSourcePosition( const table::CellAddre
{
ScUnoGuard aGuard;
aData.maPos.Set( (SCCOL)aSourcePosition.Column, (SCROW)aSourcePosition.Row, aSourcePosition.Sheet );
- if (pParent)
- pParent->DataChanged();
}
// XSheetConditionalEntry
@@ -625,8 +603,6 @@ void SAL_CALL ScTableConditionalEntry::setStyleName( const rtl::OUString& aStyle
{
ScUnoGuard aGuard;
aData.maStyle = ScStyleNameConversion::ProgrammaticToDisplayName( aStyleName, SFX_STYLE_FAMILY_PARA );
- if (pParent)
- pParent->DataChanged();
}
//------------------------------------------------------------------------
@@ -739,11 +715,6 @@ ScTableValidationObj::~ScTableValidationObj()
{
}
-void ScTableValidationObj::DataChanged()
-{
- // wenn's mal das "lebende Objekt" ist, muss hier was passieren...
-}
-
// XSheetCondition
sheet::ConditionOperator SAL_CALL ScTableValidationObj::getOperator()
@@ -758,7 +729,6 @@ void SAL_CALL ScTableValidationObj::setOperator( sheet::ConditionOperator nOpera
{
ScUnoGuard aGuard;
nMode = sal::static_int_cast<USHORT>( lcl_ConditionOperatorToMode( nOperator ) );
- DataChanged();
}
rtl::OUString SAL_CALL ScTableValidationObj::getFormula1() throw(uno::RuntimeException)
@@ -772,7 +742,6 @@ void SAL_CALL ScTableValidationObj::setFormula1( const rtl::OUString& aFormula1
{
ScUnoGuard aGuard;
aExpr1 = String( aFormula1 );
- DataChanged();
}
rtl::OUString SAL_CALL ScTableValidationObj::getFormula2() throw(uno::RuntimeException)
@@ -786,7 +755,6 @@ void SAL_CALL ScTableValidationObj::setFormula2( const rtl::OUString& aFormula2
{
ScUnoGuard aGuard;
aExpr2 = String( aFormula2 );
- DataChanged();
}
table::CellAddress SAL_CALL ScTableValidationObj::getSourcePosition() throw(uno::RuntimeException)
@@ -804,7 +772,6 @@ void SAL_CALL ScTableValidationObj::setSourcePosition( const table::CellAddress&
{
ScUnoGuard aGuard;
aSrcPos.Set( (SCCOL)aSourcePosition.Column, (SCROW)aSourcePosition.Row, aSourcePosition.Sheet );
- DataChanged();
}
uno::Sequence<sheet::FormulaToken> SAL_CALL ScTableValidationObj::getTokens( sal_Int32 nIndex )
@@ -963,8 +930,6 @@ void SAL_CALL ScTableValidationObj::setPropertyValue(
if ( aValue >>= nVal )
meGrammar2 = static_cast< FormulaGrammar::Grammar >(nVal);
}
-
- DataChanged();
}
uno::Any SAL_CALL ScTableValidationObj::getPropertyValue( const rtl::OUString& aPropertyName )