From 1e45722ea1f3d3d5ededaba75967eea5fd439264 Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 8 Aug 2023 22:47:53 +0200 Subject: [PATCH] Avoid running into Qt assertion when destructing TagFieldEdit --- gui/tagfieldedit.cpp | 8 ++++++++ gui/tagfieldedit.h | 1 + 2 files changed, 9 insertions(+) diff --git a/gui/tagfieldedit.cpp b/gui/tagfieldedit.cpp index bf412f1..efb6a20 100644 --- a/gui/tagfieldedit.cpp +++ b/gui/tagfieldedit.cpp @@ -81,6 +81,14 @@ TagFieldEdit::TagFieldEdit(const QList &tags, TagParser::Known updateValue(); } +TagFieldEdit::~TagFieldEdit() +{ + // delete those actions before entering base class destructors as we connect signal handlers when those actions are + // destructed and calling those handlers is gonna break otherwise + delete m_lockAction; + delete m_restoreAction; +} + /*! * \brief Assigns the specified \a tags and sets the specified \a fields using the given \a previousValueHandling. * diff --git a/gui/tagfieldedit.h b/gui/tagfieldedit.h index 42d9774..58da7f0 100644 --- a/gui/tagfieldedit.h +++ b/gui/tagfieldedit.h @@ -39,6 +39,7 @@ class TagFieldEdit : public QWidget { public: explicit TagFieldEdit(const QList &tags, TagParser::KnownField field, QWidget *parent = nullptr); + ~TagFieldEdit() override; const QList &tags() const; TagParser::KnownField field() const;