diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-12-10 09:44:39 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-12-10 21:28:13 +0100 |
commit | 137c9e826cdce429a004f05bde40d274437d7554 (patch) | |
tree | 77c1fef9226f7166031507a6ad424ed2ccd10954 /sw | |
parent | ca19ae6e0595f8b69fc4929072636bf10ca3027e (diff) |
Related: tdf#129267 format numbers with the UI locale
Change-Id: Ib7712f56140e5ef9a67700c8ea86383adbf2a4fc
Reviewed-on: https://gerrit.libreoffice.org/84800
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/inc/pageformatpanel.hrc | 42 | ||||
-rw-r--r-- | sw/source/uibase/sidebar/PageFormatPanel.cxx | 17 |
2 files changed, 39 insertions, 20 deletions
diff --git a/sw/inc/pageformatpanel.hrc b/sw/inc/pageformatpanel.hrc index ddc82ed620d3..70a8bbbc1930 100644 --- a/sw/inc/pageformatpanel.hrc +++ b/sw/inc/pageformatpanel.hrc @@ -16,29 +16,35 @@ namespace sw { // 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", "Mirrored") + { 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 }, + { NC_("RID_PAGEFORMATPANEL_MARGINS_INCH", "Mirrored"), 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", "Mirrored") + { 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 }, + { NC_("RID_PAGEFORMATPANEL_MARGINS_CM", "Mirrored"), 0 } }; } diff --git a/sw/source/uibase/sidebar/PageFormatPanel.cxx b/sw/source/uibase/sidebar/PageFormatPanel.cxx index ecc8ff01b5c6..ad2fbc21c26a 100644 --- a/sw/source/uibase/sidebar/PageFormatPanel.cxx +++ b/sw/source/uibase/sidebar/PageFormatPanel.cxx @@ -40,6 +40,9 @@ #include <uitool.hxx> #include <svtools/unitconv.hxx> #include <svtools/optionsdrawinglayer.hxx> +#include <unotools/localedatawrapper.hxx> +#include <vcl/settings.hxx> +#include <vcl/svapp.hxx> #include <com/sun/star/lang/IllegalArgumentException.hpp> @@ -62,15 +65,25 @@ void PageFormatPanel::SetMarginFieldUnit() { 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(SwResId(RID_PAGEFORMATPANEL_MARGINS_INCH[i])); + { + OUString sStr = rLocaleData.getNum(RID_PAGEFORMATPANEL_MARGINS_INCH[i].second, 2, true, false) + sSuffix; + mpMarginSelectBox->InsertEntry(SwResId(RID_PAGEFORMATPANEL_MARGINS_INCH[i].first).replaceFirst("%1", sStr)); + } } else { + OUString sSuffix = weld::MetricSpinButton::MetricToString(FieldUnit::CM); for (size_t i = 0; i < SAL_N_ELEMENTS(RID_PAGEFORMATPANEL_MARGINS_CM); ++i) - mpMarginSelectBox->InsertEntry(SwResId(RID_PAGEFORMATPANEL_MARGINS_CM[i])); + { + OUString sStr = rLocaleData.getNum(RID_PAGEFORMATPANEL_MARGINS_CM[i].second, 2, true, false) + " " + sSuffix; + mpMarginSelectBox->InsertEntry(SwResId(RID_PAGEFORMATPANEL_MARGINS_CM[i].first).replaceFirst("%1", sStr)); + } } mpMarginSelectBox->SelectEntryPos(nSelected); } |