int CManageFileTransfer::ProcessCommand(const QString &szId, const QString &szCommand) { int nRet = -1; QStringList szPara; szPara = szCommand.split("&"); QString szCmd = szPara.at(0).split("=").at(1);//命令 QString szFileId = szPara.at(1).split("=").at(1);//文件id LOG_MODEL_DEBUG("CManageFileTransfer", "cmd:%s;id:%s", qPrintable(szCmd), qPrintable(szId)); QMap<QString, QSharedPointer<CFileTransfer> >::iterator it = m_FileTransfer.find(szId); while (m_FileTransfer.end() != it) { if(it.value()->GetFileTranserId() == szFileId) { if("accept" == szCmd) nRet = Accept(it.value()); if("saveas" == szCmd) nRet = SaveAs(it.value()); if("cancel" ==szCmd) nRet = it.value()->Abort(); return nRet; } it++; } LOG_MODEL_DEBUG("CManageFileTransfer", "There isn't szId:%s;Fileid:%s", qPrintable(szId), qPrintable(szFileId)); return nRet; }
void CFrmGroupChat::slotMessageReceived(const QXmppMessage &message) { LOG_MODEL_DEBUG("Group chat", "CFrmGroupChat::slotMessageReceived:type:%d;state:%d;from:%s;to:%s;body:%s", message.type(), message.state(), //消息的状态 0:消息内容,其它值表示这个消息的状态 qPrintable(message.from()), qPrintable(message.to()), qPrintable(message.body()) ); if(QXmppUtils::jidToBareJid(message.from()) != QXmppUtils::jidToBareJid(m_pRoom->jid())) { LOG_MODEL_DEBUG("Group chat", "the room is %s, from %s received", m_pRoom->jid().toStdString().c_str(), message.from().toStdString().c_str()); return; } if(message.body().isEmpty()) return; QString nick; nick = QXmppUtils::jidToResource(message.from()); if(nick.isEmpty()) nick = tr("System"); AppendMessageToList(message.body(), nick); }
void CDlgScreenShot::mouseReleaseEvent(QMouseEvent *e) { LOG_MODEL_DEBUG("screen shot", "mouseReleaseEvent:e->pos:x:%d;y:%d;QCursor::pos:x:%d;y:%d", e->pos().x(), e->pos().y(), QCursor::pos().x(), QCursor::pos().y()); if(!m_bGrabing) { QWidget::mouseReleaseEvent(e); return; } if(e->button() == Qt::LeftButton) { m_bGrabing = false; setCursor(Qt::ArrowCursor); WId id = qApp->desktop()->winId(); QRect rect = QRect(m_x,m_y,m_width,m_height).normalized(); LOG_MODEL_DEBUG("screen shot", "x:%d;y:%d;width:%d;height:%d;DlgWidth:%d;DlgHeight:%d", rect.x(), rect.y(), rect.width(), rect.height(), this->width(), this->height()); QPixmap pix = QPixmap(); QScreen *pScreen = QGuiApplication::primaryScreen(); pix = pScreen->grabWindow(id, rect.x(), rect.y(), rect.width(), rect.height()); int x = rect.x(), y = rect.y() + rect.height(); m_Editor.toolBar.show(); //需要先显示,才能得到正确的大小 QRect rectToolBar = m_Editor.toolBar.frameGeometry(); LOG_MODEL_DEBUG("screen shot", "x:%d;y:%d;width:%d;height:%d", rectToolBar.x(), rectToolBar.y(), rectToolBar.width(), rectToolBar.height()); if(y + rectToolBar.height() >= this->height()) { y = rect.y() - rectToolBar.height(); } else if(x + rectToolBar.width() >= this->width()) { x = this->width() - rectToolBar.width(); LOG_MODEL_ERROR("screen shot", "x:%d;y:%d;width:%d;height:%d;toolx:%d", rectToolBar.x(), rectToolBar.y(), rectToolBar.width(), rectToolBar.height(), x); } m_Editor.toolBar.move(x, y); m_Editor.resetByImg(pix); m_Editor.move(rect.topLeft());//移动到当前选择的rect的左上角 m_Editor.show(); } }
int CFrmPlayer::TestCamera() { static Hander* pHander = NULL; if(pHander) return 0; std::vector<CCameraInfo::CamerInfo> lstInfo; int nRet = CCameraFactory::Instance()->EnumDevice(lstInfo); std::vector<CCameraInfo::CamerInfo>::iterator it; for (it = lstInfo.begin(); it != lstInfo.end(); it++) { LOG_MODEL_DEBUG("CFrmPlayer", "index:%d;name:%s", it->nIndex, it->szName.c_str() ); } CFrameProcess* pProcess = new CFrameProcess(); bool check = connect( pProcess, SIGNAL(sigCaptureFrame(QVideoFrame)), /*pProcess, SLOT(slotFrameConvertedToRGB32(QVideoFrame))); Q_ASSERT(check); check = connect(pProcess, SIGNAL(sigFrameConvertedToRGB32Frame(QVideoFrame)),*/ this, SLOT(slotPresent(QVideoFrame))); Q_ASSERT(check); pHander = new Hander(this, pProcess); VideoInfo vi; vi.Format = VIDEO_FORMAT_RGB24; vi.nHeight = 480; vi.nWidth = 640; vi.nRatio = 15; CCameraFactory::Instance()->GetCamera(0)->Open(pHander); CCameraFactory::Instance()->GetCamera(0)->Start(); return nRet; }
void CFrmLogin::ComposeAvatar(const QString &id) { LOG_MODEL_DEBUG("CFrmLogin", "CFrmLogin::ComposeAvatar:%s", qPrintable(id)); QString szId = id; #ifdef RABBITIM_USE_QXMPP if(szId.indexOf("@") == -1) { szId = szId + "@" + CGlobal::Instance()->GetXmppDomain(); } #endif QString szFile = CGlobalDir::Instance()->GetFileUserAvatar(szId, szId); QPixmap map(szFile); if(map.isNull()) map.load(":/icon/AppIcon"); QPixmap pStatus(CGlobal::Instance()->GetRosterStatusIcon(m_Status)); CTool::ComposeAvatarStatus(map, pStatus); //转换成灰度图像 if(m_Status == CUserInfo::OffLine || m_Status == CUserInfo::Invisible) { QIcon icon(map); map = icon.pixmap(map.width(), map.height(), QIcon::Disabled); } ui->pbState->setIcon(QIcon(map.scaled(48, 48))); }
//如果转换成功,则调用者使用完 pOutFrame 后,需要调用 avpicture_free(pOutFrame) 释放内存 //成功返回0,不成功返回非0 int CTool::ConvertFormat(/*[in]*/ const QVideoFrame &inFrame, /*[out]*/AVPicture &outFrame, /*[in]*/ int nOutWidth, /*[in]*/ int nOutHeight, /*[in]*/ AVPixelFormat pixelFormat) { int nRet = 0; AVPicture pic; nRet = avpicture_fill(&pic, (uint8_t*) inFrame.bits(), QVideoFrameFormatToFFMpegPixFormat(inFrame.pixelFormat()), inFrame.width(), inFrame.height()); if(nRet < 0) { LOG_MODEL_DEBUG("Tool", "avpicture_fill fail:%x", nRet); return nRet; } nRet = ConvertFormat(pic, inFrame.width(), inFrame.height(), QVideoFrameFormatToFFMpegPixFormat(inFrame.pixelFormat()), outFrame, nOutWidth, nOutHeight, pixelFormat); return nRet; }
void CDlgScreenShot::mousePressEvent(QMouseEvent *e) { LOG_MODEL_DEBUG("screen shot", "mousePressEvent:e->pos:x:%d;y:%d;QCursor::pos:x:%d;y:%d", e->pos().x(), e->pos().y(), QCursor::pos().x(), QCursor::pos().y()); if(e->button() == Qt::LeftButton) { if(!m_bGrabing){ QWidget::mousePressEvent(e); return; } QPoint pos = QCursor::pos(); m_x = pos.x(); m_y = pos.y(); } else if(e->button() == Qt::RightButton) { setCursor(Qt::CrossCursor); if(m_Editor.isHidden()) { this->reject(); } else { m_Editor.hide();//改变右键方式 onSigReset(); } } }
void CFrmUserList::doubleClicked(const QModelIndex &index) { LOG_MODEL_DEBUG("Roster", "CFrmUserList::doubleClicked, row:%d; column:%d", index.row(), index.column()); #ifndef ANDROID if(!m_UserList.isExpanded(index)) m_UserList.collapse(index); else m_UserList.expand(index); const QAbstractItemModel *m = index.model(); if(!m) return; //TODO:暂时根据是否有根节点来判断是组还是好友 if(m->parent(index).isValid()) { //是用户结点,打开消息对话框 QVariant v = m->data(index, Qt::UserRole + 1); if(v.canConvert<CRoster*>()) { CRoster* p = v.value<CRoster*>(); p->ShowMessageDialog(); } } #endif }
int CFrmLogin::SaveConf() { LOG_MODEL_DEBUG("Login", "CFrmLogin::SaveConf"); QSettings conf(CGlobalDir::Instance()->GetApplicationConfigureFile(), QSettings::IniFormat); int total = conf.value("Login/UserTotal", 0).toInt(); int i = 0; for(i = 0; i < total; i++) { if(conf.value("Login/UserName" + QString::number(i + 1)) == ui->cmbUser->currentText()) { conf.setValue("Login/LastUserNameIndex", i);//设置最后一次登录用户的索引 if(ui->chkLogin->isChecked() || ui->chkSave->isChecked()) { conf.setValue("Login/Password" + QString::number(i +1), EncryptPassword(ui->lnPassword->text())); } else conf.setValue("Login/Password" + QString::number(i +1), ""); return 0; } } if(i >= total) { conf.setValue("Login/UserTotal", total + 1); conf.setValue("Login/UserName" + QString::number(total +1), ui->cmbUser->currentText()); conf.setValue("Login/LastUserNameIndex", i);//设置最后一次登录用户的索引 if(ui->chkLogin->isChecked() || ui->chkSave->isChecked()) { conf.setValue("Login/Password" + QString::number(total +1), EncryptPassword(ui->lnPassword->text())); } else conf.setValue("Login/Password" + QString::number(total +1), ""); } return 0; }
void CFrmUserList::slotSubscriptionReceived(const QString &bareJid) { LOG_MODEL_DEBUG("Roster", "CFrmUserList::subscriptionReceived:%s", qPrintable(bareJid)); m_frmAddRoster.Init(CGlobal::Instance()->GetXmppClient(), GetGroupsName(), bareJid); m_frmAddRoster.show(); m_frmAddRoster.activateWindow(); }
int CFrmUserList::UpdateGroup(CRoster* pRoster, QSet<QString> groups) { if(groups.isEmpty()) { QString szDefaulGroup(tr("My friends")); groups.insert(szDefaulGroup); } for(QSet<QString>::iterator itGroup = groups.begin(); itGroup != groups.end(); itGroup++) { QString szGroup = *itGroup; QStandardItem* lstGroup = NULL; QMap<QString, QStandardItem*>::iterator it; it = m_Groups.find(szGroup); if(m_Groups.end() == it) { //新建立组条目 /*lstGroup = new QStandardItem(szGroup); lstGroup->setEditable(false); //禁止双击编辑 m_pModel->appendRow(lstGroup); m_Groups.insert(szGroup, lstGroup);//*/ lstGroup = InsertGroup(szGroup); } else lstGroup = it.value(); lstGroup->appendRow(pRoster->GetItem()); LOG_MODEL_DEBUG("Roster", "CFrmUserList::UpdateGroup:%s,(%s)", qPrintable(pRoster->BareJid()), qPrintable(szGroup)); } return 0; }
//从本地加载好友列表 int CFrmUserList::LoadUserList() { QString szFile = CGlobal::Instance()->GetDirUserData(CGlobal::Instance()->GetBareJid()) + QDir::separator() + "RosterInfo.dat"; QFile in(szFile); if(!in.open(QFile::ReadOnly)) { LOG_MODEL_WARNING("CFrmUserList", "Don't open file:%s", szFile.toStdString().c_str()); return -1; } QDataStream s(&in); //版本号 int nVersion = 0; s >> nVersion; LOG_MODEL_DEBUG("CFrmUserList", "Version:%d", nVersion); while(!s.atEnd()) { //QSharedPointer<CRoster > roster(new CRoster()); CRoster* pRoster = new CRoster(); s >> *pRoster; this->InsertUser(pRoster); } in.close(); return 0; }
Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/) { typedef union { JNIEnv *nativeEnvironment; void *venv; } UnionJNIEnvToVoid; LOG_MODEL_DEBUG("CAndroidNotification", "JNI_OnLoad start"); UnionJNIEnvToVoid uenv; uenv.venv = NULL; javaVM = 0; if (vm->GetEnv(&uenv.venv, JNI_VERSION_1_4) != JNI_OK) { LOG_MODEL_ERROR("CAndroidNotification", "GetEnv failed"); return -1; } JNIEnv *env = uenv.nativeEnvironment; if (!registerNatives(env)) { LOG_MODEL_ERROR("CAndroidNotification", "registerNatives failed"); return -1; } javaVM = vm; return JNI_VERSION_1_4; }
static void OnChickNotification(JNIEnv *env, jobject thiz, jstring key) { LOG_MODEL_DEBUG("CAndroidNotification", "OnChickNotification"); QString szKey; if(GET_MAINWINDOW) emit GET_MAINWINDOW->m_AndroidNotify.sigOnChick(); }
void CFrmGroupChatList::slotInvitationReceived(const QString &roomJid, const QString &inviter, const QString &reason) { LOG_MODEL_DEBUG("CFrmGroupChatList", "roomJid:%s, inviter:%s, reason:%s", roomJid.toStdString().c_str(), inviter.toStdString().c_str(), reason.toStdString().c_str()); }
void CFrmGroupChat::slotConfigurationReceived(const QXmppDataForm &configuration) { Q_UNUSED(configuration); LOG_MODEL_DEBUG("Group chat", "CFrmGroupChat::slotConfigurationReceived"); //正常流程是先请求配置,然后在请求配置信号中处理配置 //并发送设置配置。但是join后直接设置配置在openfire中是可以的 //m_pRoom->setConfiguration(m_DataForm); }
void CFrmUserList::slotRosterAddReceived(const QString &szId, const CClient::SUBSCRIBE_TYPE &type) { LOG_MODEL_DEBUG("Roster", "CFrmUserList::subscriptionReceived:%s", qPrintable(szId)); Q_UNUSED(type); CDlgAddRoster dlgAddRoster; dlgAddRoster.Init( GetGroupsName(), szId, true); dlgAddRoster.exec(); }
void CFrmGroupChatList::slotRoomAdded(QXmppMucRoom *room) { LOG_MODEL_DEBUG("CFrmGroupChatList", "CFrmGroupChatList::slotRoomAdded:jid:%s,name:%s,nick:%s,subject:%s", room->jid().toStdString().c_str(), room->name().toStdString().c_str(), room->nickName().toStdString().c_str(), room->subject().toStdString().c_str()); }
void CFrmGroupChat::slotParticipantRemoved(const QString &jid) { LOG_MODEL_DEBUG("Group chat", "CFrmGroupChat::slotParticipantRemoved:jid:%s", qPrintable(jid)); QList<QStandardItem*> items = m_pModelMembers->findItems(QXmppUtils::jidToResource(jid)); QStandardItem* item; foreach(item, items) { m_pModelMembers->removeRow(item->row()); }
int CPluginProtocol::LoadTranslate(const QString &szDir) { //初始化翻译 QSettings conf(CGlobalDir::Instance()->GetApplicationConfigureFile(), QSettings::IniFormat); QString szLocale = conf.value("Global/Language", QLocale::system().name()).toString(); if("Default" == szLocale) { szLocale = QLocale::system().name(); } LOG_MODEL_DEBUG("CPluginApp", "locale language:%s", szLocale.toStdString().c_str()); if(!m_TranslatorPlugin.isNull()) { qApp->removeTranslator(m_TranslatorPlugin.data()); m_TranslatorPlugin.clear(); } m_TranslatorPlugin = QSharedPointer<QTranslator>(new QTranslator()); QString szPlugin; #ifdef ANDROID szPlugin = ":/translations/Plugin_" + szLocale + ".qm"; #else if(szDir.isEmpty()) { szPlugin = ":/translations/Plugin_" + szLocale + ".qm"; } else { szPlugin = szDir + QDir::separator() + "translations" + QDir::separator() + "Plugin_" + szLocale + ".qm"; } #endif LOG_MODEL_DEBUG("CPluginApp", "Translate dir:%s", qPrintable(szPlugin)); bool bRet = m_TranslatorPlugin->load(szPlugin); if(!bRet) LOG_MODEL_ERROR("CPluginApp", "load translator[%s] fail", szPlugin.toStdString().c_str()); qApp->installTranslator(m_TranslatorPlugin.data()); return 0; }
void CFrmLogin::on_cmbUser_currentIndexChanged(int index) { LOG_MODEL_DEBUG("CFrmLogin", "CFrmLogin::on_cmbUser_currentIndexChanged:%d", index); QSettings conf(CGlobalDir::Instance()->GetApplicationConfigureFile(), QSettings::IniFormat); ui->lnPassword->setText(this->DecryptPassword(conf.value("Login/Password" + QString::number(index + 1), "").toString())); if(ui->lnPassword->text() == "" || ui->lnPassword->text().isEmpty()) ui->chkSave->setChecked(false); else ui->chkSave->setChecked(true); }
void CCallObject::StopCallSound() { LOG_MODEL_DEBUG("CCallObject", "CCallObject::StopCallSound"); if(m_pSound) { m_pSound->stop(); delete m_pSound; m_pSound = NULL; } }
void CFrmGroupChatList::slotUpdateMainMenu() { m_Menu.setTitle(tr("Operator group chat(&G)")); LOG_MODEL_DEBUG("Group chat", "CFrmGroupChatList isHidden:%s", qPrintable(QString::number(isHidden()))); if(this->isHidden()) m_Menu.setEnabled(false); else m_Menu.setEnabled(true); }
CFrmGroupChat::~CFrmGroupChat() { LOG_MODEL_DEBUG("Group chat", "CFrmGroupChat::~CFrmGroupChat"); if(m_pRoom) delete m_pRoom; delete ui; if(m_pModelMembers) delete m_pModelMembers; }
int CDownLoadHandleVersionFile::OnEnd(int nErrorCode) { if(m_szFile.isEmpty()) return -1; if(nErrorCode) { LOG_MODEL_ERROR("Update", "Don't open version configure file:%s", m_szFile.toStdString().c_str()); return -2; } QFile file(m_szFile); if(!file.open(QIODevice::ReadOnly)) { LOG_MODEL_ERROR("Update", "Don't open version configure file:%s", m_szFile.toStdString().c_str()); return -3; } QString szErr; QDomDocument doc; if(!doc.setContent(&file, &szErr)) { LOG_MODEL_ERROR("Update", "doc.setContent error:%s", szErr.toStdString().c_str()); return -4; } file.close(); if(doc.isNull()) { LOG_MODEL_ERROR("Update", "doc is null"); return -5; } CGlobal::Instance()->SetUpdateDate(QDateTime::currentDateTime()); QDomElement startElem = doc.documentElement(); QString szMajorVersion = startElem.firstChildElement("MAJOR_VERSION_NUMBER").text(); QString szMinorVersion = startElem.firstChildElement("MINOR_VERSION_NUMBER").text(); QString szRevisionVersion = startElem.firstChildElement("REVISION_VERSION_NUMBER").text(); if(szMajorVersion.toInt() <= MAJOR_VERSION_NUMBER) { if(szMinorVersion.toInt() <= MINOR_VERSION_NUMBER) { if(szRevisionVersion.toInt() <= REVISION_VERSION_NUMBER) { LOG_MODEL_DEBUG("Update", "Is already the newest version."); return 0; } } } emit GET_MAINWINDOW->sigUpdateExec(nErrorCode, m_szFile); return 0; }
void CFrmUserList::slotItemRemoved(const QString &bareJid) { LOG_MODEL_DEBUG("Roster", "CFrmUserList::itemRemoved jid:%s", qPrintable(bareJid)); QMap<QString, CRoster*>::iterator it; it = m_Rosters.find(QXmppUtils::jidToBareJid(bareJid)); if(m_Rosters.end() != it) { delete it.value(); m_Rosters.remove(QXmppUtils::jidToBareJid(bareJid)); } }
void CFrmUserList::resizeEvent(QResizeEvent *e) { LOG_MODEL_DEBUG("CFrmUserList", "CFrmUserList::resizeEvent:e.size:%d;genmetry.size:%d", e->size().width(), geometry().size().width()); m_UserList.resize(this->geometry().size()); //调整列的宽度 int nWidth = m_UserList.geometry().width() * 4/ 5; m_UserList.setColumnWidth(0, nWidth); m_UserList.setColumnWidth(1, m_UserList.geometry().width() - nWidth); }
int CManageMessageDialogBigScreen::LogoutClean() { LOG_MODEL_DEBUG("CManageMessageDialogBigScreen", "CManageMessageDialogBigScreen::Clean()"); std::list<CFrmContainer*>::iterator it; for(it = m_Container.begin(); it != m_Container.end(); it++) { delete *it; } m_Container.clear(); return 0; }
void CFrmGroupChat::slotParticipantAdded(const QString &jid) { QStandardItem* pItem = new QStandardItem(QXmppUtils::jidToResource(jid)); QString fullJid = QXmppUtils::jidToBareJid(m_pRoom->participantFullJid(jid)); LOG_MODEL_DEBUG("Group chat", "CFrmGroupChat::slotParticipantAdded:jid:%s,fullJid:%s,m_pRoom->participantFullJid(jid):%s", qPrintable(jid), qPrintable(fullJid), qPrintable(m_pRoom->participantFullJid(jid))); pItem->setData(fullJid, Qt::ToolTipRole); pItem->setData(fullJid, ROLE_GROUPCHAT_JID); m_pModelMembers->appendRow(pItem); }
void CCustomTreeView::mouseReleaseEvent(QMouseEvent *event) { LOG_MODEL_DEBUG("Roster", "CTreeUserList::mouseReleaseEvent"); #ifdef ANDROID //模拟右键菜单 QTime cur = QTime::currentTime(); int sec = m_MousePressTime.secsTo(cur); LOG_MODEL_DEBUG("Roster", "m_MousePressTime:%s;currentTime:%s;sect:%d", qPrintable(m_MousePressTime.toString("hh:mm:ss.zzz")), qPrintable(cur.toString("hh:mm:ss.zzz")), sec); if(sec >= 2) { emit customContextMenuRequested(QCursor::pos()); return; } #endif QTreeView::mouseReleaseEvent(event); }