Skip to content

Commit 8020a2e

Browse files
authored
Merge pull request doxygen#12135 from albert-github/feature/bug_doxywizard_language_msg
Better error message when selecting an unknown language.
2 parents 59e7f3e + 65af5ba commit 8020a2e

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

addon/doxywizard/doxywizard.cpp

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,40 @@ void MainWindow::outputLogFinish()
895895
m_saveLog->setEnabled(true);
896896
}
897897

898+
static QString languagesList()
899+
{
900+
QString languages = QString::fromLatin1("en");
901+
902+
// add additional languages based on embedded info
903+
QDir resourceDir(QString::fromLatin1(":/i18n"));
904+
QFileInfoList fileList = resourceDir.entryInfoList();
905+
QString prevLangCode;
906+
foreach (QFileInfo fileInfo, fileList)
907+
{
908+
QString filename = fileInfo.fileName();
909+
const int underscore = filename.indexOf(QChar::fromLatin1('_'));
910+
const int dot = filename.lastIndexOf(QChar::fromLatin1('.'));
911+
if (filename.startsWith(QString::fromLatin1("config")) && underscore!=-1 && dot>underscore)
912+
{
913+
QString langCode = filename.mid(underscore+1, dot-underscore-1);
914+
QFile trFile(QString::fromLatin1(":/i18n/config_%1.xml").arg(langCode));
915+
if (trFile.open(QIODevice::ReadOnly))
916+
{
917+
if (!prevLangCode.isEmpty())
918+
{
919+
languages += QString::fromLatin1(", ") + prevLangCode;
920+
}
921+
prevLangCode = langCode;
922+
}
923+
}
924+
}
925+
if (!prevLangCode.isEmpty())
926+
{
927+
languages += QString::fromLatin1(" and ") + prevLangCode;
928+
}
929+
return languages;
930+
}
931+
898932
#define TXT_ARGS QString::fromLatin1(argc > 2?"Too many arguments specified\n\n":"")
899933
static void usage(const char *exeName, const QString txt)
900934
{
@@ -975,7 +1009,8 @@ int main(int argc,char **argv)
9751009
}
9761010
if (!isLanguageCodeSupported(langSel))
9771011
{
978-
usage(argv[0],QString::fromLatin1("Unknown language selected\n\n"));
1012+
usage(argv[0],QString::fromLatin1("Unknown language selected\n available languages: ") + languagesList() +
1013+
QString::fromLatin1("\n\n"));
9791014
exit(1);
9801015
}
9811016
}

0 commit comments

Comments
 (0)