On 2017-04-29 06:24 PM, Tim wrote: > For anyone having experienced the 'frozen' > Arranger bug (non-responsive to mouse): > > We talked about this before, I said it was an MDI > thing, observable in Qt5Creator, and I mentioned > some ways around it, like fooling with the > Appearance styles. > This thing has plagued Qt5 MusE for a while. > I have tried hard but it has stumped me. > > Hey! Last night I made some progress. > > Hope to have something soon. As in... > all Appearance styles working with > all stylesheets, and NO frozen Arranger. > > (Working on a couple of remaining areas.) > Wish me luck. > Tim. > > Tech stuff: > Wow! Oxygen and Breeze are reeeally picky > about how and when, and how many times you set > the application style and stylesheet. The freezing > seems to toggle on/off each time the style is set. > And I found a dumb pseudo-buggy Qt thing: > > Believing it wasn't possible, I discovered that you > CAN in fact ask what the current style's name is > by calling the style object's objectName(). > We use it already, but duh, somehow I didn't see that. > But, for some reason we ALSO had code which calls > setObjectName(). Seeing that, I reasoned that since > Qt already takes care of object naming for us, > I removed all such calls. Good. > > Armed with the ability to get the current style's name, > I added some missing optimizations to the routines that > set MusE's style, to ask if the current style is ALREADY > the desired style. Good. > > Then, lo and behold I found that the string returned > by the style object's objectName() is lowercase, > but the strings returned by QStyleFactory::keys() > are not ! As in: "oxygen" and "Oxygen". > > Phht. That means we MUST do case-insensitive comparisons > when asking such questions like comparing the current > style name with the names in the QStyleFactory keys. > Done. Good. > > Then I found it worked better if setStyleSheet is called > before setStyle, not the other way around like it is now. > > > I can now select any Appearance style and the Arranger > doesn't freeze, even after restarting! > > I can now set any Appearance stylesheet (say, Ardour.qss) > AND any style (say Breeze), click OK and the Arranger > doesn't freeze. Yay ! > (It does upon restarting. I'm working on it... I see more > potential toggling calls to setStyle and setStyleSheet. > I mentioned earlier that Oxygen and Breeze don't seem > to like multiple calls - it seems to 'toggle' the freezing > effect on/off. Arranger also freezes when you go back > to normal light stylesheet. I'm working on it...) > > >
Whew, that was tedious. Try it now, in git master. I forgot that MDI sub windows (including the Arranger) freeze EVEN when simply minimizing and maximizing them in the main window. Man, that's broken. It's damn lucky that even though the freezing can be seen in Qt5Designer, we have a way around it so that it works! I think I can now guarantee that no matter what Appearance style and/or stylesheet you choose, it will NOT freeze, even if you answer 'No' when asked to restart MusE (which you should do, but it might be OK anyways for you. YMMV.) I use KUbuntu LTS 16.04 Note: I installed muse on suse (and that rhymes) tumbleweed and just like before when I tested suse, there was no freezing, but still XCB connection errors. I pushed my work today so that I may now pull on suse. I will test and report back... Tim. ChangeLog: - More frozen MDI windows fixes: Added option "General Settings > Gui Behaviour > Fix frozen MDI sub windows". Move the theme and style stuff in MusE::changeConfig() into a separate MusE::updateThemeAndStyle(). Many places call changeConfig, but only a couple really needed updateThemeAndStyle(). TODO: Benign XCB connection errors may still occur. Remove diagnostic printf's. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Lmuse-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/lmuse-developer
