GUI usability issues, required fixes

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


  • 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]


  • 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].


  • 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].


  • 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

  • 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].


  • Introduce same context menu for all ColorMap plots [Gennady, 23/02/17].

SessionModel, ParameterizedItem, PropertySystem

  • 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.

  • 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.

  • 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].