782 } |
784 } |
783 } |
785 } |
784 |
786 |
785 void HWChatWidget::onKick() |
787 void HWChatWidget::onKick() |
786 { |
788 { |
787 /*QListWidgetItem * curritem = chatNicks->currentItem(); |
789 QModelIndexList mil = chatNicks->selectionModel()->selectedRows(); |
788 if (curritem) |
790 |
789 emit kick(curritem->text());*/ |
791 if(mil.size()) |
|
792 emit kick(mil[0].data().toString()); |
790 } |
793 } |
791 |
794 |
792 void HWChatWidget::onBan() |
795 void HWChatWidget::onBan() |
793 { |
796 { |
794 /*QListWidgetItem * curritem = chatNicks->currentItem(); |
797 QModelIndexList mil = chatNicks->selectionModel()->selectedRows(); |
795 if (curritem) |
798 |
796 emit ban(curritem->text());*/ |
799 if(mil.size()) |
|
800 emit ban(mil[0].data().toString()); |
797 } |
801 } |
798 |
802 |
799 void HWChatWidget::onInfo() |
803 void HWChatWidget::onInfo() |
800 { |
804 { |
801 /*QListWidgetItem * curritem = chatNicks->currentItem(); |
805 QModelIndexList mil = chatNicks->selectionModel()->selectedRows(); |
802 if (curritem) |
806 |
803 emit info(curritem->text());*/ |
807 if(mil.size()) |
|
808 emit info(mil[0].data().toString()); |
804 } |
809 } |
805 |
810 |
806 void HWChatWidget::onFollow() |
811 void HWChatWidget::onFollow() |
807 { |
812 { |
808 /*QListWidgetItem * curritem = chatNicks->currentItem(); |
813 QModelIndexList mil = chatNicks->selectionModel()->selectedRows(); |
809 if (curritem) |
814 |
810 emit follow(curritem->text());*/ |
815 if(mil.size()) |
|
816 emit follow(mil[0].data().toString()); |
811 } |
817 } |
812 |
818 |
813 void HWChatWidget::onIgnore() |
819 void HWChatWidget::onIgnore() |
814 { |
820 { |
815 /*QListWidgetItem * curritem = chatNicks->currentItem(); |
821 QModelIndexList mil = chatNicks->selectionModel()->selectedRows(); |
816 QString nick = ""; |
822 |
817 if(curritem != NULL) |
823 QString nick; |
818 nick = curritem->text(); |
824 if(mil.size()) |
|
825 nick = mil[0].data().toString(); |
819 else |
826 else |
820 nick = m_clickedNick; |
827 nick = m_clickedNick; |
821 |
828 |
822 if(ignoreList.contains(nick, Qt::CaseInsensitive)) // already on list - remove him |
829 QSortFilterProxyModel * playersSortFilterModel = qobject_cast<QSortFilterProxyModel *>(chatNicks->model()); |
823 { |
830 if(!playersSortFilterModel) |
824 ignoreList.removeAll(nick.toLower()); |
831 return; |
|
832 |
|
833 PlayersListModel * players = qobject_cast<PlayersListModel *>(playersSortFilterModel->sourceModel()); |
|
834 |
|
835 if(!players) |
|
836 return; |
|
837 |
|
838 if(players->isFlagSet(nick, PlayersListModel::Ignore)) |
|
839 { |
|
840 players->setFlag(nick, PlayersListModel::Ignore, false); |
825 chatEditLine->addNickname(nick); |
841 chatEditLine->addNickname(nick); |
826 displayNotice(tr("%1 has been removed from your ignore list").arg(linkedNick(nick))); |
842 displayNotice(tr("%1 has been removed from your ignore list").arg(linkedNick(nick))); |
827 } |
843 } |
828 else // not on list - add |
844 else // not on list - add |
829 { |
845 { |
830 // don't consider ignored people friends |
846 // don't consider ignored people friends |
831 if(friendsList.contains(nick, Qt::CaseInsensitive)) |
847 if(players->isFlagSet(nick, PlayersListModel::Friend)) |
832 emit onFriend(); |
848 emit onFriend(); |
833 |
849 |
834 // scroll down on first ignore added so that people see where that nick went to |
850 players->setFlag(nick, PlayersListModel::Ignore, true); |
835 if (ignoreList.isEmpty()) |
|
836 chatNicks->scrollToBottom(); |
|
837 |
|
838 ignoreList << nick.toLower(); |
|
839 chatEditLine->removeNickname(nick); |
851 chatEditLine->removeNickname(nick); |
840 displayNotice(tr("%1 has been added to your ignore list").arg(linkedNick(nick))); |
852 displayNotice(tr("%1 has been added to your ignore list").arg(linkedNick(nick))); |
841 } |
853 } |
842 |
854 |
843 if(curritem != NULL) |
855 if(mil.size()) |
844 { |
856 { |
845 updateNickItem(curritem); // update icon/sort order/etc |
857 chatNicks->scrollTo(chatNicks->selectionModel()->selectedRows()[0]); |
846 chatNicks->sortItems(); |
|
847 chatNickSelected(0); // update context menu |
858 chatNickSelected(0); // update context menu |
848 }*/ |
859 } |
849 } |
860 } |
850 |
861 |
851 void HWChatWidget::onFriend() |
862 void HWChatWidget::onFriend() |
852 { |
863 { |
853 /*QListWidgetItem * curritem = chatNicks->currentItem(); |
864 QModelIndexList mil = chatNicks->selectionModel()->selectedRows(); |
854 QString nick = ""; |
865 |
855 if(curritem != NULL) |
866 QString nick; |
856 nick = curritem->text(); |
867 if(mil.size()) |
|
868 nick = mil[0].data().toString(); |
857 else |
869 else |
858 nick = m_clickedNick; |
870 nick = m_clickedNick; |
859 |
871 |
860 if(friendsList.contains(nick, Qt::CaseInsensitive)) // already on list - remove him |
872 QSortFilterProxyModel * playersSortFilterModel = qobject_cast<QSortFilterProxyModel *>(chatNicks->model()); |
861 { |
873 if(!playersSortFilterModel) |
862 friendsList.removeAll(nick.toLower()); |
874 return; |
|
875 |
|
876 PlayersListModel * players = qobject_cast<PlayersListModel *>(playersSortFilterModel->sourceModel()); |
|
877 |
|
878 if(!players) |
|
879 return; |
|
880 |
|
881 if(players->isFlagSet(nick, PlayersListModel::Friend)) |
|
882 { |
|
883 players->setFlag(nick, PlayersListModel::Friend, false); |
|
884 chatEditLine->removeNickname(nick); |
863 displayNotice(tr("%1 has been removed from your friends list").arg(linkedNick(nick))); |
885 displayNotice(tr("%1 has been removed from your friends list").arg(linkedNick(nick))); |
864 } |
886 } |
865 else // not on list - add |
887 else // not on list - add |
866 { |
888 { |
867 // don't ignore the new friend |
889 if(players->isFlagSet(nick, PlayersListModel::Ignore)) |
868 if(ignoreList.contains(nick, Qt::CaseInsensitive)) |
|
869 emit onIgnore(); |
890 emit onIgnore(); |
870 |
891 |
871 // scroll up on first friend added so that people see where that nick went to |
892 players->setFlag(nick, PlayersListModel::Friend, true); |
872 if (friendsList.isEmpty()) |
893 chatEditLine->addNickname(nick); |
873 chatNicks->scrollToTop(); |
|
874 |
|
875 friendsList << nick.toLower(); |
|
876 displayNotice(tr("%1 has been added to your friends list").arg(linkedNick(nick))); |
894 displayNotice(tr("%1 has been added to your friends list").arg(linkedNick(nick))); |
877 } |
895 } |
878 |
896 |
879 if(curritem != NULL) |
897 if(mil.size()) |
880 { |
898 { |
881 updateNickItem(curritem); // update icon/sort order/etc |
899 chatNicks->scrollTo(chatNicks->selectionModel()->selectedRows()[0]); |
882 chatNicks->sortItems(); |
|
883 chatNickSelected(0); // update context menu |
900 chatNickSelected(0); // update context menu |
884 }*/ |
901 } |
885 } |
902 } |
886 |
903 |
887 void HWChatWidget::chatNickDoubleClicked(QListWidgetItem * item) |
904 void HWChatWidget::chatNickDoubleClicked(QListWidgetItem * item) |
888 { |
905 { |
889 if (item != NULL) |
906 if (item != NULL) |