Commit 9282ef7a authored by Laurent Montel's avatar Laurent Montel 😁
Browse files

Use qAsConst

parent b1d00e1c
......@@ -18,6 +18,7 @@
*/
#include "filteractionjob_p.h"
#include "helper_p.h"
#include <collection.h>
#include <itemfetchjob.h>
......@@ -70,7 +71,7 @@ void FilterActionJob::Private::traverseItems()
{
Q_ASSERT(functor);
qCDebug(MAILTRANSPORT_LOG) << "Traversing" << items.count() << "items.";
foreach (const Item &item, items) {
for (const Item &item : qAsConst(items)) {
if (functor->itemAccepted(item)) {
functor->itemAction(item, q);
qCDebug(MAILTRANSPORT_LOG) << "Added subjob for item" << item.id();
......
/*
Copyright (c) 2017 Laurent Montel <montel@kde.org>
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
*/
#ifndef _HELPER_H
#define _HELPER_H
#include <qglobal.h>
#if QT_VERSION < QT_VERSION_CHECK(5,7,0)
template <typename... Args>
struct QNonConstOverload
{
template <typename R, typename T>
Q_DECL_CONSTEXPR auto operator()(R (T::*ptr)(Args...)) const Q_DECL_NOTHROW -> decltype(ptr)
{ return ptr; }
template <typename R, typename T>
static Q_DECL_CONSTEXPR auto of(R (T::*ptr)(Args...)) Q_DECL_NOTHROW -> decltype(ptr)
{ return ptr; }
};
template <typename... Args>
struct QConstOverload
{
template <typename R, typename T>
Q_DECL_CONSTEXPR auto operator()(R (T::*ptr)(Args...) const) const Q_DECL_NOTHROW -> decltype(ptr)
{ return ptr; }
template <typename R, typename T>
static Q_DECL_CONSTEXPR auto of(R (T::*ptr)(Args...) const) Q_DECL_NOTHROW -> decltype(ptr)
{ return ptr; }
};
template <typename... Args>
struct QOverload : QConstOverload<Args...>, QNonConstOverload<Args...>
{
using QConstOverload<Args...>::of;
using QConstOverload<Args...>::operator();
using QNonConstOverload<Args...>::of;
using QNonConstOverload<Args...>::operator();
template <typename R>
Q_DECL_CONSTEXPR auto operator()(R (*ptr)(Args...)) const Q_DECL_NOTHROW -> decltype(ptr)
{ return ptr; }
template <typename R>
static Q_DECL_CONSTEXPR auto of(R (*ptr)(Args...)) Q_DECL_NOTHROW -> decltype(ptr)
{ return ptr; }
};
namespace QtPrivate
{
template <typename T> struct QAddConst {
typedef const T Type;
};
}
// this adds const to non-const objects (like std::as_const)
template <typename T>
Q_DECL_CONSTEXPR typename QtPrivate::QAddConst<T>::Type &qAsConst(T &t) Q_DECL_NOTHROW { return t; }
// prevent rvalue arguments:
template <typename T>
void qAsConst(const T &&) Q_DECL_EQ_DELETE;
#endif
#endif
......@@ -20,6 +20,7 @@
*/
#include "sentactionattribute.h"
#include "helper_p.h"
#include <QtCore/QDataStream>
#include <QtCore/QSharedData>
......@@ -135,7 +136,7 @@ QByteArray SentActionAttribute::serialized() const
{
QVariantList list;
list.reserve(d->mActions.count());
foreach (const Action &action, d->mActions) {
for (const Action &action : qAsConst(d->mActions)) {
QVariantMap map;
map.insert(QString::number(action.type()), action.value());
......@@ -160,7 +161,7 @@ void SentActionAttribute::deserialize(const QByteArray &data)
QVariantList list;
stream >> list;
foreach (const QVariant &variant, list) {
for (const QVariant &variant : qAsConst(list)) {
const QVariantMap map = variant.toMap();
QMap<QString, QVariant>::const_iterator it = map.cbegin();
const QMap<QString, QVariant>::const_iterator itEnd = map.cend();
......
......@@ -26,6 +26,7 @@
#include "smtpconfigwidget.h"
#include "ui_smtpsettings.h"
#include "helper_p.h"
#include "transportconfigwidget_p.h"
#include "transport.h"
......@@ -90,7 +91,7 @@ public:
}
ui.authCombo->clear();
foreach (int authType, capa) {
for (int authType : qAsConst(capa)) {
addAuthenticationItem(ui.authCombo, authType);
}
......
......@@ -155,13 +155,13 @@ void SmtpJob::startSmtpJob()
destinationQuery.addQueryItem(QStringLiteral("headers"), QStringLiteral("0"));
destinationQuery.addQueryItem(QStringLiteral("from"), sender());
foreach (const QString &str, to()) {
for (const QString &str : to()) {
destinationQuery.addQueryItem(QStringLiteral("to"), str);
}
foreach (const QString &str, cc()) {
for (const QString &str : cc()) {
destinationQuery.addQueryItem(QStringLiteral("cc"), str);
}
foreach (const QString &str, bcc()) {
for (const QString &str : bcc()) {
destinationQuery.addQueryItem(QStringLiteral("bcc"), str);
}
......
......@@ -30,6 +30,7 @@
#include "transportconfigdialog.h"
#include "transportconfigwidget.h"
#include "smtpconfigwidget.h"
#include "helper_p.h"
#include <QApplication>
#include <QtDBus/QDBusConnection>
......@@ -431,8 +432,8 @@ void TransportManagerPrivate::readConfig()
transports.clear();
QRegExp re(QStringLiteral("^Transport (.+)$"));
QStringList groups = config->groupList().filter(re);
foreach (const QString &s, groups) {
const QStringList groups = config->groupList().filter(re);
for (const QString &s : groups) {
if (re.indexIn(s) == -1) {
continue;
}
......@@ -558,7 +559,7 @@ int TransportManagerPrivate::createId() const
{
QList<int> usedIds;
usedIds.reserve(1 + transports.count());
foreach (Transport *t, transports) {
for (Transport *t : qAsConst(transports)) {
usedIds << t->id();
}
usedIds << 0; // 0 is default for unknown
......@@ -618,7 +619,7 @@ void TransportManager::loadPasswords()
// flush the wallet queue
const QList<TransportJob *> copy = d->walletQueue;
d->walletQueue.clear();
foreach (TransportJob *job, copy) {
for (TransportJob *job : copy) {
job->start();
}
......@@ -708,7 +709,7 @@ void TransportManagerPrivate::migrateToWallet()
// check if migration is needed
QStringList names;
foreach (Transport *t, transports) {
for (Transport *t : qAsConst(transports)) {
if (t->needsWalletMigration()) {
names << t->name();
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment