From 5222183ff388c8bce37d0e451d405e499fec8c22 Mon Sep 17 00:00:00 2001 From: Gavin Bises Date: Sun, 1 Feb 2015 12:05:29 -0500 Subject: [PATCH] Don't open new PM windows from unreg when ignoring unreg pm --- cockatrice/src/tab_supervisor.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/tab_supervisor.cpp b/cockatrice/src/tab_supervisor.cpp index 166a766a..2666b42f 100644 --- a/cockatrice/src/tab_supervisor.cpp +++ b/cockatrice/src/tab_supervisor.cpp @@ -446,11 +446,21 @@ void TabSupervisor::processGameEventContainer(const GameEventContainer &cont) void TabSupervisor::processUserMessageEvent(const Event_UserMessage &event) { - TabMessage *tab = messageTabs.value(QString::fromStdString(event.sender_name())); + QString senderName = QString::fromStdString(event.sender_name()); + TabMessage *tab = messageTabs.value(senderName); if (!tab) tab = messageTabs.value(QString::fromStdString(event.receiver_name())); - if (!tab) + if (!tab) { + UserListTWI *twi = tabUserLists->getAllUsersList()->getUsers().value(senderName); + if (twi) { + UserLevelFlags userLevel = UserLevelFlags(twi->getUserInfo().user_level()); + if (settingsCache->getIgnoreUnregisteredUserMessages() && + !userLevel.testFlag(ServerInfo_User::IsRegistered)) + // Flags are additive, so reg/mod/admin are all IsRegistered + return; + } tab = addMessageTab(QString::fromStdString(event.sender_name()), false); + } if (!tab) return; tab->processUserMessageEvent(event);