summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-12-10 09:44:39 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-12-10 21:28:13 +0100
commit137c9e826cdce429a004f05bde40d274437d7554 (patch)
tree77c1fef9226f7166031507a6ad424ed2ccd10954 /sw
parentca19ae6e0595f8b69fc4929072636bf10ca3027e (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.hrc42
-rw-r--r--sw/source/uibase/sidebar/PageFormatPanel.cxx17
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);
}