Kaydet (Commit) 4d8ab5fc authored tarafından Caolán McNamara's avatar Caolán McNamara Kaydeden (comit) Andras Timar

Resolves: tdf#76964 fall back to primary language via getLanguage

instead of bittwiddling which ends up trying to resolve the
system language

(cherry picked from commit a1ff0745)

more tdf#76964 fall back to primary language via getLanguage

(cherry picked from commit 97893e56)

sw: fix SwUiWriterTest pointlessly loading an "empty.odt" ...

... instead of just creating a new document.

(cherry picked from commit 98ddd7a3)

Change-Id: I545bd5e39f99003ddedf3c90031e8b818edc1de2
Reviewed-on: https://gerrit.libreoffice.org/19545Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.co.uk>
(cherry picked from commit de1cb403)
üst 258718a9
...@@ -1729,10 +1729,8 @@ const SvxAutocorrWord* SvxAutoCorrect::SearchWordsInList( ...@@ -1729,10 +1729,8 @@ const SvxAutocorrWord* SvxAutoCorrect::SearchWordsInList(
} }
// If it still could not be found here, then keep on searching // If it still could not be found here, then keep on searching
LanguageType eLang = aLanguageTag.getLanguageType(); LanguageType eLang = aLanguageTag.getLanguageType();
LanguageType nTmpKey1 = eLang & 0x7ff, // the main language in many cases DE LanguageType nTmpKey1 = eLang & 0x7ff; // the main language in many cases DE
nTmpKey2 = eLang & 0x3ff; // otherwise for example EN
if(nTmpKey1 != eLang && (pLangTable->find(aLanguageTag.reset(nTmpKey1)) != pLangTable->end() || if(nTmpKey1 != eLang && (pLangTable->find(aLanguageTag.reset(nTmpKey1)) != pLangTable->end() ||
CreateLanguageFile(aLanguageTag, false))) CreateLanguageFile(aLanguageTag, false)))
{ {
...@@ -1746,8 +1744,12 @@ const SvxAutocorrWord* SvxAutoCorrect::SearchWordsInList( ...@@ -1746,8 +1744,12 @@ const SvxAutocorrWord* SvxAutoCorrect::SearchWordsInList(
} }
} }
if(nTmpKey2 != eLang && (pLangTable->find(aLanguageTag.reset(nTmpKey2)) != pLangTable->end() || // otherwise for example EN
CreateLanguageFile(aLanguageTag, false))) aLanguageTag.reset(aLanguageTag.getLanguage());
LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false);
if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED &&
(pLangTable->find(aLanguageTag) != pLangTable->end() ||
CreateLanguageFile(aLanguageTag, false)))
{ {
//the language is available - so bring it on //the language is available - so bring it on
SvxAutoCorrectLanguageLists* pList = pLangTable->find(aLanguageTag)->second; SvxAutoCorrectLanguageLists* pList = pLangTable->find(aLanguageTag)->second;
...@@ -1783,8 +1785,7 @@ bool SvxAutoCorrect::FindInWrdSttExceptList( LanguageType eLang, ...@@ -1783,8 +1785,7 @@ bool SvxAutoCorrect::FindInWrdSttExceptList( LanguageType eLang,
// First search for eLang, then US-English -> English // First search for eLang, then US-English -> English
// and last in LANGUAGE_UNDETERMINED // and last in LANGUAGE_UNDETERMINED
LanguageType nTmpKey1 = eLang & 0x7ff, // the main language in many cases DE LanguageType nTmpKey1 = eLang & 0x7ff; // the main language in many cases DE
nTmpKey2 = eLang & 0x3ff; // otherwise for example EN
OUString sTemp(sWord); OUString sTemp(sWord);
if(pLangTable->find(aLanguageTag) != pLangTable->end() || CreateLanguageFile(aLanguageTag, false)) if(pLangTable->find(aLanguageTag) != pLangTable->end() || CreateLanguageFile(aLanguageTag, false))
...@@ -1806,8 +1807,12 @@ bool SvxAutoCorrect::FindInWrdSttExceptList( LanguageType eLang, ...@@ -1806,8 +1807,12 @@ bool SvxAutoCorrect::FindInWrdSttExceptList( LanguageType eLang,
return true; return true;
} }
if(nTmpKey2 != eLang && (pLangTable->find(aLanguageTag.reset(nTmpKey2)) != pLangTable->end() || // otherwise for example EN
CreateLanguageFile(aLanguageTag, false))) aLanguageTag.reset(aLanguageTag.getLanguage());
LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false);
if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED &&
(pLangTable->find(aLanguageTag) != pLangTable->end() ||
CreateLanguageFile(aLanguageTag, false)))
{ {
//the language is available - so bring it on //the language is available - so bring it on
SvxAutoCorrectLanguageLists* pList = pLangTable->find(aLanguageTag)->second; SvxAutoCorrectLanguageLists* pList = pLangTable->find(aLanguageTag)->second;
...@@ -1869,8 +1874,7 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang, ...@@ -1869,8 +1874,7 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang,
// First search for eLang, then US-English -> English // First search for eLang, then US-English -> English
// and last in LANGUAGE_UNDETERMINED // and last in LANGUAGE_UNDETERMINED
LanguageType nTmpKey1 = eLang & 0x7ff, // the main language in many cases DE LanguageType nTmpKey1 = eLang & 0x7ff; // the main language in many cases DE
nTmpKey2 = eLang & 0x3ff; // otherwise for example EN
OUString sTemp( sWord ); OUString sTemp( sWord );
if(pLangTable->find(aLanguageTag) != pLangTable->end() || CreateLanguageFile(aLanguageTag, false)) if(pLangTable->find(aLanguageTag) != pLangTable->end() || CreateLanguageFile(aLanguageTag, false))
...@@ -1890,8 +1894,12 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang, ...@@ -1890,8 +1894,12 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang,
return true; return true;
} }
if(nTmpKey2 != eLang && (pLangTable->find(aLanguageTag.reset(nTmpKey2)) != pLangTable->end() || // otherwise for example EN
CreateLanguageFile(aLanguageTag, false))) aLanguageTag.reset(aLanguageTag.getLanguage());
LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false);
if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED &&
(pLangTable->find(aLanguageTag) != pLangTable->end() ||
CreateLanguageFile(aLanguageTag, false)))
{ {
//the language is available - so bring it on //the language is available - so bring it on
const SvStringsISortDtor* pList = pLangTable->find(aLanguageTag)->second->GetCplSttExceptList(); const SvStringsISortDtor* pList = pLangTable->find(aLanguageTag)->second->GetCplSttExceptList();
......
...@@ -571,15 +571,21 @@ protected: ...@@ -571,15 +571,21 @@ protected:
} }
void load(const char* pDir, const char* pName) void load(const char* pDir, const char* pName)
{
return loadURL(getURLFromSrc(pDir) + OUString::createFromAscii(pName), pName);
}
void loadURL(OUString const& rURL, const char* pName)
{ {
if (mxComponent.is()) if (mxComponent.is())
mxComponent->dispose(); mxComponent->dispose();
// Output name early, so in the case of a hang, the name of the hanging input file is visible. // Output name early, so in the case of a hang, the name of the hanging input file is visible.
std::cout << pName << ","; if (pName)
std::cout << pName << ",";
mnStartTime = osl_getGlobalTimer(); mnStartTime = osl_getGlobalTimer();
mxComponent = loadFromDesktop(getURLFromSrc(pDir) + OUString::createFromAscii(pName), "com.sun.star.text.TextDocument"); mxComponent = loadFromDesktop(rURL, "com.sun.star.text.TextDocument");
discardDumpedLayout(); discardDumpedLayout();
if (mustCalcLayoutOf(pName)) if (pName && mustCalcLayoutOf(pName))
calcLayout(); calcLayout();
} }
......
...@@ -156,8 +156,9 @@ private: ...@@ -156,8 +156,9 @@ private:
SwDoc* SwUiWriterTest::createDoc(const char* pName) SwDoc* SwUiWriterTest::createDoc(const char* pName)
{ {
if (!pName) if (!pName)
pName = "empty.odt"; loadURL("private:factory/swriter", nullptr);
load(DATA_DIRECTORY, pName); else
load(DATA_DIRECTORY, pName);
SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument *>(mxComponent.get()); SwXTextDocument* pTextDoc = dynamic_cast<SwXTextDocument *>(mxComponent.get());
CPPUNIT_ASSERT(pTextDoc); CPPUNIT_ASSERT(pTextDoc);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment