[PATCH] Language chooser improvements

Sergey Starosek sergey.starosek at gmail.com
Sat Dec 7 07:32:17 UTC 2013


Show language instead of country, sort the list.
Show country in brackets to avoid ambiguity for locales like
de_DE and de_CH.

Signed-off-by: Sergey Starosek <sergey.starosek at gmail.com>
---
 qt-ui/models.cpp      | 2 +-
 qt-ui/preferences.cpp | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index bac96f5..30bc374 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -1784,7 +1784,7 @@ QVariant LanguageModel::data(const QModelIndex& index, int role) const
 	switch(role){
 		case Qt::DisplayRole:{
 			QLocale l( currentString.remove("subsurface_"));
-			return currentString == "English" ? currentString : l.countryToString(l.country());
+			return currentString == "English" ? currentString : QString("%1 (%2)").arg(l.languageToString(l.language())).arg(l.countryToString(l.country()));
 		}break;
 	case Qt::UserRole:{
 			QString currentString = languages.at(index.row());
diff --git a/qt-ui/preferences.cpp b/qt-ui/preferences.cpp
index 930a263..399d81d 100644
--- a/qt-ui/preferences.cpp
+++ b/qt-ui/preferences.cpp
@@ -110,6 +110,7 @@ void PreferencesDialog::setUiFromPrefs()
 	filterModel->setSourceModel(LanguageModel::instance());
 	filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
 	ui.languageView->setModel(filterModel);
+	filterModel->sort(0);
 	connect(ui.languageFilter, SIGNAL(textChanged(QString)), filterModel, SLOT(setFilterFixedString(QString)));
 
 	QSettings s;
-- 
1.8.3.2



More information about the subsurface mailing list