Introduce shell-embedded message area, to avoid dialog windows
When code wants to inform the user about an issue, lots of KDevelop code currently simply pops up a message dialog window, with all the consequences like stealing the focus. Most of the time the message though is just assisting information why something has not worked and does not need to block the user instantly from the normal interaction, instead could be digested by the user later.
This patch introduces a message area to the shell, between toolbars and the view area. Which will auto-expand if messages are to be shown. This is similar to the inline-message area known from KTextEditor documents, but here applied to the scope of the shell.
Luckily the code from KTextEditor for the message area can also be reused here (though only as fork for now), so it is well tested code.
Not all places using KMessageBox/QMessageBox for notification-like messages can be replaced yet, as sometimes they are used when assistant dialogs are open. That might need a second step to also ensure all such dialogs have such areas and could then get the messages channeled to them.
This message system would also allow to be extended later to send off messages to the workspace notification system if the shell window does not have focus, for messages flagged as being important enough for this.
See here two samples where before a messagebox dialog would have been shown: screenrecording-2020-01-15_12.08.49
There are of course some challenges when it comes to the minimal size needed. IMHO that is a small price to pay for the gain to get with this new feature. Typically an IDE is used also with large windows so should not be such an issue.
Example for a small window, with average text:
Besides the KTextEditor usage of the inline-messages I am not aware of similar UIs, so this might be partionally pioneering new UI patterns on the shell level. But I can tell already for what I tested the last days I like this less dialog-noise :) And thus I am right now thinking we should get this into 5.5 and enforce real world user feedback :)