Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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();
    }
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
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)));
}
Exemplo n.º 6
0
//如果转换成功,则调用者使用完 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;
}
Exemplo n.º 7
0
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();
        }
    }
}
Exemplo n.º 8
0
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
}
Exemplo n.º 9
0
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;
}
Exemplo n.º 10
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();
}
Exemplo n.º 11
0
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;
}
Exemplo n.º 12
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;
}
Exemplo n.º 13
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;
}
Exemplo n.º 14
0
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();
}
Exemplo n.º 15
0
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());
}
Exemplo n.º 16
0
void CFrmGroupChat::slotConfigurationReceived(const QXmppDataForm &configuration)
{
    Q_UNUSED(configuration);
    LOG_MODEL_DEBUG("Group chat", "CFrmGroupChat::slotConfigurationReceived");
    //正常流程是先请求配置,然后在请求配置信号中处理配置  
    //并发送设置配置。但是join后直接设置配置在openfire中是可以的  
    //m_pRoom->setConfiguration(m_DataForm);
}
Exemplo n.º 17
0
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();
}
Exemplo n.º 18
0
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());
}
Exemplo n.º 19
0
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());
    }
Exemplo n.º 20
0
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;
}
Exemplo n.º 21
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);
}
Exemplo n.º 22
0
void CCallObject::StopCallSound()
{
    LOG_MODEL_DEBUG("CCallObject", "CCallObject::StopCallSound");
    if(m_pSound)
    {
            m_pSound->stop();
            delete m_pSound;
            m_pSound = NULL;
    }
}
Exemplo n.º 23
0
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);
}
Exemplo n.º 24
0
CFrmGroupChat::~CFrmGroupChat()
{
    LOG_MODEL_DEBUG("Group chat", "CFrmGroupChat::~CFrmGroupChat");
    if(m_pRoom)
        delete m_pRoom;

    delete ui;
    if(m_pModelMembers)
        delete m_pModelMembers;
}
Exemplo n.º 25
0
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;
}
Exemplo n.º 26
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));
    }
}
Exemplo n.º 27
0
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;
}
Exemplo n.º 29
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);
}
Exemplo n.º 30
0
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);
}