manual delete

This commit is contained in:
RickyRister 2026-07-26 20:29:37 -07:00
parent 005ec27e15
commit e8de848017
2 changed files with 11 additions and 1 deletions

View file

@ -6,7 +6,7 @@
#include <QScreen>
SettingsButtonWidget::SettingsButtonWidget(QWidget *parent)
: QWidget(parent), button(new QToolButton(this)), popup(new SettingsPopupWidget(this))
: QWidget(parent), button(new QToolButton(this)), popup(new SettingsPopupWidget(nullptr))
{
button->setIcon(QPixmap("theme:icons/cogwheel"));
button->setCheckable(true);
@ -20,6 +20,13 @@ SettingsButtonWidget::SettingsButtonWidget(QWidget *parent)
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
{
popup->addSettingsWidget(toAdd);

View file

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