Make advanced options of "open with" dialog collabsible and hidden by default
Review Request #130180 - Created July 12, 2017 and submitted
The current "open with" dialog implementation does not follow the KDE principle "Simple by default, powerful when needed" for the following reasons:
- The "run in terminal" and "keep terminal open" options are advanced options and should not be exposed by default
- The primary goal of the dialog should be to select an application from the app tree, running command is an advanced feature
My patch changes the behavior as follow:
- Put the two options in a KCollapsibleComboBox collapsed by default
- The user can expand it only if he needs to use a command line command
- When the KCollapsibleComboBox is clicked it is expanded upward keeping the dialog size fixed and compressing the treeview, I'm not sure this is the best approach, but to make it expand downwards we need to fix the size of the dialog with setSizeConstraint(QLayout::SetFixedSize); which may not be desiderable. Maybe there is a way to keep the dialog resizable and expand the combobox downwards, but I couldn't find it.
- I've increased the vertical size of the dialog (which I think it was too small) also to accomodate the upward expansion which otherwise would make the app tree almost disappear
Enlarging the dialog when showing a child widget can sometimes be done by activating the toplevel layout, but with a listview above I'm not sure it would work.
Anyway, I like how it behaves with your patch, I find it quite nice actually, to make things fit within the window rather than forcefully resizing the window.