mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-21 09:05:10 -07:00
[Client] Prevent contacting users on the ignore list (#1249)
The ignore list silences incoming messages, but a user on it was still reachable: the context menu's chat item stayed enabled, private messages could be sent, and a chat tab could be opened for an ignored user. Make ignored users uncontactable: disable the chat item for them, refuse to deliver messages typed in an open PM tab with one, and refuse to open a new private chat tab with an ignored user (with a hint on how to undo the ignore).
This commit is contained in:
parent
0f003eabf9
commit
e3c03c14f3
3 changed files with 14 additions and 1 deletions
|
|
@ -439,7 +439,7 @@ void UserContextMenu::showContextMenu(const QPoint &pos,
|
|||
}
|
||||
}
|
||||
aDetails->setEnabled(true);
|
||||
aChat->setEnabled(anotherUser && online);
|
||||
aChat->setEnabled(anotherUser && online && !userListProxy->isUserIgnored(userName));
|
||||
aShowGames->setEnabled(online);
|
||||
aReport->setEnabled(anotherUser);
|
||||
aAddToBuddyList->setEnabled(anotherUser);
|
||||
|
|
|
|||
|
|
@ -98,6 +98,12 @@ void TabMessage::closeEvent(QCloseEvent *event)
|
|||
|
||||
void TabMessage::sendPrivateMessage(const QString &text)
|
||||
{
|
||||
if (tabSupervisor->getUserListManager()->isUserIgnored(getUserName())) {
|
||||
chatView->appendMessage(tr("You have ignored %1, your messages are not delivered.")
|
||||
.arg(QString::fromStdString(otherUserInfo->name())));
|
||||
return;
|
||||
}
|
||||
|
||||
Command_Message cmd;
|
||||
cmd.set_user_name(otherUserInfo->name());
|
||||
cmd.set_message(text.toStdString());
|
||||
|
|
|
|||
|
|
@ -1063,6 +1063,13 @@ TabMessage *TabSupervisor::addMessageTab(const QString &receiverName, bool focus
|
|||
return tab;
|
||||
}
|
||||
|
||||
if (focus && userListManager->isUserIgnored(receiverName)) {
|
||||
QMessageBox::information(
|
||||
this, tr("Ignored user"),
|
||||
tr("You have ignored %1. Remove them from your ignore list to open a private chat.").arg(receiverName));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
tab = new TabMessage(this, client, *userInfo, otherUser, userOnline);
|
||||
connect(tab, &TabMessage::talkClosing, this, &TabSupervisor::talkLeft);
|
||||
connect(tab, &TabMessage::maximizeClient, this, &TabSupervisor::maximizeMainWindow);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue