From b48d87b3ea2e3e4d7e62fd7880f15dbce28c49ea Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 17 Dec 2015 23:18:22 +0100 Subject: [PATCH] add API to query stateful ID override mode --- libs/pbd/pbd/stateful.h | 4 +++- libs/pbd/stateful.cc | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/libs/pbd/pbd/stateful.h b/libs/pbd/pbd/stateful.h index 0207cfcf0c..fe2df93147 100644 --- a/libs/pbd/pbd/stateful.h +++ b/libs/pbd/pbd/stateful.h @@ -131,9 +131,11 @@ class LIBPBD_API Stateful { */ virtual void mid_thaw (const PropertyChange&) { } + bool regenerate_xml_or_string_ids () const; + private: friend struct ForceIDRegeneration; - static Glib::Threads::Private regenerate_xml_or_string_ids; + static Glib::Threads::Private _regenerate_xml_or_string_ids; PBD::ID _id; gint _stateful_frozen; diff --git a/libs/pbd/stateful.cc b/libs/pbd/stateful.cc index a5b583cc4d..3fb11a3a50 100644 --- a/libs/pbd/stateful.cc +++ b/libs/pbd/stateful.cc @@ -44,7 +44,7 @@ namespace PBD { int Stateful::current_state_version = 0; int Stateful::loading_state_version = 0; -Glib::Threads::Private Stateful::regenerate_xml_or_string_ids; +Glib::Threads::Private Stateful::_regenerate_xml_or_string_ids; Stateful::Stateful () : _extra_xml (0) @@ -383,7 +383,7 @@ bool Stateful::set_id (const XMLNode& node) { const XMLProperty* prop; - bool* regen = regenerate_xml_or_string_ids.get(); + bool* regen = _regenerate_xml_or_string_ids.get(); if (regen && *regen) { reset_id (); @@ -407,7 +407,7 @@ Stateful::reset_id () void Stateful::set_id (const string& str) { - bool* regen = regenerate_xml_or_string_ids.get(); + bool* regen = _regenerate_xml_or_string_ids.get(); if (regen && *regen) { reset_id (); @@ -416,11 +416,22 @@ Stateful::set_id (const string& str) } } +bool +Stateful::regenerate_xml_or_string_ids () const +{ + bool* regen = _regenerate_xml_or_string_ids.get(); + if (regen && *regen) { + return true; + } else { + return false; + } +} + void Stateful::set_regenerate_xml_and_string_ids_in_this_thread (bool yn) { bool* val = new bool (yn); - regenerate_xml_or_string_ids.set (val); + _regenerate_xml_or_string_ids.set (val); } } // namespace PBD