diff options
Diffstat (limited to 'sc')
-rw-r--r-- | sc/inc/textuno.hxx | 12 | ||||
-rw-r--r-- | sc/source/ui/unoobj/fielduno.cxx | 20 | ||||
-rw-r--r-- | sc/source/ui/unoobj/textuno.cxx | 62 |
3 files changed, 49 insertions, 45 deletions
diff --git a/sc/inc/textuno.hxx b/sc/inc/textuno.hxx index bb32420208fb..6447ee0770f5 100644 --- a/sc/inc/textuno.hxx +++ b/sc/inc/textuno.hxx @@ -49,9 +49,7 @@ class ScHeaderFooterTextObj; struct ScHeaderFieldData; -#define SC_HDFT_LEFT 0 -#define SC_HDFT_CENTER 1 -#define SC_HDFT_RIGHT 2 +enum class ScHeaderFooterPart{ LEFT, CENTER, RIGHT }; // ScHeaderFooterContentObj is a dumb container which must be re-written into // the page template using setPropertyValue @@ -113,7 +111,7 @@ class ScHeaderFooterTextData private: std::unique_ptr<EditTextObject> mpTextObj; rtl::Reference<ScHeaderFooterContentObj> rContentObj; - sal_uInt16 nPart; + ScHeaderFooterPart nPart; ScEditEngineDefaulter* pEditEngine; SvxEditEngineForwarder* pForwarder; bool bDataValid; @@ -122,7 +120,7 @@ public: ScHeaderFooterTextData(const ScHeaderFooterTextData&) = delete; const ScHeaderFooterTextData& operator=(const ScHeaderFooterTextData&) = delete; ScHeaderFooterTextData( - rtl::Reference<ScHeaderFooterContentObj> const & rContent, sal_uInt16 nP, const EditTextObject* pTextObj); + rtl::Reference<ScHeaderFooterContentObj> const & rContent, ScHeaderFooterPart nP, const EditTextObject* pTextObj); ~ScHeaderFooterTextData(); // helper functions @@ -131,7 +129,7 @@ public: void UpdateData(EditEngine& rEditEngine); ScEditEngineDefaulter* GetEditEngine() { GetTextForwarder(); return pEditEngine; } - sal_uInt16 GetPart() const { return nPart; } + ScHeaderFooterPart GetPart() const { return nPart; } rtl::Reference<ScHeaderFooterContentObj> GetContentObj() const { return rContentObj; } const EditTextObject* GetTextObject() const { return mpTextObj.get(); } @@ -160,7 +158,7 @@ private: public: ScHeaderFooterTextObj( - rtl::Reference<ScHeaderFooterContentObj> const & rContent, sal_uInt16 nP, const EditTextObject* pTextObj); + rtl::Reference<ScHeaderFooterContentObj> const & rContent, ScHeaderFooterPart nP, const EditTextObject* pTextObj); virtual ~ScHeaderFooterTextObj(); const EditTextObject* GetTextObject() const; diff --git a/sc/source/ui/unoobj/fielduno.cxx b/sc/source/ui/unoobj/fielduno.cxx index 8ec23e93a57e..5f64bfd3f584 100644 --- a/sc/source/ui/unoobj/fielduno.cxx +++ b/sc/source/ui/unoobj/fielduno.cxx @@ -481,13 +481,19 @@ uno::Reference<text::XTextField> ScHeaderFieldsObj::GetObjectByIndex_Impl(sal_In uno::Reference<text::XTextRange> xTextRange; rtl::Reference<ScHeaderFooterContentObj> rContentObj = mrData.GetContentObj(); uno::Reference<text::XText> xText; - sal_uInt16 nPart = mrData.GetPart(); - if (nPart == SC_HDFT_LEFT) - xText = rContentObj->getLeftText(); - else if (nPart == SC_HDFT_CENTER) - xText = rContentObj->getCenterText(); - else - xText = rContentObj->getRightText(); + + switch ( mrData.GetPart() ) + { + case ScHeaderFooterPart::LEFT: + xText = rContentObj->getLeftText(); + break; + case ScHeaderFooterPart::CENTER: + xText = rContentObj->getCenterText(); + break; + case ScHeaderFooterPart::RIGHT: + xText = rContentObj->getRightText(); + break; + } uno::Reference<text::XTextRange> xTemp(xText, uno::UNO_QUERY); xTextRange = xTemp; diff --git a/sc/source/ui/unoobj/textuno.cxx b/sc/source/ui/unoobj/textuno.cxx index 053e41b3f081..53b23feed53f 100644 --- a/sc/source/ui/unoobj/textuno.cxx +++ b/sc/source/ui/unoobj/textuno.cxx @@ -93,9 +93,9 @@ SC_SIMPLE_SERVICE_INFO( ScHeaderFooterTextObj, "ScHeaderFooterTextObj", "stardiv ScHeaderFooterContentObj::ScHeaderFooterContentObj( const EditTextObject* pLeft, const EditTextObject* pCenter, const EditTextObject* pRight ) : - mxLeftText(new ScHeaderFooterTextObj(this, SC_HDFT_LEFT, pLeft)), - mxCenterText(new ScHeaderFooterTextObj(this, SC_HDFT_CENTER, pCenter)), - mxRightText(new ScHeaderFooterTextObj(this, SC_HDFT_RIGHT, pRight)) + mxLeftText(new ScHeaderFooterTextObj(this, ScHeaderFooterPart::LEFT, pLeft)), + mxCenterText(new ScHeaderFooterTextObj(this, ScHeaderFooterPart::CENTER, pCenter)), + mxRightText(new ScHeaderFooterTextObj(this, ScHeaderFooterPart::RIGHT, pRight)) { } @@ -184,7 +184,7 @@ void ScHeaderFooterContentObj::dispose() } ScHeaderFooterTextData::ScHeaderFooterTextData( - rtl::Reference<ScHeaderFooterContentObj> const & rContent, sal_uInt16 nP, const EditTextObject* pTextObj) : + rtl::Reference<ScHeaderFooterContentObj> const & rContent, ScHeaderFooterPart nP, const EditTextObject* pTextObj) : mpTextObj(pTextObj ? pTextObj->Clone() : nullptr), rContentObj( rContent ), nPart( nP ), @@ -259,7 +259,7 @@ void ScHeaderFooterTextData::UpdateData(EditEngine& rEditEngine) } ScHeaderFooterTextObj::ScHeaderFooterTextObj( - rtl::Reference<ScHeaderFooterContentObj> const & rContent, sal_uInt16 nP, const EditTextObject* pTextObj) : + rtl::Reference<ScHeaderFooterContentObj> const & rContent, ScHeaderFooterPart nP, const EditTextObject* pTextObj) : aTextData(rContent, nP, pTextObj) { // ScHeaderFooterTextData acquires rContent @@ -327,15 +327,24 @@ OUString SAL_CALL ScHeaderFooterTextObj::getString() throw(uno::RuntimeException OUString aRet; const EditTextObject* pData; - sal_uInt16 nPart = aTextData.GetPart(); rtl::Reference<ScHeaderFooterContentObj> rContentObj = aTextData.GetContentObj(); - if (nPart == SC_HDFT_LEFT) - pData = rContentObj->GetLeftEditObject(); - else if (nPart == SC_HDFT_CENTER) - pData = rContentObj->GetCenterEditObject(); - else - pData = rContentObj->GetRightEditObject(); + switch ( aTextData.GetPart() ) + { + case ScHeaderFooterPart::LEFT: + pData = rContentObj->GetLeftEditObject(); + break; + case ScHeaderFooterPart::CENTER: + pData = rContentObj->GetCenterEditObject(); + break; + default: //needed for compiler warning: possible uninitialized pointer + assert(!"unexpected enum value of ScHeaderFooterPart"); + // fall through + case ScHeaderFooterPart::RIGHT: + pData = rContentObj->GetRightEditObject(); + break; + } + if (pData) { // for pure text, no font info is needed in pool defaults @@ -422,28 +431,19 @@ void SAL_CALL ScHeaderFooterTextObj::insertTextContent( aSelection.nEndPos = aSelection.nStartPos + 1; uno::Reference<text::XTextRange> xTextRange; - switch (aTextData.GetPart()) + switch ( aTextData.GetPart() ) { - case SC_HDFT_LEFT: - { - uno::Reference<text::XTextRange> xTemp( - aTextData.GetContentObj()->getLeftText(), uno::UNO_QUERY); - xTextRange = xTemp; - } + case ScHeaderFooterPart::LEFT: + xTextRange = uno::Reference<text::XTextRange>( + aTextData.GetContentObj()->getLeftText(), uno::UNO_QUERY); break; - case SC_HDFT_CENTER: - { - uno::Reference<text::XTextRange> xTemp( - aTextData.GetContentObj()->getCenterText(), uno::UNO_QUERY); - xTextRange = xTemp; - } + case ScHeaderFooterPart::CENTER: + xTextRange = uno::Reference<text::XTextRange>( + aTextData.GetContentObj()->getCenterText(), uno::UNO_QUERY); break; - case SC_HDFT_RIGHT: - { - uno::Reference<text::XTextRange> xTemp( - aTextData.GetContentObj()->getRightText(), uno::UNO_QUERY); - xTextRange = xTemp; - } + case ScHeaderFooterPart::RIGHT: + xTextRange = uno::Reference<text::XTextRange>( + aTextData.GetContentObj()->getRightText(), uno::UNO_QUERY); break; } |