Kaydet (Commit) 8cd07281 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

No more ScSharedHeaderFooterEditSource.

This shared base class makes no sense. Let's keep it simple.
üst 486fa0ba
...@@ -58,41 +58,27 @@ public: ...@@ -58,41 +58,27 @@ public:
sal_uInt16 GetPart() const { return nPart; } sal_uInt16 GetPart() const { return nPart; }
}; };
/**
// all ScSharedHeaderFooterEditSource objects for a single text share the same data * ScHeaderFooterEditSource with local copy of ScHeaderFooterTextData is
* used by field objects.
class ScSharedHeaderFooterEditSource : public SvxEditSource */
class ScHeaderFooterEditSource : public SvxEditSource
{ {
private: private:
ScHeaderFooterTextData* pTextData; ScHeaderFooterTextData* pTextData;
protected:
ScHeaderFooterTextData* GetTextData() const { return pTextData; } // for ScHeaderFooterEditSource
public: public:
ScSharedHeaderFooterEditSource( ScHeaderFooterTextData* pData ); ScHeaderFooterEditSource(ScHeaderFooterTextData* pData);
virtual ~ScSharedHeaderFooterEditSource(); ScHeaderFooterEditSource(ScHeaderFooterContentObj* pContent, sal_uInt16 nP);
ScHeaderFooterEditSource(ScHeaderFooterContentObj& rContent, sal_uInt16 nP);
virtual ~ScHeaderFooterEditSource();
// GetEditEngine is needed because the forwarder doesn't have field functions // GetEditEngine is needed because the forwarder doesn't have field functions
ScEditEngineDefaulter* GetEditEngine(); ScEditEngineDefaulter* GetEditEngine();
virtual SvxEditSource* Clone() const ; virtual SvxEditSource* Clone() const;
virtual SvxTextForwarder* GetTextForwarder(); virtual SvxTextForwarder* GetTextForwarder();
virtual void UpdateData(); virtual void UpdateData();
};
// ScHeaderFooterEditSource with local copy of ScHeaderFooterTextData is used by field objects
class ScHeaderFooterEditSource : public ScSharedHeaderFooterEditSource
{
public:
ScHeaderFooterEditSource( ScHeaderFooterContentObj* pContent, sal_uInt16 nP );
ScHeaderFooterEditSource( ScHeaderFooterContentObj& rContent, sal_uInt16 nP );
virtual ~ScHeaderFooterEditSource();
virtual SvxEditSource* Clone() const;
}; };
......
...@@ -65,63 +65,43 @@ ScHeaderFooterChangedHint::~ScHeaderFooterChangedHint() ...@@ -65,63 +65,43 @@ ScHeaderFooterChangedHint::~ScHeaderFooterChangedHint()
//------------------------------------------------------------------------ //------------------------------------------------------------------------
ScSharedHeaderFooterEditSource::ScSharedHeaderFooterEditSource( ScHeaderFooterTextData* pData ) : // each ScHeaderFooterEditSource object has its own ScHeaderFooterTextData
pTextData( pData )
{
// pTextData is held by the ScHeaderFooterTextObj.
// Text range and cursor keep a reference to their parent text, so the text object is
// always alive and the TextData is valid as long as there are children.
}
ScSharedHeaderFooterEditSource::~ScSharedHeaderFooterEditSource() ScHeaderFooterEditSource::ScHeaderFooterEditSource(ScHeaderFooterTextData* pData) :
{ pTextData(pData) {}
}
SvxEditSource* ScSharedHeaderFooterEditSource::Clone() const ScHeaderFooterEditSource::ScHeaderFooterEditSource(
{ ScHeaderFooterContentObj* pContent, sal_uInt16 nP) :
return new ScSharedHeaderFooterEditSource( pTextData ); pTextData(new ScHeaderFooterTextData(*pContent, nP)) {}
}
SvxTextForwarder* ScSharedHeaderFooterEditSource::GetTextForwarder() ScHeaderFooterEditSource::ScHeaderFooterEditSource(
{ ScHeaderFooterContentObj& rContent, sal_uInt16 nP) :
return pTextData->GetTextForwarder(); pTextData(new ScHeaderFooterTextData(rContent, nP)) {}
}
void ScSharedHeaderFooterEditSource::UpdateData() ScHeaderFooterEditSource::~ScHeaderFooterEditSource()
{ {
pTextData->UpdateData(); delete pTextData; // not accessed in ScSharedHeaderFooterEditSource dtor
} }
ScEditEngineDefaulter* ScSharedHeaderFooterEditSource::GetEditEngine() ScEditEngineDefaulter* ScHeaderFooterEditSource::GetEditEngine()
{ {
return pTextData->GetEditEngine(); return pTextData->GetEditEngine();
} }
//------------------------------------------------------------------------ SvxEditSource* ScHeaderFooterEditSource::Clone() const
// each ScHeaderFooterEditSource object has its own ScHeaderFooterTextData
ScHeaderFooterEditSource::ScHeaderFooterEditSource( ScHeaderFooterContentObj* pContent,
sal_uInt16 nP ) :
ScSharedHeaderFooterEditSource( new ScHeaderFooterTextData( *pContent, nP ) )
{
}
ScHeaderFooterEditSource::ScHeaderFooterEditSource( ScHeaderFooterContentObj& rContent,
sal_uInt16 nP ) :
ScSharedHeaderFooterEditSource( new ScHeaderFooterTextData( rContent, nP ) )
{ {
return new ScHeaderFooterEditSource(
pTextData->GetContentObj(), pTextData->GetPart());
} }
ScHeaderFooterEditSource::~ScHeaderFooterEditSource() SvxTextForwarder* ScHeaderFooterEditSource::GetTextForwarder()
{ {
delete GetTextData(); // not accessed in ScSharedHeaderFooterEditSource dtor return pTextData->GetTextForwarder();
} }
SvxEditSource* ScHeaderFooterEditSource::Clone() const void ScHeaderFooterEditSource::UpdateData()
{ {
const ScHeaderFooterTextData* pData = GetTextData(); pTextData->UpdateData();
return new ScHeaderFooterEditSource( pData->GetContentObj(), pData->GetPart() );
} }
//------------------------------------------------------------------------ //------------------------------------------------------------------------
......
...@@ -335,7 +335,8 @@ void ScHeaderFooterTextObj::CreateUnoText_Impl() ...@@ -335,7 +335,8 @@ void ScHeaderFooterTextObj::CreateUnoText_Impl()
if ( !pUnoText ) if ( !pUnoText )
{ {
// can't be aggregated because getString/setString is handled here // can't be aggregated because getString/setString is handled here
ScSharedHeaderFooterEditSource aEditSource( &aTextData ); ScHeaderFooterEditSource aEditSource(
new ScHeaderFooterTextData(aTextData.GetContentObj(), aTextData.GetPart()));
pUnoText = new SvxUnoText( &aEditSource, lcl_GetHdFtPropertySet(), uno::Reference<text::XText>() ); pUnoText = new SvxUnoText( &aEditSource, lcl_GetHdFtPropertySet(), uno::Reference<text::XText>() );
pUnoText->acquire(); pUnoText->acquire();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment