aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/room.cpp8
-rw-r--r--lib/room.h2
-rw-r--r--lib/uri.cpp10
3 files changed, 12 insertions, 8 deletions
diff --git a/lib/room.cpp b/lib/room.cpp
index abaf50b7..c314fc72 100644
--- a/lib/room.cpp
+++ b/lib/room.cpp
@@ -2962,12 +2962,16 @@ bool MemberSorter::operator()(User* u1, User* u2) const
return operator()(u1, room->disambiguatedMemberName(u2->id()));
}
-bool MemberSorter::operator()(User* u1, const QString& u2name) const
+bool MemberSorter::operator()(User* u1, QStringView u2name) const
{
auto n1 = room->disambiguatedMemberName(u1->id());
if (n1.startsWith('@'))
n1.remove(0, 1);
- auto n2 = u2name.midRef(u2name.startsWith('@') ? 1 : 0);
+ const auto n2 = u2name.mid(u2name.startsWith('@') ? 1 : 0)
+#if QT_VERSION_MAJOR < 6
+ .toString() // Qt 5 doesn't have QStringView::localeAwareCompare
+#endif
+ ;
return n1.localeAwareCompare(n2) < 0;
}
diff --git a/lib/room.h b/lib/room.h
index a8275ce9..26d0121e 100644
--- a/lib/room.h
+++ b/lib/room.h
@@ -754,7 +754,7 @@ public:
explicit MemberSorter(const Room* r) : room(r) {}
bool operator()(User* u1, User* u2) const;
- bool operator()(User* u1, const QString& u2name) const;
+ bool operator()(User* u1, QStringView u2name) const;
template <typename ContT, typename ValT>
typename ContT::size_type lowerBoundIndex(const ContT& c, const ValT& v) const
diff --git a/lib/uri.cpp b/lib/uri.cpp
index 291bfcae..d8624796 100644
--- a/lib/uri.cpp
+++ b/lib/uri.cpp
@@ -70,7 +70,7 @@ static QString pathSegment(const QUrl& url, int which)
encodedPath(url).section('/', which, which).toUtf8());
}
-static auto decodeFragmentPart(const QStringRef& part)
+static auto decodeFragmentPart(QStringView part)
{
return QUrl::fromPercentEncoding(part.toLatin1()).toUtf8();
}
@@ -98,7 +98,7 @@ Uri::Uri(QUrl url) : QUrl(std::move(url))
if (scheme() == "matrix") {
// Check sanity as per https://github.com/matrix-org/matrix-doc/pull/2312
const auto& urlPath = encodedPath(*this);
- const auto& splitPath = urlPath.splitRef('/');
+ const auto& splitPath = urlPath.split('/');
switch (splitPath.size()) {
case 2:
break;
@@ -128,9 +128,9 @@ Uri::Uri(QUrl url) : QUrl(std::move(url))
// so force QUrl to decode everything.
auto f = fragment(QUrl::EncodeUnicode);
if (auto&& m = MatrixToUrlRE.match(f); m.hasMatch())
- *this = Uri { decodeFragmentPart(m.capturedRef("main")),
- decodeFragmentPart(m.capturedRef("sec")),
- decodeFragmentPart(m.capturedRef("query")) };
+ *this = Uri { decodeFragmentPart(m.capturedView(u"main")),
+ decodeFragmentPart(m.capturedView(u"sec")),
+ decodeFragmentPart(m.capturedView(u"query")) };
}
}