tdf#99938 : Moving Average : By default trim input range...

to actual data content inside the input range via a new
checkbox in the dialog.

Change-Id: I4ac5ec5809e772f75f303c3dcfcc6e6ef8693eb1
Reviewed-on: https://gerrit.libreoffice.org/71824
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
diff --git a/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx b/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx
index ad7a1d9..4f4d596 100644
--- a/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/MovingAverageDialog.cxx
@@ -23,6 +23,7 @@ ScMovingAverageDialog::ScMovingAverageDialog(
            pSfxBindings, pChildWindow, pParent, pViewData,
            "modules/scalc/ui/movingaveragedialog.ui",
            "MovingAverageDialog")
    , mxTrimRangeCheck(m_xBuilder->weld_check_button("trimrange-check"))
    , mxIntervalSpin(m_xBuilder->weld_spin_button("interval-spin"))
{
}
@@ -47,6 +48,9 @@ ScRange ScMovingAverageDialog::ApplyOutput(ScDocShell* pDocShell)
            formula::FormulaGrammar::mergeToGrammar( formula::FormulaGrammar::GRAM_ENGLISH, mAddressDetails.eConv));
    FormulaTemplate aTemplate(mDocument);

    if (mxTrimRangeCheck->get_active())
        mDocument->GetDataAreaSubrange(mInputRange);

    std::unique_ptr<DataRangeIterator> pIterator;
    if (mGroupedBy == BY_COLUMN)
        pIterator.reset(new DataRangeByColumnIterator(mInputRange));
diff --git a/sc/source/ui/inc/MovingAverageDialog.hxx b/sc/source/ui/inc/MovingAverageDialog.hxx
index 8601a6c..5b373e5 100644
--- a/sc/source/ui/inc/MovingAverageDialog.hxx
+++ b/sc/source/ui/inc/MovingAverageDialog.hxx
@@ -19,6 +19,7 @@
class ScMovingAverageDialog : public ScStatisticsInputOutputDialog
{
private:
    std::unique_ptr<weld::CheckButton> mxTrimRangeCheck;
    std::unique_ptr<weld::SpinButton> mxIntervalSpin;

public:
diff --git a/sc/uiconfig/scalc/ui/movingaveragedialog.ui b/sc/uiconfig/scalc/ui/movingaveragedialog.ui
index 935cb2a..625ca23 100644
--- a/sc/uiconfig/scalc/ui/movingaveragedialog.ui
+++ b/sc/uiconfig/scalc/ui/movingaveragedialog.ui
@@ -182,6 +182,24 @@
                        <property name="top_attach">1</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkCheckButton" id="trimrange-check">
                        <property name="label" translatable="yes" context="movingaveragedialog|trimrange-check">Trim input range to actual data content</property>
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">False</property>
                        <property name="active">True</property>
                        <property name="draw_indicator">True</property>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">2</property>
                        <property name="width">2</property>
                      </packing>
                    </child>
                    <child>
                      <placeholder/>
                    </child>
                  </object>
                </child>
              </object>