void ChatDlgManager::openGroupChatDlg(QString id, QString gcode) { if ( isOpening(id) ) { tab_win_->activatedTab(id); tab_win_->activateWindow(); tab_win_->raise(); return; } Roster *roster = Roster::instance(); Group *group = roster->group(id); QQChatDlg *dlg = NULL; dlg = new GroupChatDlg(group); connect(dlg, SIGNAL(chatFinish(QQChatDlg*)), this, SLOT(closeChatDlg(QQChatDlg*))); if ( main_win_->recentModel() ) connect(dlg, SIGNAL(sigMsgSended(QString)), main_win_->recentModel(), SLOT(slotMsgSended(QString))); ChatMsgProcessor::instance()->registerListener(dlg); opening_chatdlg_.append(dlg); QString dlg_name = group->name().left(4); if ( group->name().size() > 4 ) dlg_name += ".."; tab_win_->addTab(dlg, dlg_name); tab_win_->show(); tab_win_->activateWindow(); tab_win_->raise(); }