Related: tdf#129267 format numbers with the UI locale
Change-Id: I70d8cc48869073596c101eec6a6d3a79db044a78
Reviewed-on: https://gerrit.libreoffice.org/84883
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sd/inc/pageformatpanel.hrc b/sd/inc/pageformatpanel.hrc
index 732f39e..6d45a79 100644
--- a/sd/inc/pageformatpanel.hrc
+++ b/sd/inc/pageformatpanel.hrc
@@ -16,27 +16,33 @@ namespace sd
{
// To translators: this is a listbox labelled by "Margins:", inch units
const char* RID_PAGEFORMATPANEL_MARGINS_INCH[] =
const std::pair<const char*, int> RID_PAGEFORMATPANEL_MARGINS_INCH[] =
{
NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "None"),
NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Narrow"),
NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Moderate"),
NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Normal (0.75″)"),
NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Normal (1″)"),
NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Normal (1.25″)"),
NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Wide"),
{ NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "None"), 0 },
{ NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Narrow"), 0 },
{ NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Moderate"), 0 },
// Normal (0.75")
{ NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Normal (%1)"), 75 },
// Normal (1")
{ NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Normal (%1)"), 100 },
// Normal (1.25")
{ NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Normal (%1)"), 125 },
{ NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Wide"), 0 }
};
// To translators: this is a listbox labelled by "Margins:", cm units
const char* RID_PAGEFORMATPANEL_MARGINS_CM[] =
const std::pair<const char*, int> RID_PAGEFORMATPANEL_MARGINS_CM[] =
{
NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "None"),
NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Narrow"),
NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Moderate"),
NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Normal (1.9 cm)"),
NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Normal (2.54 cm)"),
NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Normal (3.18 cm)"),
NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Wide"),
{ NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "None"), 0 },
{ NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Narrow"), 0 },
{ NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Moderate"), 0 },
// Normal (1.9 cm)
{ NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Normal (%1)"), 190 },
// Normal (2.54 cm)
{ NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Normal (%1)"), 254 },
// Normal (3.18 cm)
{ NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Normal (%1)"), 318 },
{ NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Wide"), 0 }
};
}
diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx
index c28242b..7a43a4c 100644
--- a/sd/source/ui/sidebar/SlideBackground.cxx
+++ b/sd/source/ui/sidebar/SlideBackground.cxx
@@ -52,6 +52,7 @@
#include <sfx2/dispatch.hxx>
#include <sfx2/sidebar/Panel.hxx>
#include <EventMultiplexer.hxx>
#include <unotools/localedatawrapper.hxx>
#include <vcl/EnumContext.hxx>
#include <editeng/sizeitem.hxx>
@@ -190,15 +191,25 @@ void SlideBackground::SetMarginsFieldUnit()
auto nSelected = mpMarginSelectBox->GetSelectedEntryPos();
mpMarginSelectBox->Clear();
const LocaleDataWrapper& rLocaleData = Application::GetSettings().GetLocaleDataWrapper();
if (IsInch(meFUnit))
{
OUString sSuffix = weld::MetricSpinButton::MetricToString(FieldUnit::INCH);
for (size_t i = 0; i < SAL_N_ELEMENTS(RID_PAGEFORMATPANEL_MARGINS_INCH); ++i)
mpMarginSelectBox->InsertEntry(SdResId(RID_PAGEFORMATPANEL_MARGINS_INCH[i]));
{
OUString sMeasurement = rLocaleData.getNum(RID_PAGEFORMATPANEL_MARGINS_INCH[i].second, 2, true, false) + sSuffix;
mpMarginSelectBox->InsertEntry(SdResId(RID_PAGEFORMATPANEL_MARGINS_INCH[i].first).replaceFirst("%1", sMeasurement));
}
}
else
{
OUString sSuffix = " " + weld::MetricSpinButton::MetricToString(FieldUnit::CM);
for (size_t i = 0; i < SAL_N_ELEMENTS(RID_PAGEFORMATPANEL_MARGINS_CM); ++i)
mpMarginSelectBox->InsertEntry(SdResId(RID_PAGEFORMATPANEL_MARGINS_CM[i]));
{
OUString sMeasurement = rLocaleData.getNum(RID_PAGEFORMATPANEL_MARGINS_CM[i].second, 2, true, false) + sSuffix;
mpMarginSelectBox->InsertEntry(SdResId(RID_PAGEFORMATPANEL_MARGINS_CM[i].first).replaceFirst("%1", sMeasurement));
}
}
mpMarginSelectBox->SelectEntryPos(nSelected);