From 08573fc96db564283f8580ae79de48085665f9dc Mon Sep 17 00:00:00 2001 From: Hyunjin Song Date: Mon, 30 Apr 2018 14:54:34 +0900 Subject: [PATCH] Fix detuning crash after deleting the note being edited (#4324) --- src/gui/editors/PianoRoll.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/editors/PianoRoll.cpp b/src/gui/editors/PianoRoll.cpp index dbec84357..888425ddc 100644 --- a/src/gui/editors/PianoRoll.cpp +++ b/src/gui/editors/PianoRoll.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -1334,8 +1335,8 @@ void PianoRoll::mousePressEvent(QMouseEvent * me ) if( m_editMode == ModeEditDetuning && noteUnderMouse() ) { - static AutomationPattern* detuningPattern = nullptr; - if (detuningPattern != nullptr) + static QPointer detuningPattern = nullptr; + if (detuningPattern.data() != nullptr) { detuningPattern->disconnect(this); } @@ -1345,7 +1346,7 @@ void PianoRoll::mousePressEvent(QMouseEvent * me ) n->createDetuning(); } detuningPattern = n->detuning()->automationPattern(); - connect(detuningPattern, SIGNAL(dataChanged()), this, SLOT(update())); + connect(detuningPattern.data(), SIGNAL(dataChanged()), this, SLOT(update())); gui->automationEditor()->open(detuningPattern); return; }