Show chat alerts in icon tray only if not already seen

This commit is contained in:
David Rowe 2014-10-14 11:08:24 -07:00
parent 5151563b79
commit a619d0460d

View file

@ -371,7 +371,18 @@ void ChatWindow::messageReceived(const QXmppMessage& message) {
}
QRegularExpression usernameMention(mentionRegex.arg(AccountManager::getInstance().getAccountInfo().getUsername()));
if (isHidden() && message.body().contains(usernameMention)) {
if (message.body().contains(usernameMention)) {
// Don't show messages already seen in icon tray at start-up.
QSettings* settings = Application::getInstance()->lockSettings();
bool showMessage = settings->value("usernameMentionTimestamp").toDateTime() < _lastMessageStamp;
if (showMessage) {
settings->setValue("usernameMentionTimestamp", _lastMessageStamp);
}
Application::getInstance()->unlockSettings();
if (isHidden() && showMessage) {
if (_effectPlayer.state() != QMediaPlayer::PlayingState) {
// get random sound
QFileInfo inf = QFileInfo(Application::resourcesPath() +
@ -384,6 +395,7 @@ void ChatWindow::messageReceived(const QXmppMessage& message) {
_trayIcon.show();
_trayIcon.showMessage(windowTitle(), message.body());
}
}
}
#endif // HAVE_QXMPP