CanvasCard* CanvasPlayer::hasCard( int cardid ) const { for(unsigned int i=0;i<NUMCARDS;i++) { CanvasCard* card = m_items[i]; if(card->card()->id() == cardid ) return card; } return NULL; }
void GameCanvas::cardClicked( QGraphicsItem* item ) { if( item ) item->setSelected( false ); if( item->type() == CANVASCARD ) { CanvasCard* card = static_cast<CanvasCard*>(item); for( unsigned int i = 0; i < PLAYERS; i++ ) { if( m_players[i]->isHuman() && m_players[i]->hasCard( card->card()->id() ) ) { m_result = card->card()->id(); disconnect( this, SIGNAL(clicked( QGraphicsItem* )), this, SLOT(cardClicked(QGraphicsItem*))); // be sure that focusOutEvent does not use its parameter focusOutEvent( NULL ); m_loop.exit(); } }