mirror of
https://code.blicky.net/yorhel/ncdu.git
synced 2026-01-14 09:48:40 -09:00
Re-added file information window in browser.c
This commit is contained in:
parent
ddd8a639b7
commit
8daeeea1d9
1 changed files with 52 additions and 46 deletions
|
|
@ -51,32 +51,6 @@ unsigned char flags = BF_SIZE | BF_DESC;
|
||||||
|| x->flags & FF_EXL))
|
|| x->flags & FF_EXL))
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
void drawInfo(struct dir *dr) {
|
|
||||||
char path[PATH_MAX];
|
|
||||||
|
|
||||||
nccreate(11, 60, "Item info");
|
|
||||||
|
|
||||||
attron(A_BOLD);
|
|
||||||
ncaddstr(2, 3, "Name:");
|
|
||||||
ncaddstr(3, 3, "Path:");
|
|
||||||
ncaddstr(4, 3, "Type:");
|
|
||||||
ncaddstr(6, 3, " Disk usage:");
|
|
||||||
ncaddstr(7, 3, "Apparent size:");
|
|
||||||
attroff(A_BOLD);
|
|
||||||
|
|
||||||
ncaddstr(2, 9, cropdir(dr->name, 49));
|
|
||||||
ncaddstr(3, 9, cropdir(getpath(dr, path), 49));
|
|
||||||
ncaddstr(4, 9, dr->flags & FF_DIR ? "Directory"
|
|
||||||
: dr->flags & FF_FILE ? "File" : "Other (link, device, socket, ..)");
|
|
||||||
ncprint(6, 18, "%s (%s B)", cropsize(dr->size), fullsize(dr->size));
|
|
||||||
ncprint(7, 18, "%s (%s B)", cropsize(dr->asize), fullsize(dr->asize));
|
|
||||||
|
|
||||||
ncaddstr(9, 32, "Press i to hide this window");
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
int browse_cmp(struct dir *x, struct dir *y) {
|
int browse_cmp(struct dir *x, struct dir *y) {
|
||||||
struct dir *a, *b;
|
struct dir *a, *b;
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
|
@ -157,6 +131,30 @@ struct dir *browse_sort(struct dir *list) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void browse_draw_info(struct dir *dr) {
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
nccreate(11, 60, "Item info");
|
||||||
|
|
||||||
|
attron(A_BOLD);
|
||||||
|
ncaddstr(2, 3, "Name:");
|
||||||
|
ncaddstr(3, 3, "Path:");
|
||||||
|
ncaddstr(4, 3, "Type:");
|
||||||
|
ncaddstr(6, 3, " Disk usage:");
|
||||||
|
ncaddstr(7, 3, "Apparent size:");
|
||||||
|
attroff(A_BOLD);
|
||||||
|
|
||||||
|
ncaddstr(2, 9, cropstr(dr->name, 49));
|
||||||
|
ncaddstr(3, 9, cropstr(getpath(dr, path), 49));
|
||||||
|
ncaddstr(4, 9, dr->flags & FF_DIR ? "Directory"
|
||||||
|
: dr->flags & FF_FILE ? "File" : "Other (link, device, socket, ..)");
|
||||||
|
ncprint(6, 18, "%s (%s B)", formatsize(dr->size), fullsize(dr->size));
|
||||||
|
ncprint(7, 18, "%s (%s B)", formatsize(dr->asize), fullsize(dr->asize));
|
||||||
|
|
||||||
|
ncaddstr(9, 32, "Press i to hide this window");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void browse_draw_item(struct dir *n, int row, off_t max, int ispar) {
|
void browse_draw_item(struct dir *n, int row, off_t max, int ispar) {
|
||||||
char tmp[1000], ct, dt, *size, gr[11];
|
char tmp[1000], ct, dt, *size, gr[11];
|
||||||
int i, o;
|
int i, o;
|
||||||
|
|
@ -225,7 +223,7 @@ void browse_draw_item(struct dir *n, int row, off_t max, int ispar) {
|
||||||
|
|
||||||
|
|
||||||
int browse_draw() {
|
int browse_draw() {
|
||||||
struct dir *n, ref, *cur;
|
struct dir *n, ref, *cur, *sel = NULL;
|
||||||
char tmp[PATH_MAX];
|
char tmp[PATH_MAX];
|
||||||
int selected, i;
|
int selected, i;
|
||||||
off_t max = 1;
|
off_t max = 1;
|
||||||
|
|
@ -271,8 +269,10 @@ int browse_draw() {
|
||||||
for(n=cur, selected=i=0; n!=NULL; n=n->next) {
|
for(n=cur, selected=i=0; n!=NULL; n=n->next) {
|
||||||
if(ishidden(n))
|
if(ishidden(n))
|
||||||
continue;
|
continue;
|
||||||
if(n->flags & FF_BSEL)
|
if(n->flags & FF_BSEL) {
|
||||||
selected = i;
|
selected = i;
|
||||||
|
sel = n;
|
||||||
|
}
|
||||||
if((flags & BF_AS ? n->asize : n->size) > max)
|
if((flags & BF_AS ? n->asize : n->size) > max)
|
||||||
max = flags & BF_AS ? n->asize : n->size;
|
max = flags & BF_AS ? n->asize : n->size;
|
||||||
i++;
|
i++;
|
||||||
|
|
@ -296,6 +296,10 @@ int browse_draw() {
|
||||||
browse_draw_item(n, 2+i++, max, n == &ref);
|
browse_draw_item(n, 2+i++, max, n == &ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* draw information window */
|
||||||
|
if(sel && (flags & BF_INFO) && sel != &ref)
|
||||||
|
browse_draw_info(sel);
|
||||||
|
|
||||||
/* move cursor to selected row for accessibility */
|
/* move cursor to selected row for accessibility */
|
||||||
move(selected+2, 0);
|
move(selected+2, 0);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -332,11 +336,10 @@ void browse_key_sel(int change) {
|
||||||
|
|
||||||
|
|
||||||
#define toggle(x,y) if(x & y) x -=y; else x |= y
|
#define toggle(x,y) if(x & y) x -=y; else x |= y
|
||||||
#define hideinfo if(flags & BF_INFO) flags -= BF_INFO
|
|
||||||
|
|
||||||
int browse_key(int ch) {
|
int browse_key(int ch) {
|
||||||
char tmp[PATH_MAX];
|
char tmp[PATH_MAX];
|
||||||
char sort = 0;
|
char sort = 0, nonfo = 0;
|
||||||
struct dir *n;
|
struct dir *n;
|
||||||
|
|
||||||
switch(ch) {
|
switch(ch) {
|
||||||
|
|
@ -363,40 +366,39 @@ int browse_key(int ch) {
|
||||||
|
|
||||||
/* sorting items */
|
/* sorting items */
|
||||||
case 'n':
|
case 'n':
|
||||||
hideinfo;
|
|
||||||
if(flags & BF_NAME)
|
if(flags & BF_NAME)
|
||||||
toggle(flags, BF_DESC);
|
toggle(flags, BF_DESC);
|
||||||
else
|
else
|
||||||
flags = (flags & BF_HIDE) + (flags & BF_NDIRF) + BF_NAME;
|
flags = (flags & BF_HIDE) + (flags & BF_NDIRF) + BF_NAME;
|
||||||
sort++;
|
sort++;
|
||||||
|
nonfo++;
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
hideinfo;
|
|
||||||
if(flags & BF_SIZE)
|
if(flags & BF_SIZE)
|
||||||
toggle(flags, BF_DESC);
|
toggle(flags, BF_DESC);
|
||||||
else
|
else
|
||||||
flags = (flags & BF_HIDE) + (flags & BF_NDIRF) + BF_SIZE + BF_DESC;
|
flags = (flags & BF_HIDE) + (flags & BF_NDIRF) + BF_SIZE + BF_DESC;
|
||||||
sort++;
|
sort++;
|
||||||
|
nonfo++;
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
hideinfo;
|
|
||||||
toggle(flags, BF_HIDE);
|
toggle(flags, BF_HIDE);
|
||||||
browse_key_sel(0);
|
browse_key_sel(0);
|
||||||
|
nonfo++;
|
||||||
break;
|
break;
|
||||||
case 't':
|
case 't':
|
||||||
hideinfo;
|
|
||||||
toggle(flags, BF_NDIRF);
|
toggle(flags, BF_NDIRF);
|
||||||
sort++;
|
sort++;
|
||||||
|
nonfo++;
|
||||||
break;
|
break;
|
||||||
case 'a':
|
case 'a':
|
||||||
hideinfo;
|
|
||||||
toggle(flags, BF_AS);
|
toggle(flags, BF_AS);
|
||||||
|
nonfo++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* browsing */
|
/* browsing */
|
||||||
case 10:
|
case 10:
|
||||||
case KEY_RIGHT:
|
case KEY_RIGHT:
|
||||||
hideinfo;
|
|
||||||
for(n=browse_dir; n!=NULL; n=n->next)
|
for(n=browse_dir; n!=NULL; n=n->next)
|
||||||
if(n->flags & FF_BSEL)
|
if(n->flags & FF_BSEL)
|
||||||
break;
|
break;
|
||||||
|
|
@ -404,19 +406,20 @@ int browse_key(int ch) {
|
||||||
browse_dir = n->sub;
|
browse_dir = n->sub;
|
||||||
if(n == NULL && browse_dir->parent->parent)
|
if(n == NULL && browse_dir->parent->parent)
|
||||||
browse_dir = browse_dir->parent->parent->sub;
|
browse_dir = browse_dir->parent->parent->sub;
|
||||||
|
nonfo++;
|
||||||
sort++;
|
sort++;
|
||||||
break;
|
break;
|
||||||
case KEY_LEFT:
|
case KEY_LEFT:
|
||||||
hideinfo;
|
|
||||||
if(browse_dir->parent->parent != NULL)
|
if(browse_dir->parent->parent != NULL)
|
||||||
browse_dir = browse_dir->parent->parent->sub;
|
browse_dir = browse_dir->parent->parent->sub;
|
||||||
|
nonfo++;
|
||||||
sort++;
|
sort++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* refresh */
|
/* refresh */
|
||||||
case 'r':
|
case 'r':
|
||||||
hideinfo;
|
|
||||||
calc_init(getpath(browse_dir, tmp), browse_dir->parent);
|
calc_init(getpath(browse_dir, tmp), browse_dir->parent);
|
||||||
|
nonfo++;
|
||||||
sort++;
|
sort++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -424,31 +427,34 @@ int browse_key(int ch) {
|
||||||
case 'q':
|
case 'q':
|
||||||
return 1;
|
return 1;
|
||||||
case 'g':
|
case 'g':
|
||||||
hideinfo;
|
if(++graph > 3)
|
||||||
if(++graph > 3) graph = 0;
|
graph = 0;
|
||||||
break;
|
nonfo++;
|
||||||
/*
|
|
||||||
case '?':
|
|
||||||
hideinfo;
|
|
||||||
showHelp();
|
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
toggle(flags, BF_INFO);
|
toggle(flags, BF_INFO);
|
||||||
break;
|
break;
|
||||||
|
/*
|
||||||
|
case '?':
|
||||||
|
showHelp();
|
||||||
|
nonfo++;
|
||||||
|
break;
|
||||||
case 'd':
|
case 'd':
|
||||||
hideinfo;
|
|
||||||
drawBrowser(0);
|
drawBrowser(0);
|
||||||
n = selected();
|
n = selected();
|
||||||
if(n != bcur->parent)
|
if(n != bcur->parent)
|
||||||
bcur = showDelete(n);
|
bcur = showDelete(n);
|
||||||
if(bcur && bcur->parent)
|
if(bcur && bcur->parent)
|
||||||
bcur = bcur->parent->sub;
|
bcur = bcur->parent->sub;
|
||||||
|
nonfo++;
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sort)
|
if(sort)
|
||||||
browse_dir = browse_sort(browse_dir);
|
browse_dir = browse_sort(browse_dir);
|
||||||
|
if(nonfo)
|
||||||
|
flags &= ~BF_INFO;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue