Esempio n. 1
0
void VESPERSBeamSelectorView::changeBeam(int id)
{
	AMBeamlineActionItem *action = 0;

	switch(id){

	case 0:
		action = VESPERSBeamline::vespers()->createBeamChangeAction(VESPERS::Pink);
		break;

	case 1:
		action = VESPERSBeamline::vespers()->createBeamChangeAction(VESPERS::TenPercent);
		break;

	case 2:
		action = VESPERSBeamline::vespers()->createBeamChangeAction(VESPERS::OnePointSixPercent);
		break;

	case 3:
		action = VESPERSBeamline::vespers()->createBeamChangeAction(VESPERS::Si);
		break;
	}

	if (!action)
		return;

	progressBar_->show();
	connect(action, SIGNAL(finished()), this, SLOT(onBeamChangeCompleted()));
	connect(action, SIGNAL(progress(double,double)), this, SLOT(onProgressUpdate(double,double)));
	action->start();
}
void VESPERSBeamSelectorView::changeBeam(int id)
{
	AMAction3 *action = 0;

	switch(id){

	case 0:
		action = VESPERSBeamline::vespers()->createBeamChangeAction(VESPERS::Pink);
		break;

	case 1:
		action = VESPERSBeamline::vespers()->createBeamChangeAction(VESPERS::TenPercent);
		break;

	case 2:
		action = VESPERSBeamline::vespers()->createBeamChangeAction(VESPERS::OnePointSixPercent);
		break;

	case 3:
		action = VESPERSBeamline::vespers()->createBeamChangeAction(VESPERS::Si);
		break;
	}

	if (!action)
		return;

	progressBar_->setRange(0, 0);
	progressBar_->show();
	connect(action, SIGNAL(cancelled()), this, SLOT(onBeamChangeCompleted()));
	connect(action, SIGNAL(failed()), this, SLOT(onBeamChangeCompleted()));
	connect(action, SIGNAL(succeeded()), this, SLOT(onBeamChangeCompleted()));
	connect(action, SIGNAL(cancelled()), action, SLOT(deleteLater()));
	connect(action, SIGNAL(failed()), action, SLOT(deleteLater()));
	connect(action, SIGNAL(succeeded()), action, SLOT(deleteLater()));
	action->start();
}