mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 11:00:48 +03:00
Merge pull request #1341 from Decodetalkers/ft_clean_notify
clean all notifications if exit on linux
This commit is contained in:
commit
539db70fd5
5 changed files with 23 additions and 0 deletions
|
@ -1648,3 +1648,11 @@ ChatPage::isRoomActive(const QString &room_id)
|
|||
return QGuiApplication::focusWindow() && QGuiApplication::focusWindow()->isActive() &&
|
||||
MainWindow::instance()->windowForRoom(room_id) == QGuiApplication::focusWindow();
|
||||
}
|
||||
|
||||
void
|
||||
ChatPage::removeAllNotifications()
|
||||
{
|
||||
#if defined (Q_OS_LINUX)
|
||||
notificationsManager->closeAllNotifications();
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -84,6 +84,8 @@ public:
|
|||
return pushrules;
|
||||
}
|
||||
|
||||
void removeAllNotifications();
|
||||
|
||||
public slots:
|
||||
bool handleMatrixUri(QString uri);
|
||||
bool handleMatrixUri(const QUrl &uri);
|
||||
|
|
|
@ -350,6 +350,7 @@ main(int argc, char *argv[])
|
|||
w.show();
|
||||
|
||||
QObject::connect(&app, &QApplication::aboutToQuit, &w, [&w]() {
|
||||
ChatPage::instance()->removeAllNotifications();
|
||||
w.saveCurrentWindowSize();
|
||||
if (http::client() != nullptr) {
|
||||
nhlog::net()->debug("shutting down all I/O threads & open connections");
|
||||
|
|
|
@ -55,6 +55,9 @@ public slots:
|
|||
#if defined(NHEKO_DBUS_SYS)
|
||||
public:
|
||||
void closeNotifications(QString roomId);
|
||||
#if defined(Q_OS_LINUX)
|
||||
void closeAllNotifications();
|
||||
#endif
|
||||
|
||||
private:
|
||||
QDBusInterface dbus;
|
||||
|
|
|
@ -271,3 +271,12 @@ NotificationsManager::notificationClosed(uint id, uint reason)
|
|||
Q_UNUSED(reason);
|
||||
notificationIds.remove(id);
|
||||
}
|
||||
|
||||
void
|
||||
NotificationsManager::closeAllNotifications()
|
||||
{
|
||||
for (auto id : notificationIds.keys()) {
|
||||
closeNotification(id);
|
||||
notificationIds.remove(id);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue