Count number of marked files

master
Bert Münnich 2014-08-16 19:24:34 +02:00
parent 5b01c15176
commit 284be74927
2 changed files with 11 additions and 3 deletions

View File

@ -50,6 +50,7 @@ extern win_t win;
extern fileinfo_t *files;
extern int filecnt, fileidx;
extern int alternate;
extern int markcnt;
extern int prefix;
extern bool extprefix;
@ -62,7 +63,7 @@ bool cg_quit(arg_t a)
{
unsigned int i;
if (options->to_stdout) {
if (options->to_stdout && markcnt > 0) {
for (i = 0; i < filecnt; i++) {
if (files[i].marked)
printf("%s\n", files[i].name);
@ -195,6 +196,7 @@ bool cg_scroll_screen(arg_t a)
bool cg_toggle_image_mark(arg_t a)
{
files[fileidx].marked = !files[fileidx].marked;
markcnt += files[fileidx].marked ? 1 : -1;
if (mode == MODE_THUMB)
tns_mark(&tns, fileidx, files[fileidx].marked);
return true;
@ -202,10 +204,12 @@ bool cg_toggle_image_mark(arg_t a)
bool cg_reverse_marks(arg_t a)
{
int i, cnt = mode == MODE_IMAGE ? filecnt : tns.cnt;
int i;
for (i = 0; i < cnt; i++)
for (i = 0; i < filecnt; i++) {
files[i].marked = !files[i].marked;
markcnt += files[i].marked ? 1 : -1;
}
if (mode == MODE_THUMB)
tns.dirty = true;
return true;

4
main.c
View File

@ -73,6 +73,7 @@ win_t win;
fileinfo_t *files;
int filecnt, fileidx;
int alternate;
int markcnt;
int prefix;
bool extprefix;
@ -168,6 +169,8 @@ void remove_file(int n, bool manual)
cleanup();
exit(manual ? EXIT_SUCCESS : EXIT_FAILURE);
}
if (files[n].marked)
markcnt--;
if (files[n].path != files[n].name)
free((void*) files[n].path);
@ -627,6 +630,7 @@ void on_buttonpress(XButtonEvent *bev)
case Button3:
if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) {
files[sel].marked = !files[sel].marked;
markcnt += files[sel].marked ? 1 : -1;
tns_mark(&tns, sel, files[sel].marked);
redraw();
}