Replace qApp with a new cuegui.App library.
Link the Issue(s) this Pull Request is related to. Fixes #1192.
Summarize your change.
We introduce a new App library which is used to create and access the application instance. This replaces our use of QtGui.qApp for the same purpose.
This allows us to avoid the no attribute 'qApp' error that's been a regular occurrence for a long time and has recently start causing consistent CI pipeline failures. See #1192 for more details.
Many classes now store the instance as self.app which looks a bit cleaner and in several modules allows us to avoid importing the whole QtGui module just to access the application instance.
With the new library, lint is now able to trace CueGuiApplication references back to the actual class, so we're able to remove a ton of disable=no-member rules that were everywhere in that code. Also a few disable=attribute-defined-outside-init rules. There are still some disable=no-member rules left due to lint's inability to follow PySide signals, but that will have to be handled separately.
@DiegoTavares This is ready for review but could use some more testing.
As you can see from the last few commits in this branch I found a few spots where the whole self.app approach didn't work because there was some logic that happens before the parent class was instantiated. I think I got them all. But there could be some other non-obvious issues hidden here.
Working on building a package with pyside6 internally to test this.
Awesome, thanks.
FWIW PySide6 shouldn't be required to test this, I believe. It could be tested separately. And maybe it should be, to isolate any issues and help unbreak our CI pipelines.