Add a "all" language.

This way we can get all zim, without any filtering.
This commit is contained in:
Matthieu Gautier 2019-03-06 18:01:18 +01:00
parent 05c64e620d
commit a5fea9f582
2 changed files with 14 additions and 1 deletions

View File

@ -219,7 +219,9 @@ void ContentManager::setCurrentLanguage(QString language)
#define CATALOG_PORT 80
void ContentManager::updateRemoteLibrary() {
QUrlQuery query;
query.addQueryItem("lang", m_currentLanguage);
if (m_currentLanguage != "*") {
query.addQueryItem("lang", m_currentLanguage);
}
query.addQueryItem("count", QString::number(0));
QUrl url;
url.setScheme("http");

View File

@ -29,6 +29,7 @@ ContentManagerSide::ContentManagerSide(QWidget *parent) :
for (auto lang:
{
QLocale::AnyLanguage,
QLocale::Afar,
QLocale::Afrikaans,
QLocale::Akan,
@ -175,6 +176,12 @@ ContentManagerSide::ContentManagerSide(QWidget *parent) :
})
{
auto currentLang = QLocale().language();
if (lang == QLocale::AnyLanguage) {
auto item = new KListWidgetItem("All");
item->setData(Qt::UserRole, lang);
mp_languageSelector->addItem(item);
continue;
}
auto locale = QLocale(lang);
if (locale.language() != lang) {
// Qt may not find the locale for the lang :/
@ -205,6 +212,10 @@ void ContentManagerSide::setContentManager(ContentManager *contentManager)
auto item = mp_languageSelector->selectedItems().at(0);
if (!item) return;
auto lang = QLocale::Language(item->data(Qt::UserRole).toInt());
if (lang == QLocale::AnyLanguage) {
mp_contentManager->setCurrentLanguage("*");
return;
}
auto locale = QLocale(QLocale::Language(item->data(Qt::UserRole).toInt()));
mp_contentManager->setCurrentLanguage(locale.name().split("_").at(0));});
}