aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2020-12-24 18:20:04 +0100
committerKitsune Ral <Kitsune-Ral@users.sf.net>2020-12-24 22:29:29 +0100
commite617f0151df9a5edbefeb2c36d306a2989a278af (patch)
treec3c80fcab98a3bf3f0a017350f3f17956961fa98 /lib
parent3bfe40e40183821557845456349e1079af7b4e25 (diff)
downloadlibquotient-e617f0151df9a5edbefeb2c36d306a2989a278af.tar.gz
libquotient-e617f0151df9a5edbefeb2c36d306a2989a278af.zip
Fix clang-tidy/clazy warnings
(cherry picked from commit 0a2acd750a4155969092be674ed3dd9a71b2354f)
Diffstat (limited to 'lib')
-rw-r--r--lib/connection.cpp4
-rw-r--r--lib/converters.cpp4
-rw-r--r--lib/jobs/downloadfilejob.cpp2
-rw-r--r--lib/networkaccessmanager.cpp7
-rw-r--r--lib/room.cpp49
-rw-r--r--lib/uri.cpp8
-rw-r--r--lib/uriresolver.cpp2
-rw-r--r--lib/user.cpp4
-rw-r--r--lib/util.cpp5
9 files changed, 42 insertions, 43 deletions
diff --git a/lib/connection.cpp b/lib/connection.cpp
index 386c6564..b76ca691 100644
--- a/lib/connection.cpp
+++ b/lib/connection.cpp
@@ -930,8 +930,8 @@ void Connection::doInDirectChat(User* u,
// There can be more than one DC; find the first valid (existing and
// not left), and delete inexistent (forgotten?) ones along the way.
DirectChatsMap removals;
- for (auto it = std::as_const(d->directChats).find(u);
- it != d->directChats.end() && it.key() == u; ++it) {
+ for (auto it = d->directChats.constFind(u);
+ it != d->directChats.cend() && it.key() == u; ++it) {
const auto& roomId = *it;
if (auto r = room(roomId, JoinState::Join)) {
Q_ASSERT(r->id() == roomId);
diff --git a/lib/converters.cpp b/lib/converters.cpp
index e5236bb9..9f570087 100644
--- a/lib/converters.cpp
+++ b/lib/converters.cpp
@@ -32,9 +32,9 @@ QVariant JsonConverter<QVariant>::load(const QJsonValue& jv)
return jv.toVariant();
}
-QJsonObject JsonConverter<QVariantHash>::dump(const QVariantHash& map)
+QJsonObject JsonConverter<QVariantHash>::dump(const QVariantHash& vh)
{
- return QJsonObject::fromVariantHash(map);
+ return QJsonObject::fromVariantHash(vh);
}
QVariantHash JsonConverter<QVariantHash>::load(const QJsonValue& jv)
diff --git a/lib/jobs/downloadfilejob.cpp b/lib/jobs/downloadfilejob.cpp
index 7b4cf690..0011a97c 100644
--- a/lib/jobs/downloadfilejob.cpp
+++ b/lib/jobs/downloadfilejob.cpp
@@ -64,7 +64,7 @@ void DownloadFileJob::onSentRequest(QNetworkReply* reply)
return;
auto sizeHeader = reply->header(QNetworkRequest::ContentLengthHeader);
if (sizeHeader.isValid()) {
- auto targetSize = sizeHeader.value<qint64>();
+ auto targetSize = sizeHeader.toLongLong();
if (targetSize != -1)
if (!d->tempFile->resize(targetSize)) {
qCWarning(JOBS) << "Failed to allocate" << targetSize
diff --git a/lib/networkaccessmanager.cpp b/lib/networkaccessmanager.cpp
index b9037bcc..e8aa85df 100644
--- a/lib/networkaccessmanager.cpp
+++ b/lib/networkaccessmanager.cpp
@@ -52,9 +52,10 @@ static NetworkAccessManager* createNam()
auto nam = new NetworkAccessManager(QCoreApplication::instance());
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0))
// See #109; in newer Qt, bearer management is deprecated altogether
- nam->connect(nam, &QNetworkAccessManager::networkAccessibleChanged, [nam] {
- nam->setNetworkAccessible(QNetworkAccessManager::Accessible);
- });
+ NetworkAccessManager::connect(nam,
+ &QNetworkAccessManager::networkAccessibleChanged, [nam] {
+ nam->setNetworkAccessible(QNetworkAccessManager::Accessible);
+ });
#endif
return nam;
}
diff --git a/lib/room.cpp b/lib/room.cpp
index 5992a3ae..55e2931e 100644
--- a/lib/room.cpp
+++ b/lib/room.cpp
@@ -350,7 +350,7 @@ public:
*/
bool processReplacement(const RoomMessageEvent& newEvent);
- void setTags(TagsMap newTags);
+ void setTags(TagsMap&& newTags);
QJsonObject toJson() const;
@@ -1073,11 +1073,11 @@ void Room::setTags(TagsMap newTags, ActionScope applyOn)
if (propagate) {
for (auto* r = this; (r = r->successor(joinStates));)
- r->setTags(newTags, ActionScope::ThisRoomOnly);
+ r->setTags(d->tags, ActionScope::ThisRoomOnly);
}
}
-void Room::Private::setTags(TagsMap newTags)
+void Room::Private::setTags(TagsMap&& newTags)
{
emit q->tagsAboutToChange();
const auto keys = newTags.keys();
@@ -1192,8 +1192,8 @@ QString Room::fileNameToDownload(const QString& eventId) const
FileTransferInfo Room::fileTransferInfo(const QString& id) const
{
- auto infoIt = d->fileTransfers.find(id);
- if (infoIt == d->fileTransfers.end())
+ const auto infoIt = d->fileTransfers.constFind(id);
+ if (infoIt == d->fileTransfers.cend())
return {};
// FIXME: Add lib tests to make sure FileTransferInfo::status stays
@@ -1222,8 +1222,8 @@ QUrl Room::fileSource(const QString& id) const
return url;
// No urlToDownload means it's a pending or completed upload.
- auto infoIt = d->fileTransfers.find(id);
- if (infoIt != d->fileTransfers.end())
+ auto infoIt = d->fileTransfers.constFind(id);
+ if (infoIt != d->fileTransfers.cend())
return QUrl::fromLocalFile(infoIt->localFileInfo.absoluteFilePath());
qCWarning(MAIN) << "File source for identifier" << id << "not found";
@@ -1312,7 +1312,6 @@ void Room::handleRoomKeyEvent(const RoomKeyEvent& roomKeyEvent,
Q_UNUSED(roomKeyEvent)
Q_UNUSED(senderKey)
qCWarning(E2EE) << "End-to-end encryption (E2EE) support is turned off.";
- return;
#else // Quotient_E2EE_ENABLED
if (roomKeyEvent.algorithm() != MegolmV1AesSha2AlgoKey) {
qCWarning(E2EE) << "Ignoring unsupported algorithm"
@@ -1438,7 +1437,7 @@ Room::Private::moveEventsToTimeline(RoomEventsRange events,
}
const auto insertedSize = (index - baseIndex) * placement;
Q_ASSERT(insertedSize == int(events.size()));
- return insertedSize;
+ return Timeline::size_type(insertedSize);
}
QString Room::memberName(const QString& mxId) const
@@ -1654,8 +1653,8 @@ QString Room::retryMessage(const QString& txnId)
const auto it = findPendingEvent(txnId);
Q_ASSERT(it != d->unsyncedEvents.end());
qCDebug(EVENTS) << "Retrying transaction" << txnId;
- const auto& transferIt = d->fileTransfers.find(txnId);
- if (transferIt != d->fileTransfers.end()) {
+ const auto& transferIt = d->fileTransfers.constFind(txnId);
+ if (transferIt != d->fileTransfers.cend()) {
Q_ASSERT(transferIt->isUpload);
if (transferIt->status == FileTransferInfo::Completed) {
qCDebug(MESSAGES)
@@ -1752,7 +1751,8 @@ QString Room::postFile(const QString& plainText, const QUrl& localPath,
// to enable the preview while the event is pending.
uploadFile(txnId, localPath);
// Below, the upload job is used as a context object to clean up connections
- connect(this, &Room::fileTransferCompleted, d->fileTransfers[txnId].job,
+ const auto& transferJob = d->fileTransfers.value(txnId).job;
+ connect(this, &Room::fileTransferCompleted, transferJob,
[this, txnId](const QString& id, const QUrl&, const QUrl& mxcUri) {
if (id == txnId) {
auto it = findPendingEvent(txnId);
@@ -1771,7 +1771,7 @@ QString Room::postFile(const QString& plainText, const QUrl& localPath,
}
}
});
- connect(this, &Room::fileTransferCancelled, d->fileTransfers[txnId].job,
+ connect(this, &Room::fileTransferCancelled, transferJob,
[this, txnId](const QString& id) {
if (id == txnId) {
auto it = findPendingEvent(txnId);
@@ -1973,8 +1973,8 @@ void Room::uploadFile(const QString& id, const QUrl& localFilename,
void Room::downloadFile(const QString& eventId, const QUrl& localFilename)
{
- auto ongoingTransfer = d->fileTransfers.find(eventId);
- if (ongoingTransfer != d->fileTransfers.end()
+ if (auto ongoingTransfer = d->fileTransfers.constFind(eventId);
+ ongoingTransfer != d->fileTransfers.cend()
&& ongoingTransfer->status == FileTransferInfo::Started) {
qCWarning(MAIN) << "Transfer for" << eventId
<< "is ongoing; download won't start";
@@ -2031,8 +2031,8 @@ void Room::downloadFile(const QString& eventId, const QUrl& localFilename)
void Room::cancelFileTransfer(const QString& id)
{
- auto it = d->fileTransfers.find(id);
- if (it == d->fileTransfers.end()) {
+ const auto it = d->fileTransfers.constFind(id);
+ if (it == d->fileTransfers.cend()) {
qCWarning(MAIN) << "No information on file transfer" << id << "in room"
<< d->id;
return;
@@ -2134,8 +2134,8 @@ bool Room::Private::processRedaction(const RedactionEvent& redaction)
{
// Can't use findInTimeline because it returns a const iterator, and
// we need to change the underlying TimelineItem.
- const auto pIdx = eventsIndex.find(redaction.redactedEvent());
- if (pIdx == eventsIndex.end())
+ const auto pIdx = eventsIndex.constFind(redaction.redactedEvent());
+ if (pIdx == eventsIndex.cend())
return false;
Q_ASSERT(q->isValidIndex(*pIdx));
@@ -2205,8 +2205,8 @@ bool Room::Private::processReplacement(const RoomMessageEvent& newEvent)
{
// Can't use findInTimeline because it returns a const iterator, and
// we need to change the underlying TimelineItem.
- const auto pIdx = eventsIndex.find(newEvent.replacedEvent());
- if (pIdx == eventsIndex.end())
+ const auto pIdx = eventsIndex.constFind(newEvent.replacedEvent());
+ if (pIdx == eventsIndex.cend())
return false;
Q_ASSERT(q->isValidIndex(*pIdx));
@@ -2451,12 +2451,11 @@ Room::Changes Room::processStateEvent(const RoomEvent& e)
if (!e.isStateEvent())
return Change::NoChange;
- // Find a value (create empty if necessary) and get a reference to it
- // getCurrentState<> is not used here because it (creates and) returns
+ // Find a value (create an empty one if necessary) and get a reference
+ // to it. Can't use getCurrentState<>() because it (creates and) returns
// a stub if a value is not found, and what's needed here is a "real" event
// or nullptr.
- const auto*& curStateEvent =
- d->currentState[{ e.matrixType(), e.stateKey() }];
+ auto& curStateEvent = d->currentState[{ e.matrixType(), e.stateKey() }];
// Prepare for the state change
visit(e, [this, oldRme = static_cast<const RoomMemberEvent*>(curStateEvent)](
const RoomMemberEvent& rme) {
diff --git a/lib/uri.cpp b/lib/uri.cpp
index 0e2bcb87..e0912eb6 100644
--- a/lib/uri.cpp
+++ b/lib/uri.cpp
@@ -32,7 +32,7 @@ Uri::Uri(QByteArray primaryId, QByteArray secondaryId, QString query)
primaryType_ = Type(p.sigil);
auto safePrimaryId = primaryId.mid(1);
safePrimaryId.replace('/', "%2F");
- pathToBe = p.uriString + std::move(safePrimaryId);
+ pathToBe = p.uriString + safePrimaryId;
break;
}
if (!secondaryId.isEmpty()) {
@@ -42,12 +42,12 @@ Uri::Uri(QByteArray primaryId, QByteArray secondaryId, QString query)
}
auto safeSecondaryId = secondaryId.mid(1);
safeSecondaryId.replace('/', "%2F");
- pathToBe += "/event/" + std::move(safeSecondaryId);
+ pathToBe += "/event/" + safeSecondaryId;
}
setPath(pathToBe, QUrl::TolerantMode);
}
if (!query.isEmpty())
- setQuery(std::move(query));
+ setQuery(query);
}
static inline auto encodedPath(const QUrl& url)
@@ -156,7 +156,7 @@ QUrl Uri::toUrl(UriForm form) const
return {};
if (form == CanonicalUri || type() == NonMatrix)
- return *this;
+ return *this; // NOLINT(cppcoreguidelines-slicing): It's intentional
QUrl url;
url.setScheme("https");
diff --git a/lib/uriresolver.cpp b/lib/uriresolver.cpp
index ec30512c..27360bcc 100644
--- a/lib/uriresolver.cpp
+++ b/lib/uriresolver.cpp
@@ -75,6 +75,8 @@ private:
std::tuple<FnTs...> fns_;
};
+template <typename... FnTs>
+StaticUriDispatcher(FnTs&&... fns) -> StaticUriDispatcher<FnTs...>;
UriResolveResult Quotient::visitResource(
Connection* account, const Uri& uri,
diff --git a/lib/user.cpp b/lib/user.cpp
index 45a9c121..c399ce88 100644
--- a/lib/user.cpp
+++ b/lib/user.cpp
@@ -78,7 +78,7 @@ QString User::id() const { return d->id; }
bool User::isGuest() const
{
Q_ASSERT(!d->id.isEmpty() && d->id.startsWith('@'));
- auto it = std::find_if_not(d->id.begin() + 1, d->id.end(),
+ auto it = std::find_if_not(d->id.cbegin() + 1, d->id.cend(),
[](QChar c) { return c.isDigit(); });
Q_ASSERT(it != d->id.end());
return *it == ':';
@@ -138,7 +138,7 @@ inline bool User::doSetAvatar(SourceT&& source)
connect(j, &BaseJob::success, this,
[this, newUrl = QUrl(contentUri)] {
if (newUrl == d->defaultAvatar.url()) {
- d->defaultAvatar.updateUrl(move(newUrl));
+ d->defaultAvatar.updateUrl(newUrl);
emit defaultAvatarChanged();
} else
qCWarning(MAIN) << "User" << id()
diff --git a/lib/util.cpp b/lib/util.cpp
index 0c1c54ff..36015d7a 100644
--- a/lib/util.cpp
+++ b/lib/util.cpp
@@ -161,9 +161,6 @@ static_assert(std::is_same<fn_arg_t<Fo1>, int>(),
"Test fn_arg_t defaulting to first argument");
template <typename T>
-static QString ft(T&&)
-{
- return {};
-}
+static QString ft(T&&);
static_assert(std::is_same<fn_arg_t<decltype(ft<QString>)>, QString&&>(),
"Test function templates");