diff options
-rw-r--r-- | desktop/source/lib/init.cxx | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 9a0bd8737925..70e2372097b1 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -2420,11 +2420,20 @@ static void doc_resetSelection(LibreOfficeKitDocument* pThis) static char* getLanguages(const char* pCommand) { - css::uno::Reference< css::uno::XComponentContext> xContext = ::comphelper::getProcessComponentContext(); - css::uno::Reference< css::linguistic2::XLinguServiceManager2 > xLangSrv = css::linguistic2::LinguServiceManager::create(xContext); - css::uno::Reference< css::linguistic2::XSpellChecker > xSpell(xLangSrv.is() ? xLangSrv->getSpellChecker() : nullptr, css::uno::UNO_QUERY); - css::uno::Reference< css::linguistic2::XSupportedLocales > xLocales(xSpell, css::uno::UNO_QUERY); - css::uno::Sequence< css::lang::Locale > aLocales(xLocales.is() ? xLocales->getLocales() : css::uno::Sequence< css::lang::Locale >()); + css::uno::Sequence< css::lang::Locale > aLocales; + + if (xContext.is()) + { + 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(); + } + } boost::property_tree::ptree aTree; aTree.put("commandName", pCommand); |