[Katemdi] Resize / show / hide problems
Review Request #127481 - Created March 24, 2016 and submitted
|cullmann, dhaumann, sars|
I. Fixed problem
1. You have more than one tab on left/right side
2. Toolview is showed, grow size and hide it
3. Show it with previous tab => widget is showed with last stored size, it not respect splitter size
II. Fixed problem
1. You have more than 1 tab on left side
2. Switch between and hide them
3. Switch between tabs after new show not refresh toolview content (i'm confused showWidget is called, but it's not work)
III. Still not fixed
1. You have tabs on left and right side
2. Show only left ones, resize splitter and hide
3. Show only right ones, width is 80, no matter what is stored, you are dogged and risize it
4. Back to left ones, width again is 80
II and III will be fixed when i understaind why it happens. I guess setting minimumSize(80,80) all over showWidget
The main problem is fixed (II-nd). Left and topd side panels are totally unusable after hide / show. Set project plugin on the left sid panel, expand some dir scroller to be shown, hide and show tab scroller change it position but widget content is not updated. This is because
m_ownSplit->setOpaqueResize(style()->styleHint(QStyle::SH_Splitter_OpaqueResize, 0, m_ownSplit));
default is wanted and worked correctly behavior -> http://doc.qt.io/qt-5/qsplitter.html#opaqueResize-prop
I remove all setOpaqueResize they can be unspectable.
III-th please do not use setMinimumSize it's better to use sizeHint + minimumSizeHint, about me. However i want when left side panel is hidden, resizing right one, left to not be shown in minimumSizeHint. But i'm still not sure it's possible.
Revision 2 (+27 -33)
I cannot reproduce the problem this patch fixes, since I don't know what to do. Do I have two toolview on the left AND the right? Please provide a detailed step-by-step list of what I have to do, if need be, provide screenshots.
You are removing all calls of setOpaqueResize(style()->styleHint(QStyle::SH_Splitter_OpaqueResize, 0, m_vSplitter));
Is that not needed anymore? And I assume this is unrelated to the other fixes? If so, this should be a separate commit.