Added an enumerated type for the mono's region states: None, A, B. Added class variable region_ that holds the current region state. The region_ value is returned with region() getter. The region_ value is updated in the onRegionChanged() slot, which checks the values of the regionAStatus_ and regionBStatus_ pvs. Signal regionChanged(...) is emitted if the new region calculated from these pvs is different from the current region. This slot is connected to the valueChanged(...) signal from each pv in the class constructor.
Changed createCrystalAction() to include new region_ class variable.
Updated some comments to better explain what some functions/signals mean. Eg. 'key enabled' actually means the mono key is turned to 'enabled', which means that a crystal change can take place.
Created new file BioXASSideMonoCrystalChangeSteps that contains two classes: BioXASSideMonoCrystalChangeStep and BioXASSideMonoCrystalChangeSteps. A Step basically contains the AMAction3 for that step + a short QString description + any user instructions that are needed to complete that step. Steps is a QList of theSteps, and takes the AMListAction3 used for the whole crystal change process, breaking it down into the component AMAction3s and creating each step.
These files now contain four small view classes. BioXASSideMonoCrystalChangeView is the main crystal change view dialog, and takes the mono to be viewed as a constructor argument. It creates an instance of BioXASSideMonoCrystalCHhangeStepsView and BioXASSideMonoCrystalChangeFinalView--displaying either one as appropriate. The StepsView is displayed when the given mono pointer is not 0 and is connected: it displays a progress bar that should mark progress in the overall crystal change process, and displays a QLabel below with a short description of the step currently being executed, with user instructions below as needed. The FinalView is displayed once the steps are finished, either displaying error messages or a 'process complete' confirmation.
Updated the BioXASSidePersistentView to include a button that creates and displays the BioXASSideMonoCrystalChangeView once clicked.