mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
core: add get_picture_idx() function
A function that gets the index of a picture in a picture table given its filename. Since we are going to identify pictures by their filename, we will need this function in the undo code. Use the function in the remove_picture() function. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
4e25912fd3
commit
db24f16686
2 changed files with 15 additions and 7 deletions
|
@ -58,14 +58,21 @@ void add_picture(struct picture_table *t, struct picture newpic)
|
|||
add_to_picture_table(t, idx, newpic);
|
||||
}
|
||||
|
||||
int get_picture_idx(const struct picture_table *t, const char *filename)
|
||||
{
|
||||
for (int i = 0; i < t->nr; ++i) {
|
||||
if (same_string(t->pictures[i].filename, filename))
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Return true if picture was found and deleted
|
||||
bool remove_picture(struct picture_table *t, const char *filename)
|
||||
{
|
||||
for (int i = 0; i < t->nr; ++i) {
|
||||
if (same_string(t->pictures[i].filename, filename)) {
|
||||
remove_from_picture_table(t, i);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
int idx = get_picture_idx(t, filename);
|
||||
if (idx < 0)
|
||||
return false;
|
||||
remove_from_picture_table(t, idx);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ extern void add_to_picture_table(struct picture_table *, int idx, struct picture
|
|||
extern void copy_pictures(const struct picture_table *s, struct picture_table *d);
|
||||
extern void add_picture(struct picture_table *, struct picture newpic);
|
||||
extern bool remove_picture(struct picture_table *, const char *filename);
|
||||
extern int get_picture_idx(const struct picture_table *, const char *filename); /* Return -1 if not found */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue