so far I could see, your project will not work. Following implementations need a rework, since they don't make sense actually:
1.) DismissDialog() with a new instance of some component as parameter. DismissDialog() is intended to dismiss a previously presented dialog. The following will not work:
2.) The System Event Handler is found in the component SplashScreen. The instance of this component, however, does not belong to the view tree. Its Owner is null:
This is the case, because the SplashScreen component is instantiated in the above (item 1) operation. There, you invoke DismissDialog() with new Application::SplashScreen as operand. This creates a new instance of the SplashScreen component. Since the instance is not used elsewhere in the application, it will be disposed by the next garbage collection. In the meantime, the system event handler found in the instance can receive events. And it receives an event. Another instances seems to be instantiated in the onKeyRelease method:
3.) The SplashScreen component tries to create a new instance of itself and present it within its own scope. This occurs when the System Event Handler in SplashScreen is triggered:
Since the actual instance (item 2 above) is not belonging to view tree, the effect of this operation is not visible.
Well, what can do? First rework the code to clean the above items 1-3. Then, move the System Event Handler and its associated slot method to the Application::Application component. I did following for example. Now the SplashScreen appears when the system event is triggered:
So far the solution for this issue. I hope it helps you really further. It seems you are struggling with many very basic problems ....