fix(viz): SightViewer organ manager material selector crashes when no material is found
Description
Organ manager material selector crashes the program when no material is found (empty selector) and the user clicks and Reload
Steps to reproduce
- Launch SightViewer.
- Verify your material list is empty.
- Load an organ, anything.
- Go to the organ manager.
- Select the organ you just loaded.
- Scroll back to
Material selector
. - Click
Reload
. -
Segfault
.
See the log below (from 09fd19200d98cf706cad99f6cf7fd0fe89d23ef6).
./bin/sightviewer
/home/eduhamel/builds/Sight/quick_tests/build/bin/sightrun.bin "/home/eduhamel/builds/Sight/quick_tests/build/share/sight/SightViewer/profile.xml"
[3172][00:00:00.179762][warning] [libs/core/core/runtime/detail/io/ModuleDescriptorReader.cpp:207] Module : <None>, node: styleSheet, blanks in xml nodes can result in unexpected behaviour. Consider using <![CDATA[ ... ]]>.
[3202][00:00:00.181590][warning] [libs/core/data/ptr.hpp:502] Could not find any registered ptr with key 'outputSeriesDB'
[3219][00:00:00.182298][warning] [libs/core/data/ptr.hpp:502] Could not find any registered ptr with key 'extrudedModelSeries'
[3220][00:00:00.182308][warning] [libs/core/data/ptr.hpp:502] Could not find any registered ptr with key 'landmarks'
[3221][00:00:00.182315][warning] [libs/core/data/ptr.hpp:502] Could not find any registered ptr with key 'volumeTF'
[3224][00:00:00.182632][warning] [libs/core/data/ptr.hpp:502] Could not find any registered ptr with key 'organManagerModelSeries'
[3276][00:00:00.265279][warning] [libs/core/core/runtime/detail/io/ModuleDescriptorReader.cpp:207] Module : <None>, node: styleSheet, blanks in xml nodes can result in unexpected behaviour. Consider using <![CDATA[ ... ]]>.
[3277][00:00:00.265302][warning] [libs/core/core/runtime/detail/io/ModuleDescriptorReader.cpp:207] Module : <None>, node: styleSheet, blanks in xml nodes can result in unexpected behaviour. Consider using <![CDATA[ ... ]]>.
[3278][00:00:00.265308][warning] [libs/core/core/runtime/detail/io/ModuleDescriptorReader.cpp:207] Module : <None>, node: styleSheet, blanks in xml nodes can result in unexpected behaviour. Consider using <![CDATA[ ... ]]>.
[3381][00:00:00.333480][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_AppCfg_1_volumeTF' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_volumeAdp'. This is useless, so maybe you intended to use a deferred object instead ?
[3384][00:00:00.333698][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_AppCfg_1_volumeTF' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_3DNegatoAdp'. This is useless, so maybe you intended to use a deferred object instead ?
[3406][00:00:00.335184][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_AppCfg_1_volumeTF' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_axialNegatoAdp'. This is useless, so maybe you intended to use a deferred object instead ?
[3410][00:00:00.335317][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_AppCfg_1_volumeTF' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_axialNegatoCameraAdp'. This is useless, so maybe you intended to use a deferred object instead ?
[3418][00:00:00.335951][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_AppCfg_1_volumeTF' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_sagittalNegatoAdp'. This is useless, so maybe you intended to use a deferred object instead ?
[3421][00:00:00.336043][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_AppCfg_1_volumeTF' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_sagittalNegatoCameraAdp'. This is useless, so maybe you intended to use a deferred object instead ?
[3429][00:00:00.336646][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_AppCfg_1_volumeTF' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_frontalNegatoAdp'. This is useless, so maybe you intended to use a deferred object instead ?
[3432][00:00:00.336735][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_AppCfg_1_volumeTF' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_frontalNegatoCameraAdp'. This is useless, so maybe you intended to use a deferred object instead ?
[3442][00:00:00.337195][error] [libs/core/service/AppConfigManager.cpp:638] [SightViewer_GenericScene_AppCfg] Object 'SightViewer_GenericScene_AppCfg_3_clippingMatrix' is not deferred but it is used as an optional key in service 'SightViewer_GenericScene_AppCfg_3_clippingBoxResetSrv'. This is useless, so maybe you intended to use a deferred object instead ?
[4048][00:00:00.785374][warning] [modules/viz/scene3d/Plugin.cpp:89] Warning: Can't assign material '' to SubMesh of 'human.mesh' because this Material does not exist in group 'Sight'. Have you forgotten to define it in a .material script?
[4109][00:00:00.826635][warning] [modules/viz/scene3d/Plugin.cpp:89] Warning: Material SightViewer_GenericScene_AppCfg_3_axialBackgroundAdp_VideoMaterial was requested with isManual=true, but this is not applicable for materials; the flag has been reset to false
[4112][00:00:00.827010][warning] [modules/viz/scene3d/Plugin.cpp:89] Warning: Material SightViewer_GenericScene_AppCfg_3_sagittalBackgroundAdp_VideoMaterial was requested with isManual=true, but this is not applicable for materials; the flag has been reset to false
[4115][00:00:00.827158][warning] [modules/viz/scene3d/Plugin.cpp:89] Warning: Material SightViewer_GenericScene_AppCfg_3_frontalBackgroundAdp_VideoMaterial was requested with isManual=true, but this is not applicable for materials; the flag has been reset to false
[4564][00:00:04.055741][warning] [libs/core/data/ptr.hpp:502] Could not find any registered ptr with key 'modelSeries'
[4566][00:00:04.055807][warning] [libs/core/data/ptr.hpp:502] Could not find any registered ptr with key 'organManagerModelSeries'
[4613][00:00:06.986959][error] [modules/ui/viz/SMaterialSelector.cpp:184] Could not find material
Segmentation fault (core dumped)
Functional specifications
This button does not crash the app when no material is found. It just does nothing.
Technical specifications
TBA
Test plan
TBA