summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/MainWindow.cpp13
-rw-r--r--src/MainWindow.h3
-rw-r--r--src/Utils.cpp16
3 files changed, 11 insertions, 21 deletions
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;
 }