From 2553c5b95d4596fc1ef679a42073d5bc62737914 Mon Sep 17 00:00:00 2001 From: Jochen Nitschke Date: Fri, 25 Mar 2016 19:56:14 +0100 Subject: tdf#84938 replace #defined constants with enum class replace if constructs with switch remove temp variables tried to squeeze the enum in one of the 3 classes but it doesn't feel right anywhere. ScHeaderFooterContentObj doesn't use it, except for initialzing ScHeaderFooterTextObj. ScHeaderFooterTextData holds it but nothing more. ScHeaderFooterTextObj uses it but always has to get it via ScHeaderFooterTextData.GetPart() Change-Id: I838ebff2e116e24a1c9359d6652bf5b1d30da48a Reviewed-on: https://gerrit.libreoffice.org/23352 Tested-by: Jenkins Reviewed-by: Noel Grandin --- sc/inc/textuno.hxx | 12 ++++---- sc/source/ui/unoobj/fielduno.cxx | 20 ++++++++----- 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 mpTextObj; rtl::Reference 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 const & rContent, sal_uInt16 nP, const EditTextObject* pTextObj); + rtl::Reference 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 GetContentObj() const { return rContentObj; } const EditTextObject* GetTextObject() const { return mpTextObj.get(); } @@ -160,7 +158,7 @@ private: public: ScHeaderFooterTextObj( - rtl::Reference const & rContent, sal_uInt16 nP, const EditTextObject* pTextObj); + rtl::Reference 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 ScHeaderFieldsObj::GetObjectByIndex_Impl(sal_In uno::Reference xTextRange; rtl::Reference rContentObj = mrData.GetContentObj(); uno::Reference 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 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 const & rContent, sal_uInt16 nP, const EditTextObject* pTextObj) : + rtl::Reference 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 const & rContent, sal_uInt16 nP, const EditTextObject* pTextObj) : + rtl::Reference 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 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 xTextRange; - switch (aTextData.GetPart()) + switch ( aTextData.GetPart() ) { - case SC_HDFT_LEFT: - { - uno::Reference xTemp( - aTextData.GetContentObj()->getLeftText(), uno::UNO_QUERY); - xTextRange = xTemp; - } + case ScHeaderFooterPart::LEFT: + xTextRange = uno::Reference( + aTextData.GetContentObj()->getLeftText(), uno::UNO_QUERY); break; - case SC_HDFT_CENTER: - { - uno::Reference xTemp( - aTextData.GetContentObj()->getCenterText(), uno::UNO_QUERY); - xTextRange = xTemp; - } + case ScHeaderFooterPart::CENTER: + xTextRange = uno::Reference( + aTextData.GetContentObj()->getCenterText(), uno::UNO_QUERY); break; - case SC_HDFT_RIGHT: - { - uno::Reference xTemp( - aTextData.GetContentObj()->getRightText(), uno::UNO_QUERY); - xTextRange = xTemp; - } + case ScHeaderFooterPart::RIGHT: + xTextRange = uno::Reference( + aTextData.GetContentObj()->getRightText(), uno::UNO_QUERY); break; } -- cgit v1.2.3