filter: index/unindex dives on loading or clearing logs

When loading dive data, populate the fulltext index. When clearing
dive data, free the fulltext index. When deleting a dive, remove it
from the fulltext index.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-02-16 22:26:47 +01:00 committed by Dirk Hohndel
parent 6434ad2628
commit d3f6e032cc
3 changed files with 20 additions and 0 deletions

View file

@ -17,6 +17,10 @@
#include "tag.h"
#include "trip.h"
#include "structured_list.h"
#ifndef SUBSURFACE_MOBILE
#include "fulltext.h"
#endif
/* one could argue about the best place to have this variable -
* it's used in the UI, but it seems to make the most sense to have it
@ -356,6 +360,9 @@ static void free_dive_structures(struct dive *d)
{
if (!d)
return;
#ifndef SUBSURFACE_MOBILE
fulltext_unregister(d);
#endif
/* free the strings */
free(d->buddy);
free(d->divemaster);
@ -401,6 +408,9 @@ static void copy_dive_nodc(const struct dive *s, struct dive *d)
*d = *s;
memset(&d->cylinders, 0, sizeof(d->cylinders));
memset(&d->weightsystems, 0, sizeof(d->weightsystems));
#ifndef SUBSURFACE_MOBILE
d->full_text = NULL;
#endif
invalidate_dive_cache(d);
d->buddy = copy_string(s->buddy);
d->divemaster = copy_string(s->divemaster);