GUI usability issues, required fixes

Place to collect observed bugs, required fixes, etc. toward improvement of usability.

WelcomeView, open/save logic

  • [fixed, 22/05/2014] Saving empty project (no sample constructed yet), causes crash [Gennady, 22/05/2014].
  • [fixed, 03/05/2014] Recent project list doesn't work under Mac [Gennady, 30/05/2014].
  • [fixed, 03/05/2014] Welcome view should indicate that there is a project currently opened [Gennady, 30/05/2014].
  • [fixed, 03/05/2014] When opening a new project, I do not get a blank page [Celine, 22/05/2014].
  • [fixed, 24/05/2014] There is no option for saving when closing the program [Celine, 22/05/2014].
  • [fixed, 12/03/2015] Provide SaveAs functionality [Gennady, 30/05/2014].
  • [fixed, 12/03/2015] When user opens existing project, where should be clear indication that it went successfully [Gennady, 12/02/2015].
  • [fixed, 14/04/2016] Implement DocumentModel which will hold general info about the project (like last active view) [Gennady, 13/02/2015].


  • [fixed, 01/08/2014] Trying to change the min or max values of Phi and Alpha causes a crash [Celine, 28/07/2014].
  • [fixed, 20/08/2014] While adding new instrument, the name should be different if exists, e.g. "Default GISAS (2)" [Gennady, 30/05/2014].
  • [fixed, 25/08/2014] Possibility to choose between degrees/radians for beam and detector angle parameters.
  • [fixed, 06/03/2015] Scroll area for InstrumentComponents is too dark under MAC (should ScrollArea include also InstrumentName and InstrumentType fields?) [Gennady, 5/03/2015]
  • [fixed, 12/03/2015] Scroll wheel events on InstrumentView should not be propagated inside property editors and should affect only scroll area [Gennady, 5/03/2015]
  • [rejected, 12/03/2015] Think of radians/degrees selector affecting BeamEditor and DetectorEditor (do we really need this?) [Gennady, 5/03/2015]
  • [fixed, 18/03/2015] Is there a way to control that the wavelength is never negative when is it defined with a distribution? [Celine, 06/03/2015]
  • [fixed, 10/04/2015] If the wavelength distribution is 'None', it allows to enter the wavelength with only 2 signs 'after comma' (like 0.12). [Marina, 10/04/2015]
  • [fixed, 20/09/2015] Units at list for wavelength and angles are needed [Marina, 10/04/2015].
  • [fixed, 02/11/2015] Intensity value doesn't affect simulation results. Agree on Simulation::normalize policy [Gennady, 5.03.2015]
  • [rejected, 23/02/2017] Similar to the materials, it is necessary to decide how to save the instruments defined by users. For example, I have about 10 samples measured by GALAXI where only the incident angle was varied. The rest instrument parameters were the same. [Marina, 10.04.2015]
  • [fixed, 01/09/2017]Provide instrument clone [Gennady, 23/02/2017].
  • What is the unit used for the intensity : 1/s ? [Celine, 22/05/2014]
  • The parameters used for the distributions should be defined (units and meaning in a given distribution) [Celine, 06/03/2015]


  • When adding a particle, the pictogram is always a cylinder. But it is correct when the form factor is edited and the shape modified [Celine, 22/05/2014].
  • [fixed, 10/07/2014] There is no option to select all the sample in order to move it on one block [Celine, 22/05/2014].
  • [fixed, 10/07/2014] Provide pan tool button: click and hold mouse to move view in all directions (probably together with alt or spacebar) [Gennady, 30/05/2014].
  • [fixed, 10/07/2014] Implement kind of fit-window-to-sample behabiour [Celine, 22/05/2014].
  • [fixed, 10/07/2014] Fix dock-windows behaviour (right-mouse-button menu) [Celine, 22/05/2014].
  • [fixed, 23/07/2014] Moving whole selected sample as one thing across DesignerScene is very unresponsive [Gennady, 10/07/2014].
  • [fixed, 18/09/2014] Provide widgetbox with tooltips [Gennady, 30/05/2014].
  • [fixed, 18/09/2014] Provide PropertyEditor with tooltips [Gennady, 30/05/2014].
  • [fixed, 18/09/2014] Revise drop-whole-sample behaviour to allow dropping in the middle of the screen [Celine, 22/05/2014].
  • [rejected, 18/09/2014] DesignerView: selecting the sample with rubber band should lead to the shift of workspace if rubber band reaches the edge of workspace [Gennady, 11/07/2014].
  • [rejected, 18/09/2014] DesignerView: think of "infinite" workspace behavior (initial size of workspace, center button behavior, zoom in/out) [Gennady, 11/07/2014].
  • [fixed, 18/09/2014] Size of item being dragged from widgetbox should be deduced from current zoom level of the workspace [Gennady, 11/07/2014].
  • [fixed, 18/09/2014] For consistency, "radial paracrystal" should be written with a capital "R" [Celine, 06/03/2015].
  • [rejected, has gone] When you first time switch to the SampleDesigner, there is a tiny but noticeable delay ~0.5 sec. Find out what it is, and move initialization to the start-up of the mainwindow (under splash screen) [Gennady, 18/7/2014].
  • [rejected, has gone]When Python Script Viewer is shown for the first time, there is a tiny delay ~0.2 sec. This is connected with setLineWrapMode(QTextEdit::NoWrap), see PySampleWidget c-tor. Find the reason of the delay [Gennady, 18/7/2014].
  • Layer's painter should somehow represent roughness if exists [Gennady, 9/07/2014].
  • Revise SampleViewAligner algorithm: it starts to hide children of CoreShellParticleItem one under another if you add too much children; if one drag and drop sample
    with two layouts (e.g. SizeDistributionLMAModelBuilder) to the scene, they are badly aligned [Gennady, 01/06/2015]
  • Deletion of ParticleLayout should delete layout only, schildren should stay on canvas [Gennady, 16/10/2018].


  • [fixed, 05/10/2017] Load files in a separate thread [Gennady, 23/09/2016].
  • [fixed, 05/10/2017] Add ProjectionEditor next to the MaskEditor [Gennady, 23/02/2017].
  • Provide possibility to load multiple files at once with shift key [Marina, 23/09/2016].
  • Generate pictogram 64x64 out of real image and use it as an icon in QListView repreesenting loaded datasets [Gennady, 23/09/2016].


  • [fixed, 18/09/2014] Provide group box dedicated to RunParameters (RunPolicy, number of threads, etc) [Gennady, 30/05/2014].
  • [fixed, 18/09/2014] Provide global shortcut "Run simulation" to run simulation from any place of the program [Antti, 18/06/2014].
  • [fixed, 28/04/2015] If job was submitted for consequent execution, when after it is executed, no update of IntensityDataWidget
  • [rejected, 14.04.2014] When you first time switch to the SimulationView, it has to show by default the instrument currently selected on InstrumentView and the sample, currently selected on SampleView [Gennady, 06/03/2015].
  • For long simulation provide realtime update of PlotWidget with filled area growing from center [Antti, 18/06/2014].
  • Export to Python script dialogue should generate Python script in the thread and then fill dialog window with result. For the moment there is one second unresponsive dealy (in Debug mode) [Gennady, 15/12/2015].

JobView, Intensity plot

  • [fixed, 06/08/2014] when saving a figure, the lines used to select 1D cuts are shown [Celine, 22/05/2014].
  • [fixed, 22/09/2014] Repair OutputDataWidget on cancelJob. It should show OutputData as it was completed at the moment of pushing cancelButton [Gennady, 17/09/2014].
  • [fixed, 22/09/2014] the default labels for the axes should be given instead of x and y axes [Celine, 22/05/2014].
  • [fixed, 22/09/2014] it would be useful to have a drawing defining the angles associated with the inclination and azimuthal ranges [Celine, 22/05/2014].
  • [fixed, 25/09/2014] Revise JobQueueModel::dataChanged(). Is it necessary to report to ProjectDocument every update in ProgressBar? [Gennady, 17/09/2014].
  • [fixed, 18/09/2014] Revise logic of running jobs which are in waiting list [Gennady, 13.08.2014].
  • [fixed, 18/09/2014] Save plot should save to the project directory by default, if it doesn't exist, when in Qt's user writable directory [Gennady, 25/09/2014].
  • [fixed, 18/09/2014] Default behaviour of OutputDataWidget should be - no projections, no property editor [Gennady, 25/09/2014]
  • [fixed, 18/03/2015] Realtime view should have a switch to freeze updates of min,max on z-axis [Gennady, 12/02/2015]
  • [fixed, 28/04/2015] Replace widget "Houston we have a problem" with WarningSignWidget as in python editor to have uniform warning style across the application [Gennady, 28/03/2015]
  • [fixed, 02/05/2015] Provide the way of setting all selected jobs to the same zmin, zmax [Gennady, 13/05/2015]
  • [rejected, 01/02/2016] When Job is heavy, press on Cancel button leads to the actual cancelling of the job several seconds during which user doesn't understand what is going on. Make additional status "Canceling..." [Gennady, 8/07/2015].
  • [fixed, 14/04/2016] Add exact job duration in msec to the JobItem (BeginTime, EndTime is not enough to make precis control over the performance) [Gennady, 08.06.2015].
  • [fixed, 30/06/2016] In IntensityDataWidget projections and status string at the bottom should be cleaned when the mouse leaves colorplot area [Gennady, 13.05.2015].
  • [fixed, 23/02/2017] In RealTimeView signals toward JobSelector and IntensityData projections should be suppressed, if they are hidden from the user [Gennady, 12.02.2015].
  • [fixed, 23/02/2017] The labels of the axes for the projections overlap. [Celine, 06/03/2015]
  • [fixed, 23/02/2017] We need somewhat better projection view for ColorMapPlot, with possibility to draw along arbitrary cuts.
  • [fixed, 05/10/2017] Provide saving of projections into the file [Gennady, 23/02/2017].
  • In RealTimeView/ModelTuningWidget: when slider moves too fast, and then stops (while simulation still running), the last position is not processed any more.
    User gets wrong impression, that what he sees on the IntensityWidget corresponds to the current state of parameters. In fact he sees simulation result corresponding to some previous slider position. [Gennady, 19.03.2015].
  • In RealTime activity mode, when plot is zoomed in, and user tunes parameters -> we could mask on the fly the detector area, corresponding to zoom level. This would make real time simulation much faster. [Gennady, 04/02/2016].
  • Provide tool for measuring distances on intensity plot [Gennady, 16/03/2016].
  • Would be nice to have markers on color map, important when tuning simulation in real time view. Use case: the user tries to move some peaks into right position and he wants to mark this position. [Gennady, 15/04/2016].
  • Very important to add materials into real time view [Gennady, 15/04/2016].
  • ColorMap status string should be aware of logz [Gennady, 23/02/2017].
  • Failed job should generate a valid OutputData filled with zeroes, to not to confuse ColorMap with weired axes range [Gennady, 23/02/2017].


  • Create new FirComparisonWidget with possibility to compare projections of real data against simulation [Gennady, 23/02/2015].


  • [fixed, 23/07/2014] if color of MaterialProperty is changed from the editor, this change is propagated to only selected layer, others show previous color[Gennady, 30/05/2014].
  • [fixed, 23/07/2014] if Material is deleted from MaterialEditor, Layers and Particles still show old MaterialProperty [Gennady, 30/05/2014].
  • [fixed, 23/07/2014] Put check for correct values of RefractiveIndex's delta, beta in MaterialEditor (it is String for the moment) [Gennady, 30/05/2014].
  • [fixed, 23/07/2014] After opening existing project, the MaterialEditor doesn't remember the order of materials [Gennady, 30/05/2014].
  • [fixed, 14/04/2016] Add colour square in type material selector [Gennady, 30/05/2014].
  • [fixed, 14/04/2016] Provide copy of selected material [Gennady, 30/05/2014].
  • [fixed, 14/04/2016] Revise Select/Cancel button behaviour in material editor. Work on copy of MaterialModel or directly? [Gennady, 23/07/2014].
  • [rejected, 14/04/2016] Decide how to save custom materials entered by user: to particular project or to user settings? Users can have many projects/samples with the same materials as well as use a lot of different materials. [Marina, 20.03.2015]
  • [fixed, 14/04/2016] Make evident which button to press if Material Editor have been opened with the 'Open material editor' button and none of layers is selected. The choice for the moment is only 'Select' and 'Cancel'. This seems to be quite confusing for me. [Marina, 10.04.2015]
  • [fixed, 14/04/2016] Make evident which button to press if Material Editor have been opened with the 'Open material editor' button and none of layers is selected. The choice for the moment is only 'Select' and 'Cancel'. This seems to be quite confusing for me. [Marina, 10.04.2015]

Help system.


  • [rejected, 23/02/2017] There should be hide/show menubar option, similar to Firefox.
  • [rejected, 23/02/2017] Seems that we need kind of LogBook, where the user will collect intermediate results of his simulations and/or parameter tuning, including comments, sample parameters and plots. [Gennady, 12/05/2015].
  • [fixed, 1/09/2017] Implement functional test to measure GUI performance by mimicking RealTiveActivity [Gennady, 23/02/17].
  • Introduce same context menu for all ColorMap plots [Gennady, 23/02/17].

SessionModel, ParameterizedItem, PropertySystem

  • -[fixed, 14/04/2016] When switching from one SubItem to another (e.g. FormFactor of ParticleItem), the previous item has to be not deleted, but saved in a kind of cache. [Gennady, 20/05/2015].
  • [fixed, 14/04/2016] AwesomePropertyEditor should react not only on property change, but on also on PropertAttribute change.
  • [rejected, 23/02/2017] ParameterizedItem property attributes have to be saved in XML along with properties itself.[Gennady, 20/05/2015].
  • [fixed, 27/11/2017] Revise PropertyItem, remove ScientificDoubleProperty, introduce EditorRole [Gennady, 23/02/2017].
  • All SessionItem roles has to be serialized [Gennady, 23/02/2017].

GUI Layout and State.

The state of certain GUI elements (size of dialog windows, position of sliders, selected gradients, etc) have to be saved in DocumentModel, and, in some cases, into BornAgain ./configuration. This will help the user not to enter again/and/again same values (like favorite gradient for the color map) or resize windows to the favorite layout.

  • [fixed, 01/06/2017]Provide saving of IntensityData's selected gradient in project setting [Gennady, 23/02/2017].
  • Implement generic mechanism to store GUI layout in DocumentModel/QSettings.
  • Export to Python script dialogue should store it's size in Application settings. [Gennady, 01/06/2015].

Back compatibility, import/export, unddo/redo.

  • [fixed, 01/06/2017]Revise saving logic (auto saving, recover session) [Gennady, 13/08/2014].
    • This is still important. Project has to be saved periodically into *.pro.temp file, so if project crashes it can be restored [Gennady, 15/04/2016].
  • [fixed, 01/09/2017]Provide import from Python script [Gennady, 23/02/2017].
  • Provide unddo/redo functionality [Gennady, 11/07/2014].
  • How to provide backward compatibility for project files? [Gennady, 20/05/2015].
  • Provide import of model parts from another project [Gennady, 23/02/2017].

GUI documentation.

  • In "Using Graphical Interface" section create sub section with tips and tricks [Gennady. 04.02.2016]
    • Explain how to normalize several job results to single intensity

GUI major refactoring.

  • Get rid of LinkedItem, ParameterTreeItems and everything which supports RealTimeView. It's all should rely on original SessionModel [Gennady, 13/12/2017].
  • Get rid of FitParameterProxyModel. Fitting machinery to drag-and-drop fit parameters should rely on original SessionModel [Gennady, 13/12/2017].
  • Refactor the most ancient SampleView [Gennady, 13/12/2017].

issues.csv Magnifier - Issues from 15.09.2017 (115 KB) pospelov, 15 Sep 2017 11:10

issues.pdf - Issues from 15.09.2017 (917 KB) pospelov, 15 Sep 2017 11:11