[SettingsButtonWidget] Fix memory leak from unparented popup (#7055)
Some checks are pending
Build Desktop / Configure (push) Waiting to run
Build Desktop / Debian 13 (push) Blocked by required conditions
Build Desktop / Debian 12 (push) Blocked by required conditions
Build Desktop / Fedora 44 (push) Blocked by required conditions
Build Desktop / Fedora 43 (push) Blocked by required conditions
Build Desktop / Servatrice_Debian 12 (push) Blocked by required conditions
Build Desktop / Ubuntu 26.04 (push) Blocked by required conditions
Build Desktop / Ubuntu 24.04 (push) Blocked by required conditions
Build Desktop / Arch (push) Blocked by required conditions
Build Desktop / macOS 14 (push) Blocked by required conditions
Build Desktop / macOS 15 (push) Blocked by required conditions
Build Desktop / macOS 13 Intel (push) Blocked by required conditions
Build Desktop / macOS 15 Debug (push) Blocked by required conditions
Build Desktop / Windows 10 (push) Blocked by required conditions
Build Docker Image / amd64 & arm64 (push) Waiting to run

This commit is contained in:
RickyRister 2026-07-28 16:12:41 -07:00 committed by GitHub
parent be6a783c12
commit 6766b0af89
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 0 deletions

View file

@ -20,6 +20,13 @@ SettingsButtonWidget::SettingsButtonWidget(QWidget *parent)
setLayout(layout); setLayout(layout);
} }
SettingsButtonWidget::~SettingsButtonWidget()
{
// We don't parent the popup because it might lead to better behavior on certain window managers.
// So we have to manually delete it
popup->deleteLater();
}
void SettingsButtonWidget::addSettingsWidget(QWidget *toAdd) const void SettingsButtonWidget::addSettingsWidget(QWidget *toAdd) const
{ {
popup->addSettingsWidget(toAdd); popup->addSettingsWidget(toAdd);

View file

@ -19,6 +19,9 @@ class SettingsButtonWidget : public QWidget
public: public:
explicit SettingsButtonWidget(QWidget *parent = nullptr); explicit SettingsButtonWidget(QWidget *parent = nullptr);
~SettingsButtonWidget() override;
void addSettingsWidget(QWidget *toAdd) const; void addSettingsWidget(QWidget *toAdd) const;
void removeSettingsWidget(QWidget *toRemove) const; void removeSettingsWidget(QWidget *toRemove) const;
void setButtonIcon(QPixmap iconMap); void setButtonIcon(QPixmap iconMap);