summaryrefslogtreecommitdiff
path: root/svx/source/dialog
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-12-10 11:09:14 +0000
committerCaolán McNamara <caolanm@redhat.com>2018-12-10 15:09:24 +0100
commitf6ad6eedfd21bc8f9de09d53d3be883bbc543cc7 (patch)
tree47ad70ab0b863d58a0ae94c94100c16da6506b65 /svx/source/dialog
parentfb38c6d5e0eb4093cf9612f18d22811812adab17 (diff)
Resolves: tdf#121520 duplicate languages in dropdown
Change-Id: I5bbde305bf06ac1f754f24eb93e89cb3d9cf6058 Reviewed-on: https://gerrit.libreoffice.org/64866 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svx/source/dialog')
-rw-r--r--svx/source/dialog/langbox.cxx15
1 files changed, 9 insertions, 6 deletions
diff --git a/svx/source/dialog/langbox.cxx b/svx/source/dialog/langbox.cxx
index 242753913641..ba244f38e4f6 100644
--- a/svx/source/dialog/langbox.cxx
+++ b/svx/source/dialog/langbox.cxx
@@ -516,12 +516,15 @@ void LanguageBox::AddLanguages(const std::vector< LanguageType >& rLanguageTypes
if (lcl_isScriptTypeRequested( nLang, nLangList))
{
int nAt = ImplTypeToPos(nLang);
- if (nAt == -1)
- {
- rEntries.push_back(BuildEntry(nLang));
- if (rEntries.back().sString.isEmpty())
- rEntries.pop_back();
- }
+ if (nAt != -1)
+ continue;
+ weld::ComboBoxEntry aNewEntry(BuildEntry(nLang));
+ if (aNewEntry.sString.isEmpty())
+ continue;
+ if (std::find_if(rEntries.begin(), rEntries.end(),
+ [=](const weld::ComboBoxEntry& rEntry){ return rEntry.sId == aNewEntry.sId; }) != rEntries.end())
+ continue;
+ rEntries.push_back(aNewEntry);
}
}
}