partially replaced obsolete qregexp - still stome places remain

This commit is contained in:
Martin Rotter 2019-04-10 10:52:12 +02:00
parent 45b29b8e33
commit 54ce2d6cf6
17 changed files with 60 additions and 53 deletions

View File

@ -15,9 +15,8 @@
#include <QThreadPool>
FeedDownloader::FeedDownloader(QObject* parent)
: QObject(parent), m_feeds(QList<Feed*>()), m_mutex(new QMutex()), m_threadPool(new QThreadPool(this)),
m_results(FeedDownloadResults()), m_feedsUpdated(0),
m_feedsUpdating(0), m_feedsOriginalCount(0) {
: QObject(parent), m_mutex(new QMutex()), m_threadPool(new QThreadPool(this)),
m_feedsUpdated(0), m_feedsUpdating(0), m_feedsOriginalCount(0) {
qRegisterMetaType<FeedDownloadResults>("FeedDownloadResults");
m_threadPool->setMaxThreadCount(2);
}
@ -35,7 +34,7 @@ bool FeedDownloader::isUpdateRunning() const {
void FeedDownloader::updateAvailableFeeds() {
foreach (const Feed* feed, m_feeds) {
CacheForServiceRoot* cache = dynamic_cast<CacheForServiceRoot*>(feed->getParentServiceRoot());
auto* cache = dynamic_cast<CacheForServiceRoot*>(feed->getParentServiceRoot());
if (cache != nullptr) {
qDebug("Saving cache for feed with DB ID %d and title '%s'.", feed->id(), qPrintable(feed->title()));
@ -130,8 +129,6 @@ void FeedDownloader::finalizeUpdate() {
emit updateFinished(m_results);
}
FeedDownloadResults::FeedDownloadResults() : m_updatedFeeds(QList<QPair<QString, int>>()) {}
QString FeedDownloadResults::overview(int how_many_feeds) const {
QStringList result;
@ -142,7 +139,7 @@ QString FeedDownloadResults::overview(int how_many_feeds) const {
QString res_str = result.join(QSL("\n"));
if (m_updatedFeeds.size() > how_many_feeds) {
res_str += QObject::tr("\n\n+ %n other feeds.", 0, m_updatedFeeds.size() - how_many_feeds);
res_str += QObject::tr("\n\n+ %n other feeds.", nullptr, m_updatedFeeds.size() - how_many_feeds);
}
return res_str;

View File

@ -16,8 +16,6 @@ class QMutex;
// Represents results of batch feed updates.
class FeedDownloadResults {
public:
explicit FeedDownloadResults();
QList<QPair<QString, int>> updatedFeeds() const;
QString overview(int how_many_feeds) const;

View File

@ -56,7 +56,7 @@ FeedsModel::~FeedsModel() {
}
QMimeData* FeedsModel::mimeData(const QModelIndexList& indexes) const {
QMimeData* mime_data = new QMimeData();
auto* mime_data = new QMimeData();
QByteArray encoded_data;
QDataStream stream(&encoded_data, QIODevice::WriteOnly);
@ -68,7 +68,7 @@ QMimeData* FeedsModel::mimeData(const QModelIndexList& indexes) const {
RootItem* item_for_index = itemForIndex(index);
if (item_for_index->kind() != RootItemKind::Root) {
stream << (quintptr) item_for_index;
stream << quintptr(item_for_index);
}
}
@ -81,6 +81,7 @@ QStringList FeedsModel::mimeTypes() const {
return QStringList() << QSL(MIME_TYPE_ITEM_POINTER);
}
typedef RootItem* RootItemPtr;
bool FeedsModel::dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column,
const QModelIndex& parent) {
Q_UNUSED(row)
@ -105,7 +106,7 @@ bool FeedsModel::dropMimeData(const QMimeData* data, Qt::DropAction action, int
quintptr pointer_to_item; stream >> pointer_to_item;
// We have item we want to drag, we also determine the target item.
RootItem* dragged_item = (RootItem*) pointer_to_item;
auto* dragged_item = RootItemPtr(pointer_to_item);
RootItem* target_item = itemForIndex(parent);
ServiceRoot* dragged_item_root = dragged_item->getParentServiceRoot();
ServiceRoot* target_item_root = target_item->getParentServiceRoot();
@ -190,7 +191,7 @@ QModelIndex FeedsModel::index(int row, int column, const QModelIndex& parent) co
RootItem* parent_item = itemForIndex(parent);
RootItem* child_item = parent_item->child(row);
if (child_item) {
if (child_item != nullptr) {
return createIndex(row, column, child_item);
}
else {

View File

@ -10,8 +10,7 @@
#include <QTimer>
FeedsProxyModel::FeedsProxyModel(FeedsModel* source_model, QObject* parent)
: QSortFilterProxyModel(parent), m_sourceModel(source_model), m_selectedItem(nullptr),
m_showUnreadOnly(false), m_hiddenIndices(QList<QPair<int, QModelIndex>>()) {
: QSortFilterProxyModel(parent), m_sourceModel(source_model), m_selectedItem(nullptr), m_showUnreadOnly(false) {
setObjectName(QSL("FeedsProxyModel"));
setSortRole(Qt::EditRole);
setSortCaseSensitivity(Qt::CaseInsensitive);
@ -28,10 +27,10 @@ FeedsProxyModel::~FeedsProxyModel() {
QModelIndexList FeedsProxyModel::match(const QModelIndex& start, int role, const QVariant& value, int hits, Qt::MatchFlags flags) const {
QModelIndexList result;
const uint match_type = flags & 0x0F;
const int match_type = flags & 0x0F;
const Qt::CaseSensitivity cs = Qt::CaseInsensitive;
const bool recurse = flags & Qt::MatchRecursive;
const bool wrap = flags & Qt::MatchWrap;
const bool recurse = (flags& Qt::MatchRecursive) > 0;
const bool wrap = (flags& Qt::MatchWrap) > 0;
const bool all_hits = (hits == -1);
QString entered_text;
const QModelIndex p = parent(start);
@ -66,14 +65,18 @@ QModelIndexList FeedsProxyModel::match(const QModelIndex& start, int role, const
switch (match_type) {
case Qt::MatchRegExp:
if (QRegExp(entered_text, cs).exactMatch(item_text)) {
if (QRegularExpression(entered_text,
QRegularExpression::PatternOption::CaseInsensitiveOption |
QRegularExpression::PatternOption::UseUnicodePropertiesOption).match(item_text).hasMatch()) {
result.append(idx);
}
break;
case Qt::MatchWildcard:
if (QRegExp(entered_text, cs, QRegExp::Wildcard).exactMatch(item_text)) {
if (QRegularExpression(QRegularExpression::wildcardToRegularExpression(entered_text),
QRegularExpression::PatternOption::CaseInsensitiveOption |
QRegularExpression::PatternOption::UseUnicodePropertiesOption).match(item_text).hasMatch()) {
result.append(idx);
}
@ -112,8 +115,8 @@ QModelIndexList FeedsProxyModel::match(const QModelIndex& start, int role, const
if (recurse && hasChildren(idx)) {
result +=
match(index(0, idx.column(), idx), role, (entered_text.isEmpty() ? value : entered_text), (all_hits ? -1 : hits - result.count()),
flags);
match(index(0, idx.column(), idx), role, (entered_text.isEmpty() ? value : entered_text),
(all_hits ? -1 : hits - result.count()), flags);
}
}

View File

@ -6,7 +6,7 @@
#include <QVariant>
Enclosure::Enclosure(const QString& url, const QString& mime) : m_url(url), m_mimeType(mime) {}
Enclosure::Enclosure(QString url, QString mime) : m_url(std::move(url)), m_mimeType(std::move(mime)) {}
QList<Enclosure> Enclosures::decodeEnclosuresFromString(const QString& enclosures_data) {
QList<Enclosure> enclosures;

View File

@ -13,7 +13,7 @@
// Represents single enclosure.
struct Enclosure {
public:
explicit Enclosure(const QString& url = QString(), const QString& mime = QString());
explicit Enclosure(QString url = QString(), QString mime = QString());
QString m_url;
QString m_mimeType;
@ -51,7 +51,7 @@ class Message {
// Is true if "created" date was obtained directly
// from the feed, otherwise is false
bool m_createdFromFeed;
bool m_createdFromFeed = false;
friend inline bool operator==(const Message& lhs, const Message& rhs) {
return lhs.m_accountId == rhs.m_accountId && lhs.m_id == rhs.m_id;

View File

@ -78,7 +78,7 @@ QModelIndexList MessagesProxyModel::mapListFromSource(const QModelIndexList& ind
QModelIndexList MessagesProxyModel::match(const QModelIndex& start, int role,
const QVariant& entered_value, int hits, Qt::MatchFlags flags) const {
QModelIndexList result;
const uint match_type = flags & 0x0F;
const int match_type = flags & 0x0F;
const Qt::CaseSensitivity case_sensitivity = Qt::CaseInsensitive;
const bool wrap = flags & Qt::MatchWrap;
const bool all_hits = (hits == -1);
@ -113,14 +113,18 @@ QModelIndexList MessagesProxyModel::match(const QModelIndex& start, int role,
switch (match_type) {
case Qt::MatchRegExp:
if (QRegExp(entered_text, case_sensitivity).exactMatch(item_text)) {
if (QRegularExpression(entered_text,
QRegularExpression::PatternOption::CaseInsensitiveOption |
QRegularExpression::PatternOption::UseUnicodePropertiesOption).match(item_text).hasMatch()) {
result.append(idx);
}
break;
case Qt::MatchWildcard:
if (QRegExp(entered_text, case_sensitivity, QRegExp::Wildcard).exactMatch(item_text)) {
if (QRegularExpression(QRegularExpression::wildcardToRegularExpression(entered_text),
QRegularExpression::PatternOption::CaseInsensitiveOption |
QRegularExpression::PatternOption::UseUnicodePropertiesOption).match(item_text).hasMatch()) {
result.append(idx);
}

View File

@ -68,7 +68,8 @@ void FormSettings::applySettings() {
}
if (!panels_for_restart.isEmpty()) {
const QStringList changed_settings_description = panels_for_restart.replaceInStrings(QRegExp(QSL("^")), QString::fromUtf8(""));
const QStringList changed_settings_description = panels_for_restart.replaceInStrings(QRegularExpression(QSL("^")),
QString::fromUtf8(""));
const QMessageBox::StandardButton clicked_button = MessageBox::show(this,
QMessageBox::Question,
tr("Critical settings were changed"),
@ -101,7 +102,8 @@ void FormSettings::cancelSettings() {
reject();
}
else {
const QStringList changed_settings_description = changed_panels.replaceInStrings(QRegExp(QSL("^")), QString::fromUtf8(""));
const QStringList changed_settings_description = changed_panels.replaceInStrings(QRegularExpression(QSL("^")),
QString::fromUtf8(""));
if (MessageBox::show(this,
QMessageBox::Critical,

View File

@ -241,15 +241,16 @@ QString MessagePreviewer::prepareHtmlForMessage(const Message& message) {
html += QString("[%2] <a href=\"%1\">%1</a><br/>").arg(enc_url, enc.m_mimeType);
}
int offset = 0;
QRegExp imgTagRegex("\\<img[^\\>]*src\\s*=\\s*\"([^\"]*)\"[^\\>]*\\>", Qt::CaseInsensitive);
QRegularExpression imgTagRegex("\\<img[^\\>]*src\\s*=\\s*\"([^\"]*)\"[^\\>]*\\>",
QRegularExpression::PatternOption::CaseInsensitiveOption |
QRegularExpression::PatternOption::InvertedGreedinessOption);
QRegularExpressionMatchIterator i = imgTagRegex.globalMatch(message.m_contents);
imgTagRegex.setMinimal(true);
while (i.hasNext()) {
QRegularExpressionMatch match = i.next();
while ((offset = imgTagRegex.indexIn(message.m_contents, offset)) != -1) {
m_pictures.append(imgTagRegex.cap(1));
offset += imgTagRegex.matchedLength();
html += QString("[%2] <a href=\"%1\">%1</a><br/>").arg(imgTagRegex.cap(1), tr("image"));
m_pictures.append(match.captured(1));
html += QString("[%1] <a href=\"%2\">%2</a><br/>").arg(tr("image"), match.captured(1));
}
html += "<br/>";

View File

@ -21,13 +21,14 @@ double TimeSpinBox::valueFromText(const QString& text) const {
return value;
}
else {
QRegExp rx("\\b[0-9]{1,}\\b");
QRegularExpression rx("\\b[0-9]{1,}\\b");
QStringList numbers;
int pos = 0;
int count = 0;
QRegularExpressionMatchIterator i = rx.globalMatch(text);
while ((pos = rx.indexIn(text, pos)) != -1) {
numbers.append(rx.cap(0));
while (i.hasNext()) {
numbers.append(i.next().captured());
if (pos >= 0) {
++pos;
@ -45,7 +46,7 @@ double TimeSpinBox::valueFromText(const QString& text) const {
}
QString TimeSpinBox::textFromValue(double val) const {
int minutes_total = (int)val;
int minutes_total = int(val);
int minutes_val = minutes_total % 60;
int hours_val = (minutes_total - minutes_val) / 60;
QString hours = tr("%n hour(s)", "", hours_val);

View File

@ -55,8 +55,8 @@ void IconFactory::setupSearchPaths() {
QIcon::setThemeSearchPaths(QIcon::themeSearchPaths() << APP_THEME_PATH);
qDebug("Available icon theme paths: %s.",
qPrintable(QIcon::themeSearchPaths()
.replaceInStrings(QRegExp(QSL("^|$")), QSL("\'"))
.replaceInStrings(QRegExp(QSL("/")), QDir::separator()).join(QSL(", "))));
.replaceInStrings(QRegularExpression(QSL("^|$")), QSL("\'"))
.replaceInStrings(QRegularExpression(QSL("/")), QDir::separator()).join(QSL(", "))));
}
void IconFactory::setCurrentIconTheme(const QString& theme_name) {
@ -75,8 +75,8 @@ void IconFactory::loadCurrentIconTheme() {
// Display list of installed themes.
qDebug("Installed icon themes are: %s.",
qPrintable(QStringList(installed_themes)
.replaceInStrings(QRegExp(QSL("^|$")), QSL("\'"))
.replaceInStrings(QRegExp(QSL("^\\'$")), QSL("\'\'")).join(QSL(", "))));
.replaceInStrings(QRegularExpression(QSL("^|$")), QSL("\'"))
.replaceInStrings(QRegularExpression(QSL("^\\'$")), QSL("\'\'")).join(QSL(", "))));
if (installed_themes.contains(theme_name_from_settings)) {
// Desired icon theme is installed and can be loaded.

View File

@ -70,7 +70,7 @@ void Downloader::manipulateData(const QString& url,
if (non_const_url.startsWith(URI_SCHEME_FEED)) {
qDebug("Replacing URI schemes for '%s'.", qPrintable(non_const_url));
request.setUrl(non_const_url.replace(QRegExp(QString('^') + URI_SCHEME_FEED), QString(URI_SCHEME_HTTP)));
request.setUrl(non_const_url.replace(QRegularExpression(QString('^') + URI_SCHEME_FEED), QString(URI_SCHEME_HTTP)));
}
else {
request.setUrl(non_const_url);

View File

@ -7,7 +7,6 @@
#include <QDesktopServices>
#include <QProcess>
#include <QRegExp>
#include <QUrl>
#if defined (USE_WEBENGINE)
@ -67,7 +66,7 @@ bool WebFactory::openUrlInExternalBrowser(const QString& url) const {
}
QString WebFactory::stripTags(QString text) {
return text.remove(QRegExp(QSL("<[^>]*>")));
return text.remove(QRegularExpression(QSL("<[^>]*>")));
}
QString WebFactory::escapeHtml(const QString& html) {

View File

@ -41,6 +41,7 @@
#include "qtlocalpeer.h"
#include <QCoreApplication>
#include <QDataStream>
#include <QRegularExpression>
#include <QTime>
#if defined(Q_OS_WIN)
@ -81,7 +82,7 @@ QtLocalPeer::QtLocalPeer(QObject* parent, const QString& appId)
prefix = id.section(QLatin1Char('/'), -1);
}
prefix.remove(QRegExp("[^a-zA-Z]"));
prefix.remove(QRegularExpression("[^a-zA-Z]"));
prefix.truncate(6);
QByteArray idc = id.toUtf8();
quint16 idNum = qChecksum(idc.constData(), idc.size());

View File

@ -185,10 +185,10 @@ void Feed::run() {
msgs[i].m_title = QUrl::fromPercentEncoding(msgs[i].m_title.toUtf8())
// Replace all continuous white space.
.replace(QRegExp(QSL("[\\s]{2,}")), QSL(" "))
.replace(QRegularExpression(QSL("[\\s]{2,}")), QSL(" "))
// Remove all newlines and leading white space.
.remove(QRegExp(QSL("([\\n\\r])|(^\\s)")));
.remove(QRegularExpression(QSL("([\\n\\r])|(^\\s)")));
}
emit messagesObtained(msgs, error_during_obtaining);

View File

@ -107,7 +107,7 @@ void FormFeedDetails::onDescriptionChanged(const QString& new_description) {
}
void FormFeedDetails::onUrlChanged(const QString& new_url) {
if (QRegExp(URL_REGEXP).exactMatch(new_url)) {
if (QRegularExpression(URL_REGEXP).match(new_url).hasMatch()) {
// New url is well-formed.
m_ui->m_txtUrl->setStatus(LineEditWithStatus::Ok, tr("The URL is ok."));
}

View File

@ -135,7 +135,7 @@ void FormEditGmailAccount::onAuthError(const QString& error, const QString& deta
void FormEditGmailAccount::onAuthGranted() {
m_ui.m_lblTestResult->setStatus(WidgetWithStatus::StatusType::Ok,
tr("Tested successfully.You may be prompted to login once more."),
tr("Tested successfully. You may be prompted to login once more."),
tr("Your access was approved."));
}