1 diff -rup basic/source/classes/sb.cxx basic.patched/source/classes/sb.cxx
2 --- basic/source/classes/sb.cxx 2008-05-22 09:44:11.000000000 +0100
3 +++ basic/source/classes/sb.cxx 2008-05-23 18:10:51.000000000 +0100
4 @@ -461,72 +461,7 @@ SbClassModuleObject::~SbClassModuleObjec
5 void SbClassModuleObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
6 const SfxHint& rHint, const TypeId& rHintType )
10 - const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
13 - SbxVariable* pVar = pHint->GetVar();
14 - SbProcedureProperty* pProcProperty = PTR_CAST( SbProcedureProperty, pVar );
19 - if( pHint->GetId() == SBX_HINT_DATAWANTED )
22 - aProcName.AppendAscii( "Property Get " );
23 - aProcName += pProcProperty->GetName();
25 - SbxVariable* pMeth = Find( aProcName, SbxCLASS_METHOD );
29 - aVals.eType = SbxVARIANT;
30 - pMeth->Get( aVals );
34 - else if( pHint->GetId() == SBX_HINT_DATACHANGED )
36 - SbxVariable* pMeth = NULL;
38 - bool bSet = pProcProperty->isSet();
41 - pProcProperty->setSet( false );
44 - aProcName.AppendAscii( "Property Set " );
45 - aProcName += pProcProperty->GetName();
46 - pMeth = Find( aProcName, SbxCLASS_METHOD );
51 - aProcName.AppendAscii( "Property Let " );
52 - aProcName += pProcProperty->GetName();
53 - pMeth = Find( aProcName, SbxCLASS_METHOD );
59 - SbxArrayRef xArray = new SbxArray;
60 - xArray->Put( pMeth, 0 ); // Method as parameter 0
61 - xArray->Put( pVar, 1 );
62 - pMeth->SetParameters( xArray );
65 - pMeth->Get( aVals );
66 - pMeth->SetParameters( NULL );
73 - SbModule::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
74 + SbModule::SFX_NOTIFY( rBC, rBCType, rHint, rHintType );
77 SbxVariable* SbClassModuleObject::Find( const XubString& rName, SbxClassType t )
78 diff -rup basic/source/classes/sbxmod.cxx basic.patched/source/classes/sbxmod.cxx
79 --- basic/source/classes/sbxmod.cxx 2008-05-22 09:44:12.000000000 +0100
80 +++ basic.patched/source/classes/sbxmod.cxx 2008-05-23 18:11:36.000000000 +0100
81 @@ -471,6 +471,64 @@ void SbModule::SFX_NOTIFY( SfxBroadcaste
82 SbxVariable* pVar = pHint->GetVar();
83 SbProperty* pProp = PTR_CAST(SbProperty,pVar);
84 SbMethod* pMeth = PTR_CAST(SbMethod,pVar);
85 + SbProcedureProperty* pProcProperty = PTR_CAST( SbProcedureProperty, pVar );
88 + if( pHint->GetId() == SBX_HINT_DATAWANTED )
91 + aProcName.AppendAscii( "Property Get " );
92 + aProcName += pProcProperty->GetName();
94 + SbxVariable* pPropMeth = Find( aProcName, SbxCLASS_METHOD );
98 + pPropMeth->SetParameters( pVar->GetParameters() );
101 + aVals.eType = SbxVARIANT;
102 + pPropMeth->Get( aVals );
103 + pVar->Put( aVals );
106 + else if( pHint->GetId() == SBX_HINT_DATACHANGED )
108 + SbxVariable* pPropMeth = NULL;
110 + bool bSet = pProcProperty->isSet();
113 + pProcProperty->setSet( false );
116 + aProcName.AppendAscii( "Property Set " );
117 + aProcName += pProcProperty->GetName();
118 + pPropMeth = Find( aProcName, SbxCLASS_METHOD );
120 + if( !pPropMeth ) // Let
123 + aProcName.AppendAscii( "Property Let " );
124 + aProcName += pProcProperty->GetName();
125 + pPropMeth = Find( aProcName, SbxCLASS_METHOD );
130 + // Setup parameters
131 + SbxArrayRef xArray = new SbxArray;
132 + xArray->Put( pPropMeth, 0 ); // Method as parameter 0
133 + xArray->Put( pVar, 1 );
134 + pPropMeth->SetParameters( xArray );
137 + pPropMeth->Get( aVals );
138 + pPropMeth->SetParameters( NULL );
145 if( pProp->GetModule() != this )