[Libreoffice-commits] core.git: desktop/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Mon Oct 8 15:30:31 UTC 2018


 desktop/source/lib/init.cxx |   27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

New commits:
commit 752494ee759efdf976c44ffd6408a7f861215901
Author:     Ashod Nakashian <ashod.nakashian at collabora.co.uk>
AuthorDate: Thu Jun 28 01:07:32 2018 -0400
Commit:     Jan Holesovsky <kendy at collabora.com>
CommitDate: Mon Oct 8 17:30:07 2018 +0200

    desktop: initialize fonts in pre-init
    
    Reviewed-on: https://gerrit.libreoffice.org/56573
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>
    Tested-by: Jan Holesovsky <kendy at collabora.com>
    (cherry picked from commit e7f65920b12517b31f0c5cbfd0dcb8df96d20ba4)
    
    Change-Id: I5a3acc41196c7e0672514fa2dae00e5fc0f76a1f
    Reviewed-on: https://gerrit.libreoffice.org/61492
    Tested-by: Jenkins
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 477a3feb8180..db92368d6cb0 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -75,6 +75,7 @@
 
 #include <com/sun/star/linguistic2/LinguServiceManager.hpp>
 #include <com/sun/star/linguistic2/XSpellChecker.hpp>
+#include <com/sun/star/i18n/ScriptType.hpp>
 
 #include <editeng/fontitem.hxx>
 #include <editeng/flstitem.hxx>
@@ -116,6 +117,7 @@
 #include <sfx2/sfxbasemodel.hxx>
 #include <svl/undo.hxx>
 #include <unotools/datetime.hxx>
+#include <i18nlangtag/mslangid.hxx>
 #include <i18nlangtag/languagetag.hxx>
 #include <vcl/builder.hxx>
 #include <vcl/abstdlg.hxx>
@@ -3982,6 +3984,31 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
                 // Force load some modules
                 VclBuilder::preload();
                 VclAbstractDialogFactory::Create();
+
+                // Initialize fonts.
+                css::uno::Sequence< css::lang::Locale > aLocales;
+                css::uno::Reference<css::linguistic2::XLinguServiceManager2> xLangSrv = css::linguistic2::LinguServiceManager::create(xContext);
+                if (xLangSrv.is())
+                {
+                    css::uno::Reference<css::linguistic2::XSpellChecker> xSpell(xLangSrv->getSpellChecker(), css::uno::UNO_QUERY);
+                    css::uno::Reference<css::linguistic2::XSupportedLocales> xLocales(xSpell, css::uno::UNO_QUERY);
+                    if (xLocales.is())
+                        aLocales = xLocales->getLocales();
+                }
+
+                for (const auto& aLocale : aLocales)
+                {
+                    //TODO: Add more types and cache more aggessively. For now this initializes the fontcache.
+                    using namespace ::com::sun::star::i18n::ScriptType;
+                    LanguageType nLang;
+                    nLang = MsLangId::resolveSystemLanguageByScriptType(LanguageTag::convertToLanguageType(aLocale, false), LATIN);
+                    OutputDevice::GetDefaultFont(DefaultFontType::LATIN_SPREADSHEET, nLang, GetDefaultFontFlags::OnlyOne);
+                    nLang = MsLangId::resolveSystemLanguageByScriptType(LanguageTag::convertToLanguageType(aLocale, false), ASIAN);
+                    OutputDevice::GetDefaultFont(DefaultFontType::CJK_SPREADSHEET, nLang, GetDefaultFontFlags::OnlyOne);
+                    nLang = MsLangId::resolveSystemLanguageByScriptType(LanguageTag::convertToLanguageType(aLocale, false), COMPLEX);
+                    OutputDevice::GetDefaultFont(DefaultFontType::CTL_SPREADSHEET, nLang, GetDefaultFontFlags::OnlyOne);
+                }
+
                 preloadData();
 
                 // Release Solar Mutex, lo_startmain thread should acquire it.


More information about the Libreoffice-commits mailing list