tdf#134280 set legal range for Epsilon level

Change-Id: If544da13913ab6ce84e934e351e4e2d78b6e1466
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97051
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sc/source/ui/inc/solveroptions.hxx b/sc/source/ui/inc/solveroptions.hxx
index d58244e..48c58a6 100644
--- a/sc/source/ui/inc/solveroptions.hxx
+++ b/sc/source/ui/inc/solveroptions.hxx
@@ -103,6 +103,7 @@ public:

    void        SetOptionName( const OUString& rName );
    void        SetValue( sal_Int32 nValue );
    void        SetMax( sal_Int32 nValue );
    sal_Int32   GetValue() const;
};

diff --git a/sc/source/ui/miscdlgs/solveroptions.cxx b/sc/source/ui/miscdlgs/solveroptions.cxx
index e22647b..0a70023 100644
--- a/sc/source/ui/miscdlgs/solveroptions.cxx
+++ b/sc/source/ui/miscdlgs/solveroptions.cxx
@@ -270,6 +270,8 @@ void ScSolverOptionsDialog::EditOption()
    {
        m_xIntDialog = std::make_shared<ScSolverIntegerDialog>(m_xDialog.get());
        m_xIntDialog->SetOptionName( pStringItem->GetText() );
        if (maProperties[nEntry].Name == "EpsilonLevel")
            m_xIntDialog->SetMax(3);
        m_xIntDialog->SetValue( pStringItem->GetIntValue() );
        weld::DialogController::runAsync(m_xIntDialog, [nEntry, pStringItem, this](sal_Int32 nResult){
            if (nResult == RET_OK)
@@ -349,6 +351,11 @@ void ScSolverIntegerDialog::SetValue( sal_Int32 nValue )
    m_xNfValue->set_value( nValue );
}

void ScSolverIntegerDialog::SetMax( sal_Int32 nMax )
{
    m_xNfValue->set_range(0, nMax);
}

sal_Int32 ScSolverIntegerDialog::GetValue() const
{
    return m_xNfValue->get_value();