Tim
2017-04-29 22:24:21 UTC
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...)
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...)