From e588b3c3a1052dfc063c9c058d361347329e7899 Mon Sep 17 00:00:00 2001 From: John Fultz Date: Sat, 15 Jul 2023 21:24:54 -0500 Subject: Make UTF8-encoding of QTextStream work in Qt5 and 6. QTextStream::setCodec() is no longer a thing in Qt6. Most of our call are to set the codec to UTF-8, which happens to be the default encoding in Qt6. So make a macro so this can compile in both Qt5 and Qt6. --- quacker/graphicalreporter.cpp | 2 +- quacker/letterbox.cpp | 10 +++++----- quacker/lexicondialog.cpp | 2 +- quacker/lister.cpp | 5 +++-- quacker/quacker.cpp | 8 ++++---- 5 files changed, 14 insertions(+), 13 deletions(-) (limited to 'quacker') diff --git a/quacker/graphicalreporter.cpp b/quacker/graphicalreporter.cpp index 86b539d..4c9fa43 100644 --- a/quacker/graphicalreporter.cpp +++ b/quacker/graphicalreporter.cpp @@ -229,6 +229,6 @@ void GraphicalReporter::openIndex() m_indexStream.setDevice(&m_indexFile); } - m_indexStream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(m_indexStream); } diff --git a/quacker/letterbox.cpp b/quacker/letterbox.cpp index aeed7af..6921dca 100644 --- a/quacker/letterbox.cpp +++ b/quacker/letterbox.cpp @@ -232,7 +232,7 @@ void Letterbox::loadFile() QTextStream stream(&file); QString line; - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); m_initializationChuu = true; @@ -522,7 +522,7 @@ void Letterbox::outputResults() } QTextStream stream(&file); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); if (m_numberIterator < m_clueResults.count()) stream << "\" Resume: " << m_numberIterator << "\n"; @@ -558,7 +558,7 @@ void Letterbox::outputResults() } QTextStream stream(&missesFile); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); for (const auto& it : m_clueResults) { @@ -924,7 +924,7 @@ void Letterbox::print() setModified(wasModified); QTextStream stream(&file); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); stream << printer.html() << "\n"; file.close(); @@ -955,7 +955,7 @@ void Letterbox::printStudy() jumpTo(m_clueResults.size() - 1); QTextStream stream(&file); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); stream << generateStudySheet(m_answers.begin(), m_answers.end()) << "\n"; file.close(); diff --git a/quacker/lexicondialog.cpp b/quacker/lexicondialog.cpp index 4f6d35d..88e86b1 100644 --- a/quacker/lexicondialog.cpp +++ b/quacker/lexicondialog.cpp @@ -218,7 +218,7 @@ void LexiconDialog::addWordsFromTextFile(const QString &textFile) return; QTextStream stream(&file); - stream.setCodec("UTF-8"); + SET_QTEXTSTREAM_TO_UTF8(stream); QString word; while (!stream.atEnd()) { diff --git a/quacker/lister.cpp b/quacker/lister.cpp index c3a4ea9..644dd90 100644 --- a/quacker/lister.cpp +++ b/quacker/lister.cpp @@ -22,6 +22,7 @@ using namespace std; #include #include +#include #include "lister.h" #include "customqsettings.h" @@ -233,7 +234,7 @@ void ListerDialog::openFile() if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream stream(&file); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); QString line; while (!stream.atEnd()) { @@ -429,7 +430,7 @@ QString ListerDialog::writeList(bool alphagrams) } QTextStream stream(&file); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); QMap map(anagramMap()); diff --git a/quacker/quacker.cpp b/quacker/quacker.cpp index e7cc401..a244586 100644 --- a/quacker/quacker.cpp +++ b/quacker/quacker.cpp @@ -1335,7 +1335,7 @@ void TopLevel::reportAs(Quackle::ComputerPlayer *player) Quackle::ComputerPlayer *clone = player->clone(); QTextStream stream(&file); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); QuackleIO::StreamingReporter::reportGame(*m_game, clone, stream); delete clone; } @@ -2100,7 +2100,7 @@ void TopLevel::writeAsciiToFile(const QString &text, const QString &filename) } QTextStream stream(&file); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); stream << text << "\n"; file.close(); @@ -2126,7 +2126,7 @@ void TopLevel::print() } QTextStream stream(&file); - stream.setCodec(QTextCodec::codecForName("UTF-8")); + SET_QTEXTSTREAM_TO_UTF8(stream); //stream << printer.html() << "\n"; file.close(); @@ -2160,7 +2160,7 @@ void TopLevel::about() if (file) { QTextStream strm(file); - strm.setCodec("UTF-8"); + SET_QTEXTSTREAM_TO_UTF8(strm); QString line = strm.readLine(); while (!line.isNull()) { -- cgit v1.2.3