summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/vcl/settings.hxx1
-rw-r--r--svx/source/sidebar/possize/PosSizePropertyPanel.cxx5
-rw-r--r--vcl/source/app/settings.cxx10
-rw-r--r--vcl/source/control/field.cxx4
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;
}