@@ -87,6 +87,7 @@ MGUIMainMelinator::MGUIMainMelinator(MInterfaceMelinator* Interface,
8787 m_ActiveCollection = 0 ;
8888 m_ActiveLineFit = 0 ;
8989 m_ActiveResultIsEnergy = true ;
90+ m_AnalysisRunning = false ;
9091}
9192
9293
@@ -793,6 +794,13 @@ bool MGUIMainMelinator::ProcessMessage(long Message, long Parameter1, long Param
793794
794795 bool Status = true ;
795796
797+ // Protection against reentering running analysis:
798+ if (m_AnalysisRunning == true ) {
799+ mout<<" Please wait until the current analysis is done" <<endl;
800+ return true ;
801+ }
802+ m_AnalysisRunning = true ;
803+
796804 switch (GET_MSG (Message)) {
797805 case kC_COMMAND :
798806 switch (GET_SUBMSG (Message)) {
@@ -946,6 +954,8 @@ bool MGUIMainMelinator::ProcessMessage(long Message, long Parameter1, long Param
946954 break ;
947955 }
948956
957+ m_AnalysisRunning = false ;
958+
949959 return Status;
950960}
951961
@@ -1030,7 +1040,7 @@ bool MGUIMainMelinator::OnExit()
10301040
10311041// ! Switch the histogram binning mode
10321042bool MGUIMainMelinator::OnSwitchHistogramBinningMode (unsigned int ID)
1033- {
1043+ {
10341044 if (ID == MMelinator::c_HistogramBinningModeFixedNumberOfBins) {
10351045 m_HistogramBinningModeValueLabel->SetText (" bins" );
10361046 } else if (ID == MMelinator::c_HistogramBinningModeFixedCountsPerBin) {
@@ -1054,7 +1064,7 @@ bool MGUIMainMelinator::OnSwitchHistogramBinningMode(unsigned int ID)
10541064
10551065// ! Switch the histogram binning mode
10561066bool MGUIMainMelinator::OnSwitchPeakParametrizationMode (unsigned int ID)
1057- {
1067+ {
10581068 if (ID == MCalibrateEnergyFindLines::c_PeakParametrizationMethodBayesianBlockPeak) {
10591069 m_PeakParametrizationOptions->RemoveAll (); // Deletes everyting too
10601070 } else if (ID == MCalibrateEnergyFindLines::c_PeakParametrizationMethodSmoothedPeak) {
0 commit comments