Exemplo n.º 1
0
void
JobStatusModel::addJob( JobStatusItem* item )
{
    connect( item, SIGNAL( statusChanged() ), this, SLOT( itemUpdated() ) );
    connect( item, SIGNAL( finished() ), this, SLOT( itemFinished() ) );

    if ( item->collapseItem() )
    {
        if ( m_collapseCount.contains( item->type() ) )
        {
            m_collapseCount[ item->type() ].append( item );
//             qDebug() << "Adding item:" << item << "TO COLLAPSE ONLY";
            return; // we're done, no new rows
        }
        else
        {
            m_collapseCount.insert( item->type(), QList< JobStatusItem* >() << item );
        }

    }
    qDebug() << "Adding item:" << item;

    beginInsertRows( QModelIndex(), m_items.count(), m_items.count() );
    m_items.append( item );
    endInsertRows();
}
Exemplo n.º 2
0
void Colony::beginTurn()
{
    grow();

    if (hasBuildItem())
    {
        m_buildProgress += production();

        if (m_buildProgress >= m_buildItem->cost())
        {
            m_buildProgress -= m_buildItem->cost();
            m_buildItem->produce(this);
            emit itemFinished(this);
        }
    }
    else
    {
        emit itemFinished(this);
    }

    emit updated();
}
Exemplo n.º 3
0
void Colony::setPlayer(Player* player)
{
    if (player != m_player)
    {
        m_player->removeColony(this);
        m_player = player;
        m_player->addColony(this);

        emit updated();

        // Captured, so clear build item
        m_buildItem = nullptr;
        emit itemFinished(this);
    }
}
Exemplo n.º 4
0
void
JobStatusModel::addJob( JobStatusItem* item )
{
    if ( item->concurrentJobLimit() > 0 )
    {
        if ( m_jobTypeCount[ item->type() ] >= item->concurrentJobLimit() )
        {
            m_jobQueue[ item->type() ].enqueue( item );
            return;
        }
        int currentJobCount = m_jobTypeCount[ item->type() ];
        currentJobCount++;
        m_jobTypeCount[ item->type() ] = currentJobCount;
    }
    
    
    connect( item, SIGNAL( statusChanged() ), this, SLOT( itemUpdated() ) );
    connect( item, SIGNAL( finished() ), this, SLOT( itemFinished() ) );

    if ( item->collapseItem() )
    {
        if ( m_collapseCount.contains( item->type() ) )
        {
            m_collapseCount[ item->type() ].append( item );
//             qDebug() << "Adding item:" << item << "TO COLLAPSE ONLY";
            return; // we're done, no new rows
        }
        else
        {
            m_collapseCount.insert( item->type(), QList< JobStatusItem* >() << item );
        }

    }
    qDebug() << "Adding item:" << item;

    int currentEndRow = m_items.count();
    beginInsertRows( QModelIndex(), currentEndRow, currentEndRow );
    m_items.append( item );
    endInsertRows();
    if ( item->hasCustomDelegate() )
    {
        tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "job has custom delegate";
        emit customDelegateJobInserted( currentEndRow, item );
    }
}
Exemplo n.º 5
0
void KoReportASyncItemManager::addItem(KoReportASyncItemBase* item, OROPage* page, OROSection* section, QPointF offset, QVariant data, KRScriptHandler* script)
{
    RenderData *rdata = new RenderData();
    rdata->item = item;
    rdata->page = page;
    rdata->section = section;
    rdata->offset = offset;
    rdata->data = data;
    rdata->script = script;
    
    m_renderList.enqueue(rdata);
    
    //Just connect the first instance
    if (!m_itemList.contains(item)) {
        m_itemList.append(item);
        connect(item, SIGNAL(finishedRendering()), this, SLOT(itemFinished()));
    }    
    //kDebug() << m_renderList.count();
}
Exemplo n.º 6
0
Colony::Colony(EntityManager* entityManager, Player* player, Planet* planet)
    : Entity         (entityManager),
      m_player       (player),
      m_planet       (planet),
      m_size         (1),
      m_storedFood   (0),
      m_buildings    (),
      m_buildItem    (nullptr),
      m_buildProgress(0)
{
    Q_ASSERT(m_player != nullptr);
    Q_ASSERT(m_planet != nullptr);
    m_player->addColony(this);
    m_planet->addColony(this);

    connect(this, SIGNAL(updated()), tile(), SLOT(update()));

    m_player->reveal(tile(), Sight);

    emit itemFinished(this);
}