void capWord(QString& lastWord, QChar last, const QSet<QString>& toUpper, const QSet<QString>& toLower, const QSet<QString>& ignore) { static QLocale locale; if(toUpper.contains(lastWord)) lastWord = locale.toUpper(lastWord); else if(toLower.contains(lastWord)) lastWord = locale.toLower(lastWord); else if(!ignore.contains(lastWord)) { // Convert all letters after an apostrophe to lower case (St. Mary's) if(last == '\'' && lastWord.size() == 1) lastWord[0] = lastWord.at(0).toLower(); else { lastWord = lastWord.toLower(); lastWord[0] = lastWord.at(0).toUpper(); } } }