diff --git a/.clangd b/.clangd new file mode 100644 index 00000000..5a804e9c --- /dev/null +++ b/.clangd @@ -0,0 +1,2 @@ +CompileFlags: + CompilationDatabase: build \ No newline at end of file diff --git a/launcher/translations/TranslationsModel.cpp b/launcher/translations/TranslationsModel.cpp index 64020dca..4aeb859a 100644 --- a/launcher/translations/TranslationsModel.cpp +++ b/launcher/translations/TranslationsModel.cpp @@ -226,7 +226,9 @@ void TranslationsModel::indexReceived() reloadLocalFiles(); auto language = d->m_system_locale; - if (!findLanguage(language)) + auto languageIterator = findLanguage(language); + + if (languageIterator == decltype(languageIterator){}) { language = d->m_system_language; } @@ -488,7 +490,7 @@ int TranslationsModel::columnCount(const QModelIndex& parent) const return 2; } -Language * TranslationsModel::findLanguage(const QString& key) +QVector::iterator TranslationsModel::findLanguage(const QString& key) { auto found = std::find_if(d->m_languages.begin(), d->m_languages.end(), [&](Language & lang) { @@ -496,7 +498,7 @@ Language * TranslationsModel::findLanguage(const QString& key) }); if(found == d->m_languages.end()) { - return nullptr; + return {}; } else { @@ -507,21 +509,21 @@ Language * TranslationsModel::findLanguage(const QString& key) bool TranslationsModel::selectLanguage(QString key) { QString &langCode = key; - auto langPtr = findLanguage(key); + auto langIterator = findLanguage(key); if (langCode.isEmpty()) { d->no_language_set = true; } - if(!langPtr) + if (langIterator == decltype(langIterator){}) { qWarning() << "Selected invalid language" << key << ", defaulting to" << defaultLangCode; langCode = defaultLangCode; } else { - langCode = langPtr->key; + langCode = langIterator->key; } // uninstall existing translators if there are any @@ -573,7 +575,7 @@ bool TranslationsModel::selectLanguage(QString key) d->m_qt_translator.reset(); } - if(langPtr->localFileType == FileType::PO) + if(langIterator->localFileType == FileType::PO) { qDebug() << "Loading Application Language File for" << langCode.toLocal8Bit().constData() << "..."; auto poTranslator = new POTranslator(FS::PathCombine(d->m_dir.path(), langCode + ".po")); @@ -596,7 +598,7 @@ bool TranslationsModel::selectLanguage(QString key) d->m_app_translator.reset(); } } - else if(langPtr->localFileType == FileType::QM) + else if(langIterator->localFileType == FileType::QM) { d->m_app_translator.reset(new QTranslator()); if (d->m_app_translator->load("mmc_" + langCode, d->m_dir.path())) @@ -628,7 +630,7 @@ bool TranslationsModel::selectLanguage(QString key) QModelIndex TranslationsModel::selectedIndex() { auto found = findLanguage(d->m_selectedLanguage); - if(found) + if(found != decltype(found){}) { // QVector iterator freely converts to pointer to contained type return index(found - d->m_languages.begin(), 0, QModelIndex()); @@ -666,7 +668,7 @@ void TranslationsModel::updateLanguage(QString key) return; } auto found = findLanguage(key); - if(!found) + if(found == decltype(found){}) { qWarning() << "Cannot update invalid language" << key; return; @@ -685,7 +687,7 @@ void TranslationsModel::downloadTranslation(QString key) return; } auto lang = findLanguage(key); - if(!lang) + if(lang == decltype(lang){}) { qWarning() << "Will not download an unknown translation" << key; return; diff --git a/launcher/translations/TranslationsModel.h b/launcher/translations/TranslationsModel.h index 3abf84e6..b7292c2d 100644 --- a/launcher/translations/TranslationsModel.h +++ b/launcher/translations/TranslationsModel.h @@ -40,7 +40,7 @@ public: void downloadIndex(); private: - Language *findLanguage(const QString & key); + QVector::iterator findLanguage(const QString & key); void reloadLocalFiles(); void downloadTranslation(QString key); void downloadNext();