editeng/source/outliner/overflowingtxt.cxx | 22 +++++++++++++++++++++- include/editeng/overflowingtxt.hxx | 12 ++++++++---- 2 files changed, 29 insertions(+), 5 deletions(-)
New commits: commit 6c36f1508baf0089f260e4ad7ddff57532bb125f Author: matteocam <matteo.campane...@gmail.com> Date: Thu Jul 9 14:52:01 2015 -0400 Clone EditTextObjects before using them for *OverflowingText Change-Id: I0624b90967d5599534b3b159cb3e0838778ec3d9 diff --git a/editeng/source/outliner/overflowingtxt.cxx b/editeng/source/outliner/overflowingtxt.cxx index 868daa6..339a335 100644 --- a/editeng/source/outliner/overflowingtxt.cxx +++ b/editeng/source/outliner/overflowingtxt.cxx @@ -25,6 +25,9 @@ #include <editeng/outlobj.hxx> #include <editeng/editobj.hxx> + +// Helper function for *OverflowingText classes + ESelection getLastPositionSel(const EditTextObject *pTObj) { sal_Int32 nLastPara = pTObj->GetParagraphCount()-1; @@ -37,8 +40,12 @@ ESelection getLastPositionSel(const EditTextObject *pTObj) return aEndPos; } -OverflowingText::OverflowingText(EditTextObject *pTObj) : mpContentTextObj(pTObj) +// class OverflowingText + +OverflowingText::OverflowingText(EditTextObject *pTObj) + : mpContentTextObj(pTObj->Clone()) { + // XXX: may have to delete pTObj } ESelection OverflowingText::GetInsertionPointSel() const @@ -46,6 +53,15 @@ ESelection OverflowingText::GetInsertionPointSel() const return getLastPositionSel(mpContentTextObj); } +// class NonOverflowingText + +NonOverflowingText::NonOverflowingText(const EditTextObject *pTObj) + : mpContentTextObj(pTObj->Clone()) +{ + // XXX: may have to delete pTObj +} + + OutlinerParaObject *NonOverflowingText::ToParaObject(Outliner *pOutliner) const { OutlinerParaObject *pPObj = new OutlinerParaObject(*mpContentTextObj); @@ -87,6 +103,8 @@ OutlinerParaObject *OverflowingText::GetJuxtaposedParaObject(Outliner *pOutl, Ou return pPObj; } +// class OFlowChainedText + OFlowChainedText::OFlowChainedText(Outliner *pOutl) { mpOverflowingTxt = pOutl->GetOverflowingText(); @@ -120,6 +138,8 @@ OutlinerParaObject *OFlowChainedText::CreateNonOverflowingParaObject(Outliner *p return mpNonOverflowingTxt->ToParaObject(pOutliner); } +// classes UFlowChainedText + UFlowChainedText::UFlowChainedText(Outliner *pOutl) { mpUnderflowPObj = pOutl->CreateParaObject(); diff --git a/include/editeng/overflowingtxt.hxx b/include/editeng/overflowingtxt.hxx index 4e97fcc..72d2355 100644 --- a/include/editeng/overflowingtxt.hxx +++ b/include/editeng/overflowingtxt.hxx @@ -31,6 +31,11 @@ class OutlinerParaObject; class EditTextObject; class Outliner; +/* + * The classes OverflowingText and NonOverflowingText handle the + * actual preparation of the OutlinerParaObjects to be used in destination + * and source box respectively. +*/ class OverflowingText { @@ -58,9 +63,7 @@ public: private: // Constructor - NonOverflowingText(const EditTextObject *pTObj) - : mpContentTextObj(pTObj) - { } + NonOverflowingText(const EditTextObject *pTObj); friend class Outliner; const EditTextObject *mpContentTextObj; @@ -69,7 +72,8 @@ private: /* * classes OFlowChainedText and UFlowChainedText: - * contain and handle the state of a broken up text _after_ a flow event. + * contain and handle the state of a broken up text _after_ a flow event + * (respectively after Overflow and Underflow). * */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits