Put docker panel in Popup Palette
Uses the side panel in the Popup Palette to borrow the widget of the selected docker while the panel is open. If the docker itself is open, it shows a message explaining where the widget has gone. The On-Canvas Brush Editor formerly in this panel is converted into a docker, and chosen by default. The list of dockers shown in the combobox is configurable.
Thread: https://krita-artists.org/t/layers-dockers-under-pop-up-pallete/78355
Todo:
- The config dialog uses a generic version of KisDlgBrushHudConfig (the on-canvas brush editor's config), called KisDlgListPicker. I'm not sure whether it's a good idea to make it a generic class. If it is, it probably needs better implementation (and a better name?), and it would also need refactoring BrushHud to use it.
- Some of the dockers (Animation Timeline, Tool Options, Recorder) aren't sized very well when inside the panel. I'm not sure how to fix that- may need changes to those dockers' sizing?
The Channels docker's widget doesn't seem to show anything unless the docker is shown, so there is a workaround to show it. I don't know why that happens.
Test Plan
Open Popup Palette, open the docker panel with the button on the right. Add dockers to the combobox with the config button's dialog, scroll through them. If the docker itself is also being shown, it should have a message shown while the widget is being borrowed. The list of dockers and the currently selected one should be remembered in the config.
Formalities Checklist
-
I confirmed this builds. -
I confirmed Krita ran and the relevant functions work. -
I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!) -
I made sure my commits build individually and have good descriptions as per KDE guidelines. -
I made sure my code conforms to the standards set in the HACKING file. -
I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.
Reminder: the reviewer is responsible for merging the patch, this is to ensure at the least two people can build the patch. In case a patch breaks the build, both the author and the reviewer should be contacted to fix the build. If this is not possible, the commits shall be reverted, and a notification with the reasoning and any relevant logs shall be sent to the mailing list, kimageshop@kde.org.