(Un)mark single image through generic function
This commit is contained in:
parent
1892ed9fd7
commit
87a1ace8a1
20
commands.c
20
commands.c
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
void remove_file(int, bool);
|
void remove_file(int, bool);
|
||||||
void load_image(int);
|
void load_image(int);
|
||||||
|
bool mark_image(int, bool);
|
||||||
void close_info(void);
|
void close_info(void);
|
||||||
void open_info(void);
|
void open_info(void);
|
||||||
int ptr_third_x(void);
|
int ptr_third_x(void);
|
||||||
|
@ -193,12 +194,8 @@ bool cg_zoom(arg_t d)
|
||||||
|
|
||||||
bool cg_toggle_image_mark(arg_t _)
|
bool cg_toggle_image_mark(arg_t _)
|
||||||
{
|
{
|
||||||
files[fileidx].flags ^= FF_MARK;
|
|
||||||
markcnt += files[fileidx].flags & FF_MARK ? 1 : -1;
|
|
||||||
if (mode == MODE_THUMB)
|
|
||||||
tns_mark(&tns, fileidx, !!(files[fileidx].flags & FF_MARK));
|
|
||||||
markidx = fileidx;
|
markidx = fileidx;
|
||||||
return true;
|
return mark_image(fileidx, !(files[fileidx].flags & FF_MARK));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cg_reverse_marks(arg_t _)
|
bool cg_reverse_marks(arg_t _)
|
||||||
|
@ -217,18 +214,13 @@ bool cg_reverse_marks(arg_t _)
|
||||||
bool cg_mark_range(arg_t _)
|
bool cg_mark_range(arg_t _)
|
||||||
{
|
{
|
||||||
int i, d = fileidx < markidx ? 1 : -1;
|
int i, d = fileidx < markidx ? 1 : -1;
|
||||||
int flag = files[markidx].flags & FF_MARK;
|
bool dirty = false, on = !!(files[markidx].flags & FF_MARK);
|
||||||
int oldmarkcnt = markcnt;
|
|
||||||
|
|
||||||
for (i = fileidx; i != markidx; i += d) {
|
for (i = fileidx; i != markidx; i += d) {
|
||||||
if ((files[i].flags & FF_MARK) ^ flag) {
|
if (mark_image(i, on))
|
||||||
files[i].flags = (files[i].flags & ~FF_MARK) | flag;
|
dirty = true;
|
||||||
markcnt += flag ? 1 : -1;
|
|
||||||
if (mode == MODE_THUMB)
|
|
||||||
tns_mark(&tns, i, !!flag);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return markcnt != oldmarkcnt;
|
return dirty;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cg_unmark_all(arg_t _)
|
bool cg_unmark_all(arg_t _)
|
||||||
|
|
12
main.c
12
main.c
|
@ -321,6 +321,18 @@ void load_image(int new)
|
||||||
reset_timeout(animate);
|
reset_timeout(animate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool mark_image(int n, bool on)
|
||||||
|
{
|
||||||
|
if (!!(files[n].flags & FF_MARK) != on) {
|
||||||
|
files[n].flags ^= FF_MARK;
|
||||||
|
markcnt += on ? 1 : -1;
|
||||||
|
if (mode == MODE_THUMB)
|
||||||
|
tns_mark(&tns, n, on);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void bar_put(win_bar_t *bar, const char *fmt, ...)
|
void bar_put(win_bar_t *bar, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
size_t len = bar->size - (bar->p - bar->buf), n;
|
size_t len = bar->size - (bar->p - bar->buf), n;
|
||||||
|
|
Loading…
Reference in a new issue