A suggestion: Instead of adding hasLanguage, we could move the default to QLocale::systemLocale() into OptionsModel