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))); }
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))); }