chatlobby id context menu - fix display conditions

This commit is contained in:
RetroPooh 2017-01-12 16:26:06 +03:00
parent 36dbdee409
commit 10ba3a6364

View File

@ -233,40 +233,33 @@ void ChatLobbyDialog::participantsTreeWidgetCustomPopupMenu(QPoint)
contextMnu.addAction(banAct); contextMnu.addAction(banAct);
contextMnu.addAction(showinpeopleAct); contextMnu.addAction(showinpeopleAct);
distantChatAct->setEnabled(false);
sendMessageAct->setEnabled(false);
muteAct->setCheckable(true); muteAct->setCheckable(true);
muteAct->setEnabled(false); muteAct->setEnabled(false);
muteAct->setChecked(false); muteAct->setChecked(false);
votePositiveAct->setEnabled(false); votePositiveAct->setEnabled(false);
voteNeutralAct->setEnabled(false); voteNeutralAct->setEnabled(false);
banAct->setEnabled(false); banAct->setEnabled(false);
showinpeopleAct->setEnabled(true); if(selectedItems.count()==1)
if (selectedItems.size())
{ {
sendMessageAct->setEnabled(true);
showinpeopleAct->setEnabled(true);
RsGxsId nickName; RsGxsId nickName;
rsMsgs->getIdentityForChatLobby(lobbyId, nickName); rsMsgs->getIdentityForChatLobby(lobbyId, nickName);
if(RsGxsId(selectedItems.at(0)->text(COLUMN_ID).toStdString())!=nickName)
if(selectedItems.count()>1 || (RsGxsId(selectedItems.at(0)->text(COLUMN_ID).toStdString())!=nickName))
{ {
muteAct->setEnabled(true); distantChatAct->setEnabled(true);
votePositiveAct->setEnabled(true);
voteNeutralAct->setEnabled(true);
banAct->setEnabled(true);
QList<QTreeWidgetItem*>::iterator item;
for (item = selectedItems.begin(); item != selectedItems.end(); ++item) {
RsGxsId gxsid ; RsGxsId gxsid ;
if ( dynamic_cast<GxsIdRSTreeWidgetItem*>(*item)->getId(gxsid) && isParticipantMuted(gxsid)) dynamic_cast<GxsIdRSTreeWidgetItem*>(*selectedItems.begin())->getId(gxsid);
{ votePositiveAct->setEnabled(rsIdentity->overallReputationLevel(gxsid) != RsReputations::REPUTATION_LOCALLY_POSITIVE);
voteNeutralAct->setEnabled((rsIdentity->overallReputationLevel(gxsid) == RsReputations::REPUTATION_LOCALLY_POSITIVE) || (rsIdentity->overallReputationLevel(gxsid) == RsReputations::REPUTATION_LOCALLY_NEGATIVE) );
banAct->setEnabled(rsIdentity->overallReputationLevel(gxsid) != RsReputations::REPUTATION_LOCALLY_NEGATIVE);
muteAct->setEnabled(true);
if(isParticipantMuted(gxsid))
muteAct->setChecked(true); muteAct->setChecked(true);
break;
} }
} }
}
distantChatAct->setEnabled(selectedItems.count()==1 && RsGxsId(selectedItems.front()->text(COLUMN_ID).toStdString())!=nickName) ;
}
contextMnu.exec(QCursor::pos()); contextMnu.exec(QCursor::pos());
} }