diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-01-16 17:16:27 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-01-17 12:58:53 +0100 |
commit | edf8e2b6630ca9cf7117d9c7a25ef9d7231c5a9b (patch) | |
tree | c39443c803df2bf7dbd2c0b0522dfe2e1fa255f6 /svtools | |
parent | 3a655975e5ea43417885513d0752da3627dd25ed (diff) |
Resolves: tdf#122744 pt/% values not limited to historic limits
Change-Id: I439bf27b3f57838d9d0ea19605fd1b684ad4f777
Reviewed-on: https://gerrit.libreoffice.org/66474
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/control/ctrlbox.cxx | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx index dea1fd973289..d11e5c6b15c1 100644 --- a/svtools/source/control/ctrlbox.cxx +++ b/svtools/source/control/ctrlbox.cxx @@ -1401,6 +1401,8 @@ sal_Int64 FontSizeBox::GetValueFromStringUnit(const OUString& rStr, FieldUnit eO SvtFontSizeBox::SvtFontSizeBox(std::unique_ptr<weld::ComboBox> p) : pFontList(nullptr) , nSavedValue(0) + , nMin(20) + , nMax(9999) , eUnit(FieldUnit::POINT) , nDecimalDigits(1) , nRelMin(0) @@ -1616,6 +1618,7 @@ void SvtFontSizeBox::SetRelative( bool bNewRelative ) if (bPtRelative) { SetDecimalDigits( 1 ); + SetRange(nPtRelMin, nPtRelMax); SetUnit(FieldUnit::POINT); short i = nPtRelMin, n = 0; @@ -1629,6 +1632,7 @@ void SvtFontSizeBox::SetRelative( bool bNewRelative ) else { SetDecimalDigits(0); + SetRange(nRelMin, nRelMax); SetUnit(FieldUnit::PERCENT); sal_uInt16 i = nRelMin; @@ -1645,6 +1649,7 @@ void SvtFontSizeBox::SetRelative( bool bNewRelative ) m_xComboBox->clear(); bRelative = bPtRelative = false; SetDecimalDigits(1); + SetRange(20, 9999); SetUnit(FieldUnit::POINT); if ( pFontList) Fill( &aFontMetric, pFontList ); @@ -1685,6 +1690,10 @@ OUString SvtFontSizeBox::format_number(int nValue) const void SvtFontSizeBox::SetValue(int nNewValue, FieldUnit eInUnit) { auto nTempValue = MetricField::ConvertValue(nNewValue, 0, GetDecimalDigits(), eInUnit, GetUnit()); + if (nTempValue < nMin) + nTempValue = nMin; + else if (nTempValue > nMax) + nTempValue = nMax; if (!bRelative) { FontSizeNames aFontSizeNames(Application::GetSettings().GetUILanguageTag().getLanguageType()); @@ -1725,6 +1734,13 @@ int SvtFontSizeBox::get_value() const const LocaleDataWrapper& rLocaleData = aSysLocale.GetLocaleData(); double fResult(0.0); MetricFormatter::TextToValue(aStr, fResult, 0, GetDecimalDigits(), rLocaleData, GetUnit()); + if (!aStr.isEmpty()) + { + if (fResult < nMin) + fResult = nMin; + else if (fResult > nMax) + fResult = nMax; + } return fResult; } |