Refactoring #1492

Updated by pospelov almost 4 years ago

We use WarningSignWidget (small yellow triangle) in different widgets under similar scenarios, but having lots of duplicated code doing the same.

* Split WarningSignWidget on two parts: widget itself and its controller.
** Use OverlayLabel and OverlayLabelCotroller as an example
* Introduce animation to stress it's reappearance (important in the context of FitActivityPanel)
* Introduce possibility to set custom title (Houston we have problem), label (Job has failed), and warning body.
* Think how to treat huge warning messages (i.e. in case of the fitting).
** Should it be some custom QPlainTextEdit instead of QMessageBox?
* Switch all widgets to it

*Additional bug discovered*

* When put Interference2DItem on graphics scene, a warning sign appears on PyScriptWidget, and never disappears again.

ParameterizedItem::getRegisteredProperty() -> Error. Unknown property 'Cross Correlation Length', item 'Interference2DLattice'

* Replace "Houston we have a problem" with something.

* Make WarningSign appearing on RealTimeWindow, if job is failing from the very beginning (i.e. if no parameter tuning was involved yet)
> E.g., in the case of the following workflow:
> 1) User has RealTimeView active.
> 2) Then he constructs bad sample (i.e. ParticleDistribution with large sigma, producing negative values)
> 3) User runs simulation -> the view switched to RealTimeView -> user sees blue color map, no warning sign.
> 4) Since job selector is closed, and yellow progress bar is not seen, it is not clear that job has failed.