diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index ecb5ffd0..63f20752 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -318,18 +318,6 @@ MainWindow::setWindowTitle(int notificationCount)
QQuickView::setTitle(name);
}
-bool
-MainWindow::event(QEvent *event)
-{
- auto type = event->type();
-
- if (type == QEvent::Close) {
- closeEvent(static_cast<QCloseEvent *>(event));
- }
-
- return QQuickView::event(event);
-}
-
// HACK: https://bugreports.qt.io/browse/QTBUG-83972, qtwayland cannot auto hide menu
void
MainWindow::mousePressEvent(QMouseEvent *event)
@@ -403,6 +391,7 @@ MainWindow::closeEvent(QCloseEvent *event)
if (!qApp->isSavingSession() && isVisible() && pageSupportsTray() && userSettings_->tray()) {
event->ignore();
hide();
+ return;
}
}
diff --git a/src/MainWindow.h b/src/MainWindow.h
index 08ffcbba..543b0f69 100644
--- a/src/MainWindow.h
+++ b/src/MainWindow.h
@@ -64,8 +64,7 @@ public:
QString focusedRoom() const;
protected:
- void closeEvent(QCloseEvent *event);
- bool event(QEvent *event) override;
+ void closeEvent(QCloseEvent *event) override;
// HACK: https://bugreports.qt.io/browse/QTBUG-83972, qtwayland cannot auto hide menu
void mousePressEvent(QMouseEvent *) override;
diff --git a/src/Utils.cpp b/src/Utils.cpp
index 2249379d..8ff8cec6 100644
--- a/src/Utils.cpp
+++ b/src/Utils.cpp
@@ -66,9 +66,9 @@ utils::stripReplyFromBody(const std::string &bodyi)
if (body.startsWith(QLatin1String("> <"))) {
auto segments = body.split('\n');
while (!segments.isEmpty() && segments.begin()->startsWith('>'))
- segments.erase(segments.begin());
+ segments.erase(segments.cbegin());
if (!segments.empty() && segments.first().isEmpty())
- segments.erase(segments.begin());
+ segments.erase(segments.cbegin());
body = segments.join('\n');
}
@@ -80,8 +80,9 @@ std::string
utils::stripReplyFromFormattedBody(const std::string &formatted_bodyi)
{
QString formatted_body = QString::fromStdString(formatted_bodyi);
- formatted_body.remove(QRegularExpression(QStringLiteral("<mx-reply>.*</mx-reply>"),
- QRegularExpression::DotMatchesEverythingOption));
+ static QRegularExpression replyRegex(QStringLiteral("<mx-reply>.*</mx-reply>"),
+ QRegularExpression::DotMatchesEverythingOption);
+ formatted_body.remove(replyRegex);
formatted_body.replace(QLatin1String("@room"), QString::fromUtf8("@\u2060room"));
return formatted_body.toStdString();
}
@@ -409,9 +410,10 @@ utils::linkifyMessage(const QString &body)
// Convert to valid XML.
auto doc = body;
doc.replace(conf::strings::url_regex, conf::strings::url_html);
- doc.replace(
- QRegularExpression(QStringLiteral("\\b(?<![\"'])(?>(matrix:[\\S]{5,}))(?![\"'])\\b")),
- conf::strings::url_html);
+
+ static QRegularExpression matrixURIRegex(
+ QStringLiteral("\\b(?<![\"'])(?>(matrix:[\\S]{5,}))(?![\"'])\\b"));
+ doc.replace(matrixURIRegex, conf::strings::url_html);
return doc;
}
|