Пример #1
0
void RequestMsgProcessor::onNewSystemMsg(ShareQQMsgPtr msg)
{
    QString gid = 0;
    if ( msg->type() == QQMsg::kSystemG )
    {
        QQSystemGMsg *sysg_msg = (QQSystemGMsg *)msg.data();
        gid = sysg_msg->from_uin;
        if ( sysg_msg->sys_g_type == "group_leave" )
        {
            qDebug() << sysg_msg->sendUin() << "had leave group" << endl;
            return;
        }
    }
    Contact *contact = Roster::instance()->contact(msg->sendUin());
    if ( !contact )
    {
        StrangerManager *mgr = StrangerManager::instance();
        contact = mgr->strangerInfo(msg->sendUin());
    }

    if ( !contact )
    {
        connect(StrangerManager::instance(), SIGNAL(newStrangerInfo(QString, Contact *)), this, SLOT(onNewStrangerInfo(QString, Contact *)));
        connect(StrangerManager::instance(), SIGNAL(newStrangerIcon(QString, QPixmap)), this, SLOT(onNewStrangerIcon(QString, QPixmap)));
    }
Пример #2
0
ChatMsgProcessor::ChatMsgProcessor()
{
    qRegisterMetaType<ContactStatus>("ContactStatus");

    connect(MsgProcessor::instance(), SIGNAL(newFriendChatMsg(ShareQQMsgPtr)), this, SLOT(onNewChatMsg(ShareQQMsgPtr)));
    connect(MsgProcessor::instance(), SIGNAL(newGroupChatMsg(ShareQQMsgPtr)), this, SLOT(onNewChatMsg(ShareQQMsgPtr)));
    connect(MsgProcessor::instance(), SIGNAL(newSessChatMsg(ShareQQMsgPtr)), this, SLOT(onNewChatMsg(ShareQQMsgPtr)));
    connect(MsgProcessor::instance(), SIGNAL(newOffFileMsg(ShareQQMsgPtr)), this, SLOT(onNewOffFileMsg(ShareQQMsgPtr)));
    connect(ChatDlgManager::instance(), SIGNAL(activatedChatDlgChanged(QQChatDlg *, QQChatDlg *)), this, SLOT(onActivatedChatDlgChanged(QQChatDlg *, QQChatDlg *)));
    connect(StrangerManager::instance(), SIGNAL(newStrangerInfo(QString, Contact *)), this, SLOT(onNewStrangerInfo(QString, Contact *)));
    connect(StrangerManager::instance(), SIGNAL(newStrangerIcon(QString, QPixmap)), this, SLOT(onNewStrangerIcon(QString, QPixmap)));
}