https://bugs.kde.org/show_bug.cgi?id=450394
Bug ID: 450394 Summary: BambooTracker slows down on Breeze, due to leaking QProxyStyle and Breeze installing global event handlers Product: Breeze Version: 5.24.1 Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: QStyle Assignee: plasma-b...@kde.org Reporter: nyanpas...@tuta.io CC: noaha...@gmail.com Target Milestone: --- SUMMARY When I run BambooTracker and open and close many different instrument dialogs, the application slows down when rendering with Breeze theme. STEPS TO REPRODUCE 1. Install/build and run https://github.com/BambooTracker/BambooTracker (self-built or from a distro package). 2. Download and extract https://github.com/BambooTracker/BambooTracker/files/7169359/32.64.128.instruments.zip, and open "128 instruments.btm" in BambooTracker. 3. In the instruments pane in the top of the window, double-click each instrument and then close the dialog (eg. pressing Esc). The application leaks QProxyStyle (yes, it should be fixed, I reported at https://github.com/BambooTracker/BambooTracker/issues/418). Each FM instrument dialog creates dozens of `LabeledVerticalSlider`, each with their own `SliderStyle : QProxyStyle` instance intended to set `styleHint(QStyle::SH_Slider_AbsoluteSetButtons) = Qt::LeftButton`. When you open dozens of instrument dialogs, the app becomes increasingly unresponsive as `QCoreApplication` loops through around a thousand event filters per event. (Due to another bug, opening and closing an instrument dialog doesn't delete the dialog object, so you only need to open and close one dialog at a time to get the slowdown.) I haven't fixed the bugs in BambooTracker itself, and neither have the app's maintainers. I suspect a lazy-init `static SliderStyle * = nullptr` might work better than the ideas I listed in the original bug report. OBSERVED RESULT The application should start slowing down after around 10 instruments. By the time you've opened 30-40 instrument dialogs, there will be a noticeable delay (0.5-1 second) opening/closing instrument or other dialogs. The slowdown increases as you open more instruments. EXPECTED RESULT Each QProxyStyle created doesn't cause a global slowdown. I don't notice any slowdown when setting KDE to use the Fusion application style instead of Breeze. SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.24.1 KDE Frameworks Version: 5.91.0 Qt Version: 5.15.2 Kernel Version: 5.16.9-zen1-1-zen (64-bit) Graphics Platform: X11 Processors: 12 × AMD Ryzen 5 5600X 6-Core Processor Memory: 15.6 GiB of RAM Graphics Processor: NVIDIA GeForce GT 730/PCIe/SSE2 ADDITIONAL INFORMATION Initially reported as 442465, which was closed with the message "If you have an example of actual apps in the wild using proxy styles and having lag due to Breeze, please open a new bug about this." -- You are receiving this mail because: You are watching all bug changes.