diff options
-rw-r--r-- | include/vcl/settings.hxx | 1 | ||||
-rw-r--r-- | svx/source/sidebar/possize/PosSizePropertyPanel.cxx | 5 | ||||
-rw-r--r-- | vcl/source/app/settings.cxx | 10 | ||||
-rw-r--r-- | vcl/source/control/field.cxx | 4 |
4 files changed, 19 insertions, 1 deletions
diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx index 6adda0d66fa2..fedb39ccaa09 100644 --- a/include/vcl/settings.hxx +++ b/include/vcl/settings.hxx @@ -707,6 +707,7 @@ public: static bool GetMathLayoutRTL(); // returns true if UI language requires right-to-left Math Layout const LocaleDataWrapper& GetLocaleDataWrapper() const; const LocaleDataWrapper& GetUILocaleDataWrapper() const; + const LocaleDataWrapper& GetNeutroLocaleDataWrapper() const; const vcl::I18nHelper& GetLocaleI18nHelper() const; const vcl::I18nHelper& GetUILocaleI18nHelper() const; diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx index 24737369d2db..38d49e88ec67 100644 --- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx +++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx @@ -34,6 +34,7 @@ #include <svx/dialcontrol.hxx> #include <svx/rectenum.hxx> #include <unotools/viewoptions.hxx> +#include <unotools/localedatawrapper.hxx> #include <vcl/canvastools.hxx> #include <vcl/fieldvalues.hxx> #include <svl/intitem.hxx> @@ -800,7 +801,9 @@ void PosSizePropertyPanel::GetControlState(const sal_uInt16 nSID, boost::propert if (pControl && !pControl->get_text().isEmpty()) { - rState.put(pControl->get_buildable_name().getStr(), pControl->get_text().toUtf8().getStr()); + OUString sValue = Application::GetSettings().GetNeutroLocaleDataWrapper(). + getNum(pControl->get_value(pControl->get_unit()), pControl->get_digits(), false, false); + rState.put(pControl->get_buildable_name().getStr(), sValue.toUtf8().getStr()); } } diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index 8db54992b80f..9044867bae3d 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -238,6 +238,7 @@ struct ImplAllSettingsData LanguageTag maUILocale; std::unique_ptr<LocaleDataWrapper> mpLocaleDataWrapper; std::unique_ptr<LocaleDataWrapper> mpUILocaleDataWrapper; + std::unique_ptr<LocaleDataWrapper> mpNeutroLocaleDataWrapper; std::unique_ptr<vcl::I18nHelper> mpI18nHelper; std::unique_ptr<vcl::I18nHelper> mpUII18nHelper; SvtSysLocale maSysLocale; @@ -2755,6 +2756,7 @@ ImplAllSettingsData::~ImplAllSettingsData() { mpLocaleDataWrapper.reset(); mpUILocaleDataWrapper.reset(); + mpNeutroLocaleDataWrapper.reset(); mpI18nHelper.reset(); mpUII18nHelper.reset(); } @@ -2991,6 +2993,14 @@ const LocaleDataWrapper& AllSettings::GetUILocaleDataWrapper() const return *mxData->mpUILocaleDataWrapper; } +const LocaleDataWrapper& AllSettings::GetNeutroLocaleDataWrapper() const +{ + if ( !mxData->mpNeutroLocaleDataWrapper ) + const_cast<AllSettings*>(this)->mxData->mpNeutroLocaleDataWrapper.reset( new LocaleDataWrapper( + comphelper::getProcessComponentContext(), LanguageTag("en_US") ) ); + return *mxData->mpNeutroLocaleDataWrapper; +} + const vcl::I18nHelper& AllSettings::GetLocaleI18nHelper() const { if ( !mxData->mpI18nHelper ) { diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx index dc4e98c440f0..e6a4e96598ed 100644 --- a/vcl/source/control/field.cxx +++ b/vcl/source/control/field.cxx @@ -1694,6 +1694,10 @@ boost::property_tree::ptree MetricField::DumpAsPropertyTree() aTree.put("min", GetMin()); aTree.put("max", GetMax()); aTree.put("unit", FieldUnitToString(GetUnit())); + OUString sValue = Application::GetSettings().GetNeutroLocaleDataWrapper(). + getNum(GetValue(), GetDecimalDigits(), false, false); + aTree.put("value", sValue.toUtf8().getStr()); + return aTree; } |