[Libreoffice-commits] core.git: Branch 'feature/gsoc14-draw-chained-text-boxes' - include/svx svx/source
matteocam
matteo.campanelli at gmail.com
Wed Jul 8 08:31:30 PDT 2015
include/svx/textchainflow.hxx | 16 ++++++++++++----
svx/source/svdraw/svdedxv.cxx | 1 -
svx/source/svdraw/textchainflow.cxx | 22 ++++++++++++++--------
3 files changed, 26 insertions(+), 13 deletions(-)
New commits:
commit d59384c316e6a161ae86edcb8bfaa3b837ff33b8
Author: matteocam <matteo.campanelli at gmail.com>
Date: Wed Jul 8 11:30:31 2015 -0400
Change Cursor Info only in EditingTextChainFlow
Change-Id: Iaf21679f416607c8c59d1c88484a306727abd7cc
diff --git a/include/svx/textchainflow.hxx b/include/svx/textchainflow.hxx
index 70ff6e4..ade3404 100644
--- a/include/svx/textchainflow.hxx
+++ b/include/svx/textchainflow.hxx
@@ -20,6 +20,9 @@
#ifndef INCLUDED_SVX_TEXTCHAINFLOW_HXX
#define INCLUDED_SVX_TEXTCHAINFLOW_HXX
+
+#include <svx/textchain.hxx>
+
class SdrTextObj;
class SdrOutliner;
class NonOverflowingText;
@@ -59,10 +62,11 @@ class TextChainFlow {
// -- Protected Members --
protected:
+ CursorChainingEvent maCursorEvent;
void impCheckForFlowEvents(SdrOutliner *, SdrOutliner *);
- TextChain *GetTextChain();
+ TextChain *GetTextChain() const;
virtual void impLeaveOnlyNonOverflowingText(SdrOutliner *);
virtual void impMoveChainedTextToNextLink(SdrOutliner *);
@@ -77,7 +81,7 @@ class TextChainFlow {
// -- Private Members --
private:
- void impUpdateCursorEvent(SdrOutliner *, bool);
+ void impUpdateCursorInfo(SdrOutliner *, bool);
SdrTextObj *mpTargetLink;
SdrTextObj *mpNextLink;
@@ -92,6 +96,7 @@ class TextChainFlow {
OFlowChainedText *mpOverflChText;
UFlowChainedText *mpUnderflChText;
+ // XXX: It would be nice to get rid of this
bool mbOFisUFinduced;
};
@@ -99,19 +104,22 @@ class TextChainFlow {
// NOTE: EditingTextChainFlow might be strongly coupled with behavior in SdrTextObj::onChainingEvent
class EditingTextChainFlow : public TextChainFlow
{
- public:
+public:
EditingTextChainFlow(SdrTextObj *);
virtual void CheckForFlowEvents(SdrOutliner *) SAL_OVERRIDE;
//virtual void ExecuteOverflow(SdrOutliner *, SdrOutliner *) SAL_OVERRIDE;
- protected:
+protected:
virtual void impLeaveOnlyNonOverflowingText(SdrOutliner *) SAL_OVERRIDE;
virtual void impSetTextForEditingOutliner(OutlinerParaObject *);
virtual void impSetFlowOutlinerParams(SdrOutliner *, SdrOutliner *) SAL_OVERRIDE;
+private:
+ void impBroadcasCursorInfo() const;
+
};
#endif // INCLUDED_SVX_TEXTCHAINFLOW_HXX
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 3b5f021..2b165c7 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -544,7 +544,6 @@ void SdrObjEditView::ImpMoveCursorAfterChainingEvent()
case CursorChainingEvent::TO_NEXT_LINK:
SdrEndTextEdit();
SdrBeginTextEdit(pNextLink);
-
//SdrEndTextEdit(true);
//SdrBeginTextEdit(pNextLink, nullptr, nullptr, false, nullptr, nullptr, true, true);
break;
diff --git a/svx/source/svdraw/textchainflow.cxx b/svx/source/svdraw/textchainflow.cxx
index 4b80ea4..2700bf3 100644
--- a/svx/source/svdraw/textchainflow.cxx
+++ b/svx/source/svdraw/textchainflow.cxx
@@ -18,7 +18,6 @@
*/
-#include <svx/textchain.hxx>
#include <svx/svdotext.hxx>
#include <svx/svdoutl.hxx>
#include <editeng/outlobj.hxx>
@@ -38,6 +37,8 @@ TextChainFlow::TextChainFlow(SdrTextObj *pChainTarget)
mpOverflChText = NULL;
mpUnderflChText = NULL;
+
+ maCursorEvent = CursorChainingEvent::UNCHANGED;
}
@@ -78,7 +79,7 @@ void TextChainFlow::impCheckForFlowEvents(SdrOutliner *pFlowOutl, SdrOutliner *p
bOverflow = bIsPageOverflow && mpNextLink;
bUnderflow = !bIsPageOverflow && mpNextLink && mpNextLink->HasText();
- impUpdateCursorEvent(pFlowOutl, bOverflow);
+ impUpdateCursorInfo(pFlowOutl, bOverflow);
if (pParamOutl != NULL)
{
@@ -96,7 +97,7 @@ void TextChainFlow::impCheckForFlowEvents(SdrOutliner *pFlowOutl, SdrOutliner *p
}
-void TextChainFlow::impUpdateCursorEvent(SdrOutliner *, bool bIsOverflow)
+void TextChainFlow::impUpdateCursorInfo(SdrOutliner *, bool bIsOverflow)
{
// XXX: Current implementation might create problems with UF-
// In fact UF causes a
@@ -105,12 +106,10 @@ void TextChainFlow::impUpdateCursorEvent(SdrOutliner *, bool bIsOverflow)
if (bIsOverflow && !mbOFisUFinduced) {
bool bCursorOut = true; // XXX: Should have real check
if (bCursorOut) {
- GetTextChain()->SetCursorEvent(GetLinkTarget(),
- CursorChainingEvent::TO_NEXT_LINK);
+ maCursorEvent = CursorChainingEvent::TO_NEXT_LINK;
}
} else {
- GetTextChain()->SetCursorEvent(GetLinkTarget(),
- CursorChainingEvent::UNCHANGED);
+ maCursorEvent = CursorChainingEvent::UNCHANGED;
}
}
@@ -210,7 +209,7 @@ OutlinerParaObject *TextChainFlow::impGetMergedUnderflowParaObject(SdrOutliner *
return mpUnderflChText->CreateMergedUnderflowParaObject(pOutliner, mpNextLink->GetOutlinerParaObject());
}
-TextChain *TextChainFlow::GetTextChain()
+TextChain *TextChainFlow::GetTextChain() const
{
return mpTextChain;
}
@@ -241,6 +240,8 @@ void EditingTextChainFlow::CheckForFlowEvents(SdrOutliner *pFlowOutl)
else
impCheckForFlowEvents(pFlowOutl, GetLinkTarget()->pEdtOutl);
+ // Broadcast events for cursor handling
+ impBroadcasCursorInfo();
}
/*
@@ -286,6 +287,11 @@ void EditingTextChainFlow::impSetFlowOutlinerParams(SdrOutliner *pFlowOutl, SdrO
//pFlowOutl->SetEditTextObjectPool(pParamOutl->GetEditTextObjectPool());
}
+void EditingTextChainFlow::impBroadcasCursorInfo() const
+{
+ GetTextChain()->SetCursorEvent(GetLinkTarget(), maCursorEvent);
+}
+
/*
*
* Some notes on how to set style sheets:
More information about the Libreoffice-commits
mailing list