sd/source/ui/app/sdmod.cxx |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

New commits:
commit 3d99cc908365a27f275ae8f221958a8282e668fc
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Fri Sep 6 12:16:37 2024 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Fri Sep 6 15:21:34 2024 +0200

    tdf#162467: fix measurement units in impress/draw
    
    Regression from
    commit 055e7d866680390dca6e18864ca4297cc0ebda84
    Author: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de>
    Date:   Tue Apr 23 20:04:43 2024 +0200
    
        Use less SdOptionsLayout->GetMetric/SetMetric in favor of officecfg
    
    This code was removed for no apparent reason.
    Reintroduce it and adapt it
    
    Change-Id: Iea23ba824cdc20e59edbc316fefc7325c73926a2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172940
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx
index bb4d30f9e1df..df2fd5c50eee 100644
--- a/sd/source/ui/app/sdmod.cxx
+++ b/sd/source/ui/app/sdmod.cxx
@@ -42,6 +42,10 @@
 #include <DrawDocShell.hxx>
 #include <drawdoc.hxx>
 #include <errhdl.hrc>
+#include <unotools/syslocale.hxx>
+
+#include <officecfg/Office/Draw.hxx>
+#include <officecfg/Office/Impress.hxx>
 
 #define ShellClass_SdModule
 #include <sdslots.hxx>
@@ -141,6 +145,20 @@ SdOptions* SdModule::GetSdOptions(DocumentType eDocType)
 
         pOptions = pImpressOptions;
     }
+    if( pOptions )
+    {
+        SvtSysLocale aSysLocale;
+        if (eDocType == DocumentType::Impress)
+            if (aSysLocale.GetLocaleData().getMeasurementSystemEnum() == 
MeasurementSystem::Metric)
+                PutItem( SfxUInt16Item( SID_ATTR_METRIC, 
officecfg::Office::Impress::Layout::Other::MeasureUnit::Metric::get() ) );
+            else
+                PutItem( SfxUInt16Item( SID_ATTR_METRIC, 
officecfg::Office::Impress::Layout::Other::MeasureUnit::NonMetric::get() ) );
+        else
+            if (aSysLocale.GetLocaleData().getMeasurementSystemEnum() == 
MeasurementSystem::Metric)
+                PutItem( SfxUInt16Item( SID_ATTR_METRIC, 
officecfg::Office::Draw::Layout::Other::MeasureUnit::Metric::get() ) );
+            else
+                PutItem( SfxUInt16Item( SID_ATTR_METRIC, 
officecfg::Office::Draw::Layout::Other::MeasureUnit::NonMetric::get() ) );
+    }
 
     return pOptions;
 }

Reply via email to