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(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(".*"), - QRegularExpression::DotMatchesEverythingOption)); + static QRegularExpression replyRegex(QStringLiteral(".*"), + 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; }