tdf#155526 Add Period to trend line equation

Insert Period value earlier to have it ready for representation
Allow Moving average equation in dialog UI

Change-Id: I1d20572c39462e60b60ab7eec1f174a3cf934d4a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153094
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit dc03f59374d4fc74dd44ddedc903bb9c00a74bb7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/153755
Reviewed-by: Laurent Balland <laurent.balland@mailo.fr>
diff --git a/chart2/source/controller/dialogs/ObjectNameProvider.cxx b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
index c60ff1c..ab00276 100644
--- a/chart2/source/controller/dialogs/ObjectNameProvider.cxx
+++ b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
@@ -601,18 +601,9 @@ OUString ObjectNameProvider::getHelpText( std::u16string_view rObjectCID, const 
                        xCalculator->setXYNames ( aXName, aYName );
                        RegressionCurveHelper::initializeCurveCalculator( xCalculator, xSeries, xChartModel );

                        // change text for Moving Average
                        OUString aWildcard( "%PERIOD" );
                        sal_Int32 nIndex = xCalculator->getRepresentation().indexOf( aWildcard );
                        if( nIndex != -1 )
                        {  // replace period
                                aRet = xCalculator->getRepresentation();
                                aRet = aRet.replaceAt( nIndex, aWildcard.getLength(), OUString::number(aPeriod) );
                        }

                        // replace formula
                        aWildcard = "%FORMULA";
                        nIndex = aRet.indexOf( aWildcard );
                        OUString aWildcard = "%FORMULA";
                        sal_Int32 nIndex = aRet.indexOf( aWildcard );
                        if( nIndex != -1 )
                        {
                            OUString aFormula ( xCalculator->getRepresentation() );
diff --git a/chart2/source/controller/dialogs/res_Trendline.cxx b/chart2/source/controller/dialogs/res_Trendline.cxx
index 647c071..58ef649 100644
--- a/chart2/source/controller/dialogs/res_Trendline.cxx
+++ b/chart2/source/controller/dialogs/res_Trendline.cxx
@@ -372,10 +372,8 @@ void TrendlineResources::UpdateControlStates()
    m_xFmtFld_InterceptValue->set_sensitive( bInterceptAvailable );
    if( bMovingAverage )
    {
        m_xCB_ShowEquation->set_state(TRISTATE_FALSE);
        m_xCB_ShowCorrelationCoeff->set_state(TRISTATE_FALSE);
    }
    m_xCB_ShowEquation->set_sensitive( !bMovingAverage );
    m_xCB_ShowCorrelationCoeff->set_sensitive( !bMovingAverage );
    m_xCB_RegressionMovingType->set_sensitive(bMovingAverage);
    m_xNF_Period->set_sensitive(bMovingAverage);
@@ -428,8 +426,6 @@ void TrendlineResources::SetNbPoints( sal_Int32 nNbPoints )

IMPL_LINK_NOARG(TrendlineResources, ShowEquation, weld::Toggleable&, void)
{
    m_xEE_XName->set_sensitive(m_xCB_ShowEquation->get_active());
    m_xEE_YName->set_sensitive(m_xCB_ShowEquation->get_active());
    UpdateControlStates();
}

diff --git a/chart2/source/tools/MovingAverageRegressionCurveCalculator.cxx b/chart2/source/tools/MovingAverageRegressionCurveCalculator.cxx
index 6726d9d..f71262f 100644
--- a/chart2/source/tools/MovingAverageRegressionCurveCalculator.cxx
+++ b/chart2/source/tools/MovingAverageRegressionCurveCalculator.cxx
@@ -157,7 +157,15 @@ OUString MovingAverageRegressionCurveCalculator::ImplGetRepresentation(
    const uno::Reference< util::XNumberFormatter >& /*xNumFormatter*/,
    sal_Int32 /*nNumberFormatKey*/, sal_Int32* /*pFormulaLength = nullptr */ ) const
{
    return SchResId( STR_OBJECT_MOVING_AVERAGE_WITH_PARAMETERS );
    OUString aRet = SchResId( STR_OBJECT_MOVING_AVERAGE_WITH_PARAMETERS );
    // change text for Moving Average
    OUString aWildcard( "%PERIOD" );
    sal_Int32 nIndex = aRet.indexOf( aWildcard );
    if( nIndex != -1 )
    {  // replace period
        aRet = aRet.replaceAt( nIndex, aWildcard.getLength(), OUString::number(mPeriod) );
    }
    return aRet;
}

} //  namespace chart