[qofbook.cpp] backport qof_book_unset_feature from master

This commit is contained in:
Christopher Lam 2021-12-02 22:12:12 +08:00
parent cf088f2a70
commit a078921a33
2 changed files with 17 additions and 0 deletions
libgnucash/engine

View File

@ -1285,6 +1285,22 @@ qof_book_test_feature (QofBook *book, const char *feature)
return (frame->get_slot({GNC_FEATURES, feature}) != nullptr);
}
void
qof_book_unset_feature (QofBook *book, const gchar *key)
{
KvpFrame *frame = qof_instance_get_slots (QOF_INSTANCE (book));
auto feature_slot = frame->get_slot({GNC_FEATURES, key});
if (!feature_slot)
{
PWARN ("no feature %s. bail out.", key);
return;
}
qof_book_begin_edit (book);
delete frame->set_path({GNC_FEATURES, key}, nullptr);
qof_instance_set_dirty (QOF_INSTANCE (book));
qof_book_commit_edit (book);
}
void
qof_book_load_options (QofBook *book, GNCOptionLoad load_cb, GNCOptionDB *odb)
{

View File

@ -382,6 +382,7 @@ void qof_book_option_frame_delete (QofBook *book, const char* opt_name);
/** Access functions for reading and setting the used-features on this book.
*/
GHashTable *qof_book_get_features (QofBook *book);
void qof_book_unset_feature (QofBook *book, const gchar *key);
void qof_book_set_feature (QofBook *book, const gchar *key, const gchar *descr);
void qof_book_begin_edit(QofBook *book);