Пример #1
0
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();
}