editeng/source/editeng/editeng.cxx | 5 +++++ editeng/source/editeng/impedit.hxx | 3 +++ editeng/source/editeng/impedit3.cxx | 16 ++++++++++++++++ editeng/source/outliner/outlin2.cxx | 5 +++++ include/editeng/editeng.hxx | 1 + include/editeng/outliner.hxx | 1 + svx/source/svdraw/svdedxv.cxx | 2 ++ 7 files changed, 33 insertions(+)
New commits: commit 40fcecfce85b12b60518ef8258378a6f085023cb Author: matteocam <matteo.campane...@gmail.com> Date: Thu Aug 14 14:59:30 2014 +0200 Hard coded call to onEditOutlinerStatusEvent for chaining Change-Id: I663263170a29a290cc37b89f540f9a8daa9c9f73 diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index 2709740..9e6f25d 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -1522,6 +1522,11 @@ void EditEngine::SetStatusEventHdl( const Link& rLink ) pImpEditEngine->SetStatusEventHdl( rLink ); } +void EditEngine::SetStatusEventHdl1( const Link& rLink ) +{ + pImpEditEngine->SetStatusEventHdlChaining( rLink ); +} + Link EditEngine::GetStatusEventHdl() const { return pImpEditEngine->GetStatusEventHdl(); diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index d53e5fd..ac95eaa 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -475,6 +475,7 @@ private: // this should not happen immediately (critical section): Timer aStatusTimer; Link aStatusHdlLink; + Link aStatusHdlLinkChaining; Link aNotifyHdl; Link aImportHdl; Link aBeginMovingParagraphsHdl; @@ -839,6 +840,7 @@ public: void SetStatusEventHdl( const Link& rLink ) { aStatusHdlLink = rLink; } Link GetStatusEventHdl() const { return aStatusHdlLink; } + void SetStatusEventHdlChaining( const Link& rLink ) { aStatusHdlLinkChaining = rLink; } void SetNotifyHdl( const Link& rLink ) { aNotifyHdl = rLink; } Link GetNotifyHdl() const { return aNotifyHdl; } @@ -876,6 +878,7 @@ public: InternalEditStatus& GetStatus() { return aStatus; } void CallStatusHdl(); + void CallStatusHdlChaining(); void DelayedCallStatusHdl() { aStatusTimer.Start(); } void CallNotify( EENotify& rNotify ); diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx index 7ea5a51..8f95bce 100644 --- a/editeng/source/editeng/impedit3.cxx +++ b/editeng/source/editeng/impedit3.cxx @@ -504,9 +504,25 @@ void ImpEditEngine::FormatDoc() CallStatusHdl(); // If Modified... + //FIXME(matteocam) + CallStatusHdlChaining(); // XXX: hard coded for chaining + LeaveBlockNotifications(); } +void ImpEditEngine::CallStatusHdlChaining() +{ + if ( aStatusHdlLinkChaining.IsSet() && aStatus.GetStatusWord() ) + { + // The Status has to be reset before the Call, + // since other Flags might be set in the handler... + EditStatus aTmpStatus( aStatus ); + aStatus.Clear(); // No need for this with chaining. It does not affect it either way. + //aStatusHdlLinkChaining.Call( &aTmpStatus ); + aStatusTimer.Stop(); // If called by hand ... + } +} + bool ImpEditEngine::ImpCheckRefMapMode() { bool bChange = false; diff --git a/editeng/source/outliner/outlin2.cxx b/editeng/source/outliner/outlin2.cxx index 43ca90b..ca69fcd 100644 --- a/editeng/source/outliner/outlin2.cxx +++ b/editeng/source/outliner/outlin2.cxx @@ -139,6 +139,11 @@ Link Outliner::GetStatusEventHdl() const return pEditEngine->GetStatusEventHdl(); } +void Outliner::SetStatusEventHdl1( const Link& rLink ) +{ + pEditEngine->SetStatusEventHdl1( rLink ); +} + void Outliner::SetDefTab( sal_uInt16 nTab ) { pEditEngine->SetDefTab( nTab ); diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx index 33dd8f0..7bd1656 100644 --- a/include/editeng/editeng.hxx +++ b/include/editeng/editeng.hxx @@ -357,6 +357,7 @@ public: sal_uLong Write( SvStream& rOutput, EETextFormat ); void SetStatusEventHdl( const Link& rLink ); + void SetStatusEventHdl1( const Link& rLink ); // for chaining Link GetStatusEventHdl() const; void SetNotifyHdl( const Link& rLink ); diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx index dedc476..8889adf 100644 --- a/include/editeng/outliner.hxx +++ b/include/editeng/outliner.hxx @@ -802,6 +802,7 @@ public: void SetStatusEventHdl( const Link& rLink ); Link GetStatusEventHdl() const; + void SetStatusEventHdl1( const Link& rLink ); void Draw( OutputDevice* pOutDev, const Rectangle& rOutRect ); void Draw( OutputDevice* pOutDev, const Point& rStartPos, short nOrientation = 0 ); diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index a0bbfa1..03a00c3 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -712,6 +712,8 @@ bool SdrObjEditView::SdrBeginTextEdit( pTextEditOutlinerView->ShowCursor(); pTextEditOutliner->SetStatusEventHdl(LINK(this,SdrObjEditView,ImpOutlinerStatusEventHdl)); + // FIXME(matteocam) // For chaining + pTextEditOutliner->SetStatusEventHdl1(LINK(this,SdrObjEditView,ImpOutlinerStatusEventHdl)); #ifdef DBG_UTIL if (pItemBrowser!=NULL) pItemBrowser->SetDirty(); #endif _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits