From 948637c42cb9feb228f26a603391be6343782b51 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Wed, 23 Mar 2022 19:13:40 +0100 Subject: rbutil: Fix TalkGenerator string correction. - Fix regexp case insensitive option being inverted. - Pass more objects by reference. - Some const-ness. Change-Id: I1c77ad22ab1e505c8dce8c083d9c52e76a6860be --- utils/rbutilqt/base/talkgenerator.cpp | 26 +++++++++++++------------- utils/rbutilqt/base/talkgenerator.h | 4 ++-- 2 files changed, 15 insertions(+), 15 deletions(-) (limited to 'utils/rbutilqt') diff --git a/utils/rbutilqt/base/talkgenerator.cpp b/utils/rbutilqt/base/talkgenerator.cpp index eb000bf188..8bbc7702e0 100644 --- a/utils/rbutilqt/base/talkgenerator.cpp +++ b/utils/rbutilqt/base/talkgenerator.cpp @@ -24,7 +24,6 @@ TalkGenerator::TalkGenerator(QObject* parent): QObject(parent) { - } //! \brief Creates Talkfiles. @@ -257,16 +256,17 @@ void TalkGenerator::abort() m_abort = true; } -QString TalkGenerator::correctString(QString s) +QString TalkGenerator::correctString(const QString& s) { QString corrected = s; int i = 0; int max = m_corrections.size(); while(i < max) { corrected = corrected.replace(QRegularExpression(m_corrections.at(i).search, - m_corrections.at(i).modifier.contains("i") - ? QRegularExpression::NoPatternOption - : QRegularExpression::CaseInsensitiveOption), + (m_corrections.at(i).modifier.contains("i") + ? QRegularExpression::CaseInsensitiveOption + : QRegularExpression::NoPatternOption) + | QRegularExpression::UseUnicodePropertiesOption), m_corrections.at(i).replace); i++; } @@ -277,7 +277,7 @@ QString TalkGenerator::correctString(QString s) return corrected; } -void TalkGenerator::setLang(QString name) +void TalkGenerator::setLang(const QString& name) { m_lang = name; @@ -287,7 +287,7 @@ void TalkGenerator::setLang(QString name) correctionsFile.open(QIODevice::ReadOnly); QString engine = RbSettings::value(RbSettings::Tts).toString(); - TTSBase* tts = TTSBase::getTTS(this,RbSettings::value(RbSettings::Tts).toString()); + TTSBase* tts = TTSBase::getTTS(this, RbSettings::value(RbSettings::Tts).toString()); if(!tts) { LOG_ERROR() << "getting the TTS object failed!"; @@ -313,16 +313,16 @@ void TalkGenerator::setLang(QString name) if(items.size() < 6) continue; - QRegExp re_lang(items.at(0)); - QRegExp re_engine(items.at(1)); - QRegExp re_vendor(items.at(2)); - if(!re_lang.exactMatch(m_lang)) { + QRegularExpression re_lang(items.at(0)); + QRegularExpression re_engine(items.at(1)); + QRegularExpression re_vendor(items.at(2)); + if(!re_lang.match(m_lang).hasMatch()) { continue; } - if(!re_vendor.exactMatch(vendor)) { + if(!re_vendor.match(vendor).hasMatch()) { continue; } - if(!re_engine.exactMatch(engine)) { + if(!re_engine.match(engine).hasMatch()) { continue; } struct CorrectionItems co; diff --git a/utils/rbutilqt/base/talkgenerator.h b/utils/rbutilqt/base/talkgenerator.h index bb026190d8..7e25f8ce5e 100644 --- a/utils/rbutilqt/base/talkgenerator.h +++ b/utils/rbutilqt/base/talkgenerator.h @@ -53,11 +53,11 @@ public: TalkGenerator(QObject* parent); Status process(QList* list,int wavtrimth = -1); - QString correctString(QString s); + QString correctString(const QString& s); public slots: void abort(); - void setLang(QString name); + void setLang(const QString& name); signals: void done(bool); -- cgit v1.2.3