QTfrontend/ui/widget/chatwidget.cpp
changeset 9728 320f89e0b28c
parent 9726 dfdde45181ec
child 9979 710e0f92c2ab
equal deleted inserted replaced
9727:e89ed65f62da 9728:320f89e0b28c
   859     if(mil.size())
   859     if(mil.size())
   860         nick = mil[0].data().toString();
   860         nick = mil[0].data().toString();
   861     else
   861     else
   862         nick = m_clickedNick;
   862         nick = m_clickedNick;
   863 
   863 
       
   864     bool isOnline = (mil.size() > 0);
       
   865 
   864     QSortFilterProxyModel * playersSortFilterModel = qobject_cast<QSortFilterProxyModel *>(chatNicks->model());
   866     QSortFilterProxyModel * playersSortFilterModel = qobject_cast<QSortFilterProxyModel *>(chatNicks->model());
   865     if(!playersSortFilterModel)
   867     if(!playersSortFilterModel)
   866         return;
   868         return;
   867 
   869 
   868     PlayersListModel * players = qobject_cast<PlayersListModel *>(playersSortFilterModel->sourceModel());
   870     PlayersListModel * players = qobject_cast<PlayersListModel *>(playersSortFilterModel->sourceModel());
   872 
   874 
   873     bool isSelf = (nick == m_userNick);
   875     bool isSelf = (nick == m_userNick);
   874     bool isInRoom = players->isFlagSet(nick, PlayersListModel::InRoom);
   876     bool isInRoom = players->isFlagSet(nick, PlayersListModel::InRoom);
   875 
   877 
   876     acFollow->setVisible(!isSelf && isInRoom);
   878     acFollow->setVisible(!isSelf && isInRoom);
       
   879 
       
   880     acInfo->setVisible(isOnline);
   877 
   881 
   878     // update context menu labels according to possible action
   882     // update context menu labels according to possible action
   879     if(players->isFlagSet(nick, PlayersListModel::Ignore))
   883     if(players->isFlagSet(nick, PlayersListModel::Ignore))
   880     {
   884     {
   881         acIgnore->setText(QAction::tr("Unignore"));
   885         acIgnore->setText(QAction::tr("Unignore"));
   900         acFriend->setVisible(!isSelf);
   904         acFriend->setVisible(!isSelf);
   901     }
   905     }
   902 
   906 
   903     if (m_isAdmin)
   907     if (m_isAdmin)
   904     {
   908     {
   905         acKick->setVisible(!isSelf);
   909         acKick->setVisible(!isSelf && isOnline);
   906         acBan->setVisible(!isSelf);
   910         acBan->setVisible(!isSelf);
   907     }
   911     }
   908 
   912 
   909     m_nicksMenu->clear();
   913     m_nicksMenu->clear();
   910 
   914