void MessageWind::on_action_Move_to_white_triggered() //移动到白名单,与移动到黑名单类似 { QTreeWidgetItem *item=ui->contactsTreeWidget->currentItem(); Contact temp=texttocontact(item->whatsThis(0)); QList<Contact> *contactlist; int position; indexofcontact(temp.number,&contactlist,&position); if(contactlist==&strangers) { temp.onLine=(*contactlist)[position].onLine; temp.isWhite=true; allContacts.append(temp); contactlist->removeAt(position); } else (*contactlist)[position].isWhite=true; ui->contactsTreeWidget->removeItemWidget(item,0); QTreeWidgetItem *item2=new QTreeWidgetItem(*item); ui->contactsTreeWidget->topLevelItem(0)->addChild(item2); for(int i=0;i<childBlinkItems.count();i++) { if(childBlinkItems[i]->getitem()==item) { childBlinkItems[i]->setitem(item2); newblinkparent(item2->parent()); i--; } } Chat *chat; if(chatdialogexist(temp,&chat)) { chat->setwhite(); } delete item; }