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