void ShotDialog::accept() { double shotStartFloat = mShotStart->text().toDouble(); int shotStart = (int)shotStartFloat; int shotEnd = mShotEnd->text().toInt(); // Check for existing shot numbers ShotList shotsInProject = mElement.children( Shot::type(), true ); QMap<float, bool> existingShots; foreach( Shot s, shotsInProject) existingShots[s.shotNumber()] = true; if( shotStartFloat != (float)shotStart ){ if( existingShots[shotStartFloat] == true ){ LOG_5( "Shot exists!" ); // ResinError::nameTaken( this, QString::number(shotStartFloat) ); return; } Shot temp = shotSetup(); temp.setShotNumber( shotStartFloat ); temp.setName( temp.name() + temp.displayNumber() ); temp.commit(); // mThumbnailButton->updateThumbnail( temp ); QDialog::accept(); return; } QStringList badShots; for(int shit = shotStart; shit<=shotEnd; shit++) if (existingShots[(float)shit] == true) badShots += QString::number( shit ); if( badShots.size() > 0 ) { //ResinError::nameTaken( this, badShots.join(", ") ); return; } ShotList shots_to_add; // Create the shots for(; shotStart<=shotEnd; shotStart++) { Shot t = shotSetup(); t.setShotNumber( shotStart ); t.setName( t.name() + t.displayNumber() ); shots_to_add += t; } // Commit the shots shots_to_add.commit(); mCreated = shots_to_add; // Create and insert the thumbnails // mThumbnailButton->updateThumbnail( shots_to_add ); QDialog::accept(); }
Shot ShotDialog::shotSetup() { RecordList rl; Shot temp; AssetTemplate at = mTemplateCombo->assetTemplate(); if( at.isRecord() ) temp = Element::createFromTemplate( at, rl ); else temp = AssetType::recordByName( "Shot" ).construct(); ElementList el(rl); el.setProjects( mElement.project() ); el.commit(); LOG_5( "Shot's assettype is: " + temp.assetType().name() ); temp.setFrameStart( mFrameStartSpin->value() ); temp.setFrameEnd( mFrameEndSpin->value() ); temp.setName( mShotName->text() ); temp.setParent( mElement ); temp.setProject( mElement.project() ); temp.setElementStatus( ElementStatus::recordByName( "New" ) ); temp.setElementType( Shot::type() ); return temp; }