[Libreoffice-commits] core.git: Branch 'feature/gsoc14-draw-chained-text-boxes' - editeng/source include/editeng svx/source
matteocam
matteo.campanelli at gmail.com
Thu Aug 14 06:02:09 PDT 2014
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.campanelli at 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
More information about the Libreoffice-commits
mailing list