Unregister settings callbacks on layer destruction

Fixes #151
This commit is contained in:
Dan Paulat 2024-02-28 22:37:22 -06:00
parent 721e3a163e
commit 35f29a794b
3 changed files with 89 additions and 37 deletions

View file

@ -5,6 +5,8 @@
#include <functional>
#include <optional>
#include <boost/uuid/uuid.hpp>
class QAbstractButton;
class QWidget;
@ -194,7 +196,15 @@ public:
*
* @param callback Function to be called
*/
void RegisterValueChangedCallback(ValueCallbackFunction callback);
boost::uuids::uuid
RegisterValueChangedCallback(ValueCallbackFunction callback);
/**
* Unregisters a function previously registered for change callback.
*
* @param uuid Uuid of the callback registration
*/
void UnregisterValueChangedCallback(boost::uuids::uuid uuid);
/**
* Registers a function to be called when the staged value changes (or a
@ -204,7 +214,15 @@ public:
*
* @param callback Function to be called
*/
void RegisterValueStagedCallback(ValueCallbackFunction callback);
boost::uuids::uuid
RegisterValueStagedCallback(ValueCallbackFunction callback);
/**
* Unregisters a function previously registered for value staging callback.
*
* @param uuid Uuid of the callback registration
*/
void UnregisterValueStagedCallback(boost::uuids::uuid uuid);
protected:
virtual bool Equals(const SettingsVariableBase& o) const override;