示例#1
0
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();
}
示例#2
0
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;
}