Beispiel #1
0
QVariant NewsFeedModel::data(const QModelIndex &index, int role) const
{
    int row = index.row();

    auto news = m_newsList.at(row);
    switch (role) {
    case TypeRole:
        return news.type();
    case PostIdRole:
        return news.postId();
        break;
    case SourceRole: {
        int source = news.sourceId();
        return qVariantFromValue(findContact(source));
    }
    case DateRole:
        return news.date();
    case BodyRole:
        return news.body();
    case AttachmentsRole:
        return vk::Attachment::toVariantMap(news.attachments());
    case LikesRole:
        return news.likes();
    case RepostsRole:
        return news.reposts();
    case CommentsRole:
        return news.property("comments");
    case OwnerNameRole: {
        int ownerId = news.property("copy_owner_id").toInt();
        if (ownerId) {
            auto contact = findContact(ownerId);
            return contact->name();
        }
        return QVariant();
    }
    case SourcePhotoRole: {
        if (auto contact = findContact(news.sourceId()))
            return contact->photoSource();
        break;
    }
    case SourceNameRole: {
        if (auto contact = findContact(news.sourceId()))
            return contact->name();
        break;
    }
    case LikesCount: {
        return news.likes().value("count").toInt();
    }
    case CommentsCount:
        return news.property("comments").toMap().value("count").toInt();
    default:
        break;
    }
    return QVariant::Invalid;
}
Beispiel #2
0
    void State_t::LoadFromXmlNode(CTextNode& node, Agent* pAgent)
    {
        if (pAgent)
        {
            CSerializationID  membersId("members");
            ISerializableNode* membersNode = node.findChild(membersId);
            pAgent->Load(membersNode);
        }

        this->m_vars.Load(&node);
        CSerializationID  btNodeId("BehaviorTree");
        ISerializableNode* btNode = node.findChild(btNodeId);

        if (btNode)
        {
            CSerializationID  sourceId("source");
            behaviac::string btName;

            if (btNode->getAttr(sourceId, btName))
            {
                BEHAVIAC_DELETE this->m_bt;
                this->m_bt = Workspace::GetInstance()->CreateBehaviorTreeTask(btName.c_str());
            }

            CSerializationID  nodeId("node");
            ISerializableNode* n = btNode->findChild(nodeId);
            BEHAVIAC_ASSERT(n);

            this->m_bt->Load(n);
        }
    }
Beispiel #3
0
bool Message::operator== (const Message& rValue) const
{
    if (severity() != rValue.severity()) return false;
    if (sourceId() != rValue.sourceId()) return false;
    if (line() != rValue.line()) return false;
    if (column() != rValue.column()) return false;
    if (text() != rValue.text()) return false;
    return true;
}
Beispiel #4
0
void NewsFeedModel::deleteLike(int postId)
{
    int index = findNews(postId);
    if (index != -1) {
        auto news = m_newsList.at(index);
        auto reply = m_client.data()->deleteLike(news.sourceId(),
                                                 postId);
        connect(reply, SIGNAL(resultReady(QVariant)), SLOT(onDeleteLike(QVariant)));
    }
}
Beispiel #5
0
void NewsFeedModel::addLike(int postId, bool retweet, const QString &message)
{
    int index = findNews(postId);
    if (index != -1) {
        auto news = m_newsList.at(index);
        auto reply = m_client.data()->addLike(news.sourceId(),
                                              postId,
                                              retweet,
                                              message);
        connect(reply, SIGNAL(resultReady(QVariant)), SLOT(onAddLike(QVariant)));
    }
}
Beispiel #6
0
    void BehaviorTreeTask::Save(ISerializableNode* node) const
    {
        CSerializationID  btId("BehaviorTree");
        ISerializableNode* btNodeRoot = node->newChild(btId);

        BEHAVIAC_ASSERT(BehaviorTree::DynamicCast(this->GetNode()));
        BehaviorTree* bt = (BehaviorTree*)this->GetNode();

        CSerializationID  sourceId("source");
        btNodeRoot->setAttr(sourceId, bt->GetName());

        CSerializationID  nodeId("node");
        ISerializableNode* btNode = btNodeRoot->newChild(nodeId);

        this->save(btNode);
    }
 inline QString sourceKey(const qint32& idx)
 { return QString("/Sources/%1").arg(sourceId(idx));}
Beispiel #8
0
bool QSEngineImp::evaluate( const QString &code, const QSObject *thisV,
                            bool onlyCheckSyntax, int checkMode, int lineZero )
{
#if defined (QT_THREAD_SUPPORT) && QT_VERSION >= 0x030300
    QMutex *mutex = qt_global_mutexpool ? qt_global_mutexpool->get(qApp) : 0;
#endif
    QS_MUTEX_LOCK;
    QSProgramNode *progNode = 0;

    init();

#ifdef QSDEBUGGER
    incrSourceId();
    if (debugger())
        debugger()->setSourceId(sid);
#endif
    if (recursion > 7) {
        qWarning( "QtScript: breaking out of recursion" );
        QS_MUTEX_UNLOCK;
        return true;
    }

    assert(QSLexer::lexer());
    {
        QSLexer::lexer()->setCode( code,
#ifdef QSDEBUGGER
                                   sourceId(),
#else
                                   0,
#endif
                                   lineZero );
        int parseError = qsyyparse();
        progNode = QSProgramNode::last();

        if( parseError || QSLexer::lexer()->lexerState() == QSLexer::Bad ) {
            errType = QSErrParseError;
            int l = QSLexer::lexer()->lineNo();
            errLines.append( l );
            errMsgs.append( QString::fromLatin1("Parse Error: ")
                            + qs_format_error( QSLexer::lexer()->errorMessage() ) );
            /* TODO: either clear everything or keep previously
               parsed function definitions */
            //    QSNode::deleteAllNodes();
            if (progNode && progNode->deref()) {
                delete progNode;

            }
            QS_MUTEX_UNLOCK;
            return false;
        }
    }

    QSCheckData sem( env(), env()->globalClass() );
    if ( thisV ) {
        Q_ASSERT( thisV->isValid() );
        //       qDebug( "QSEngineImp::evaluate: entering %s",
        // 	      thisV->typeName().latin1());
        sem.enterClass( (QSClass*)thisV->objectType() );
        env()->pushScope( *thisV );
    }
    sem.setGlobalStatementsForbidden( checkMode & QSEngine::DisallowGlobal );
    progNode->check( &sem );
    if ( sem.hasError() ) {
        errType = sem.errorCode();
        errLines = sem.errorLines();
        errMsgs = sem.errorMessages();
        if (progNode->deref())
            delete progNode;
        QS_MUTEX_UNLOCK;
        return FALSE;
    }

    if (onlyCheckSyntax) {
        if (progNode->deref()) {
            delete progNode;
        }
        QS_MUTEX_UNLOCK;
        return true;
    }

    env()->clearException();

    recursion++;
    assert(progNode);

    QS_MUTEX_UNLOCK;
    QSObject res = progNode->execute( env() );
    QS_MUTEX_LOCK;

    recursion--;

    if ( env()->isExceptionMode( )) {
        QSObject err = env()->exception();
        errType = 99; /* TODO */
        errLines.append(QSErrorClass::errorLine(&err));
        errMsgs.append(QSErrorClass::errorName(&err) + QString::fromLatin1(". ") + QSErrorClass::errorMessage(&err));
#ifdef QSDEBUGGER
        if (dbg)
            dbg->setSourceId(QSErrorClass::errorSourceId(&err));
#endif
        env()->clearException();
    } else {
        errType = 0;
        errLines.clear();
        errMsgs.clear();

        // catch return value
        retVal = res;
    }

    if ( thisV ) {
        env()->popScope();
    }

    if (progNode->deref()) {
        delete progNode;
    }

    QS_MUTEX_UNLOCK;
    return !errType;
}
Beispiel #9
0
// ---------------------------------------------------------------------------
// CTestDtmf::TestStreamControlL
// ---------------------------------------------------------------------------
//
void CTestDtmf::TestStreamControlL( TDtmfSignalType aSigType )
    {
    TMccNetSettings tempSettings = iNetsettings;
    
    CMccInterfaceStub* stub = CMccInterfaceStub::NewL();
    CleanupStack::PushL( stub );
    CMccInterface* interface = CMccInterface::NewL( *stub );
    CleanupStack::PushL( interface );
    
    TUint32 sessionId;
    User::LeaveIfError( interface->CreateSession( sessionId ) );
    
    TUint32 linkId;
    TInt linkType( KMccLinkGeneral );
    User::LeaveIfError( interface->CreateLink( sessionId, linkType, linkId,
        tempSettings ) );
    stub->WaitForEvent( sessionId, linkId, 0, KMccLinkCreated );
    
    CMccCodecInformation* cInfo 
        = FetchCodecByMimeSubtypeNameL( *interface, KTxtDtmf );
    CleanupStack::PushL( cInfo );
    
    if ( aSigType == EInbandSignal )
        {
        cInfo->SetCodecMode( EDTMFModeInband );
        }
    else
        {
        cInfo->SetCodecMode( EDTMFModeEvent );
        }
    
    TUint32 streamId( 0 );
    TUint32 sinkId( 0 ), sourceId( 0 );
    interface->AddDataSink( KMccRtpSinkUid, KNullDesC8, sinkId );
    interface->AddDataSource( KMccRtpSourceUid, KNullDesC8, sourceId );
    
    User::LeaveIfError( interface->CreateStream( sessionId, linkId, streamId,
        KMccDtmfStream, *cInfo ) );
    
    // TEST CORRECT CONTROL PATHS
    User::LeaveIfError ( interface->PrepareStream( sessionId, linkId, streamId ) );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamPrepared );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamPrepared );
   
    User::LeaveIfError ( interface->StartStream( sessionId, linkId, streamId ) );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamStarted );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamStarted );
    
    User::LeaveIfError ( interface->PauseStream( sessionId, linkId, streamId ) );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamPaused );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamPaused );
    
    User::LeaveIfError ( interface->ResumeStream( sessionId, linkId, streamId ) );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamResumed );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamResumed );
    
    User::LeaveIfError ( interface->StopStream( sessionId, linkId, streamId ) );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamStopped );
    stub->WaitForEvent( sessionId, linkId, streamId, KMccStreamStopped );
    
    // TBD: TEST INVALID CONTROL PATHS
    
    User::LeaveIfError( interface->DeleteStream( sessionId, linkId, streamId ) );
    User::LeaveIfError( interface->CloseLink( sessionId, linkId ) );
    User::LeaveIfError( interface->CloseSession( sessionId ) );
    
    CleanupStack::PopAndDestroy( cInfo );
    CleanupStack::PopAndDestroy( interface );
    CleanupStack::PopAndDestroy( stub );
    }