summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/vcl/settings.hxx1
-rw-r--r--svx/source/sidebar/possize/PosSizePropertyPanel.cxx17
-rw-r--r--vcl/source/app/settings.cxx10
-rw-r--r--vcl/source/control/field.cxx4
4 files changed, 25 insertions, 7 deletions
diff --git a/include/vcl/settings.hxx b/include/vcl/settings.hxx
index 75894432f05d..b604efdea769 100644
--- a/include/vcl/settings.hxx
+++ b/include/vcl/settings.hxx
@@ -682,6 +682,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 8965f38b56cf..69b4739ede2c 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
@@ -35,6 +35,7 @@
#include <unotools/localedatawrapper.hxx>
#include <unotools/viewoptions.hxx>
#include <vcl/button.hxx>
+#include <unotools/localedatawrapper.hxx>
#include <vcl/canvastools.hxx>
#include <vcl/virdev.hxx>
#include <vcl/svapp.hxx>
@@ -819,26 +820,28 @@ void PosSizePropertyPanel::NotifyItemUpdate(
void PosSizePropertyPanel::GetControlState(const sal_uInt16 nSID, boost::property_tree::ptree& rState)
{
- weld::MetricSpinButton* pControl = nullptr;
+ VclPtr<MetricField> pControl = nullptr;
switch (nSID)
{
case SID_ATTR_TRANSFORM_POS_X:
- pControl = mxMtrPosX.get();
+ pControl = mpMtrPosX;
break;
case SID_ATTR_TRANSFORM_POS_Y:
- pControl = mxMtrPosY.get();
+ pControl = mpMtrPosY;
break;
case SID_ATTR_TRANSFORM_WIDTH:
- pControl = mxMtrWidth.get();
+ pControl = mpMtrWidth;
break;
case SID_ATTR_TRANSFORM_HEIGHT:
- pControl = mxMtrHeight.get();
+ pControl = mpMtrHeight;
break;
}
- if (pControl && !pControl->get_text().isEmpty())
+ if (pControl && !pControl->GetText().isEmpty())
{
- rState.put(pControl->get_buildable_name().getStr(), pControl->get_text().toUtf8().getStr());
+ OUString sValue = Application::GetSettings().GetNeutralLocaleDataWrapper().
+ getNum(pControl->GetValue(pControl->GetUnit()), pControl->GetDecimalDigits(), false, false);
+ rState.put(pControl->get_id().toUtf8().getStr(), sValue.toUtf8().getStr());
}
}
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index 66195762b6e1..43ed776e0af7 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -229,6 +229,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;
@@ -2604,6 +2605,7 @@ ImplAllSettingsData::~ImplAllSettingsData()
{
mpLocaleDataWrapper.reset();
mpUILocaleDataWrapper.reset();
+ mpNeutroLocaleDataWrapper.reset();
mpI18nHelper.reset();
mpUII18nHelper.reset();
}
@@ -2835,6 +2837,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 6d518486fe84..d534309ac090 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -1773,6 +1773,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;
}