diff --git a/imports/Spectral/Dialog/AccountDetailDialog.qml b/imports/Spectral/Dialog/AccountDetailDialog.qml index 78f9f113c..efce8f041 100644 --- a/imports/Spectral/Dialog/AccountDetailDialog.qml +++ b/imports/Spectral/Dialog/AccountDetailDialog.qml @@ -44,6 +44,12 @@ Dialog { Menu { id: contextMenu + MenuItem { + text: "Mark all as read" + + onClicked: spectralController.markAllMessagesAsRead(connection) + } + MenuItem { text: "Logout" diff --git a/src/controller.cpp b/src/controller.cpp index 77b52991c..8b5d85e35 100644 --- a/src/controller.cpp +++ b/src/controller.cpp @@ -384,3 +384,9 @@ void Controller::changeAvatar(Connection* conn, QUrl localFile) { }); } } + +void Controller::markAllMessagesAsRead(Connection* conn) { + for (auto room : conn->roomMap().values()) { + room->markAllMessagesAsRead(); + } +} diff --git a/src/controller.h b/src/controller.h index 904b38de6..11f6e0541 100644 --- a/src/controller.h +++ b/src/controller.h @@ -118,6 +118,7 @@ class Controller : public QObject { void createDirectChat(Connection* c, const QString& userID); void playAudio(QUrl localFile); void changeAvatar(Connection* conn, QUrl localFile); + void markAllMessagesAsRead(Connection* conn); }; #endif // CONTROLLER_H