summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris West (Faux) <git@goeswhere.com>2013-01-13 11:53:24 +0000
committerChris West (Faux) <git@goeswhere.com>2013-01-13 12:42:28 +0000
commitcfcac262d11988fb12137db93af74b3985437d59 (patch)
treeba45eaf60a97b05b706beff441742e64cbd28816
parenta90cf9c7d2b4a771a1df1bfe3b83ae5f92bce56b (diff)
'c' to show child item counts
-rw-r--r--src/browser.c34
-rw-r--r--src/help.c3
2 files changed, 29 insertions, 8 deletions
diff --git a/src/browser.c b/src/browser.c
index 6b479a7..3fd6bb8 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -30,7 +30,7 @@
#include <ncurses.h>
-static int graph = 1, show_as = 0, info_show = 0, info_page = 0, info_start = 0;
+static int graph = 1, show_as = 0, info_show = 0, info_page = 0, info_start = 0, show_items = 0;
static char *message = NULL;
@@ -88,8 +88,8 @@ static void browse_draw_info(struct dir *dr) {
static void browse_draw_item(struct dir *n, int row) {
- char ct, dt, *size, gr[11];
- int i, o;
+ char ct, dt, *size, gr[11], *items;
+ int i, o, x;
float pc;
if(n->flags & FF_BSEL)
@@ -102,6 +102,9 @@ static void browse_draw_item(struct dir *n, int row) {
graph == 1 ? 24 :
graph == 2 ? 20 :
31 ;
+ if (show_items) {
+ o += 7;
+ }
mvaddstr(row, o, "/..");
if(n->flags & FF_BSEL)
attroff(A_REVERSE);
@@ -137,12 +140,26 @@ static void browse_draw_item(struct dir *n, int row) {
}
}
+ x = 0;
+
+ mvprintw(row, x, "%c %8s ", ct, size);
+ x += 11;
+
+ if (show_items) {
+ if (n->items > 99999)
+ items = "> 100k";
+ else
+ items = n->items ? fullsize(n->items) : "";
+ mvprintw(row, x, "%6s ", items);
+ x += 7;
+ }
+
/* format and add item to the list */
switch(graph) {
- case 0: mvprintw(row, 0, "%c %8s %c%-*s", ct, size, dt, wincols-13, cropstr(n->name, wincols-13)); break;
- case 1: mvprintw(row, 0, "%c %8s [%10s] %c%-*s", ct, size, gr, dt, wincols-25, cropstr(n->name, wincols-25)); break;
- case 2: mvprintw(row, 0, "%c %8s [%5.1f%%] %c%-*s", ct, size, pc, dt, wincols-21, cropstr(n->name, wincols-21)); break;
- case 3: mvprintw(row, 0, "%c %8s [%5.1f%% %10s] %c%-*s", ct, size, pc, gr, dt, wincols-32, cropstr(n->name, wincols-32));
+ case 0: mvprintw(row, x, " %c%-*s", dt, wincols- 2-x, cropstr(n->name, wincols- 2-x)); break;
+ case 1: mvprintw(row, x, "[%10s] %c%-*s", gr, dt, wincols-14-x, cropstr(n->name, wincols-14-x)); break;
+ case 2: mvprintw(row, x, "[%5.1f%%] %c%-*s", pc, dt, wincols-10-x, cropstr(n->name, wincols-10-x)); break;
+ case 3: mvprintw(row, x, "[%5.1f%% %10s] %c%-*s", pc, gr, dt, wincols-21-x, cropstr(n->name, wincols-21-x));
}
if(n->flags & FF_BSEL)
@@ -383,6 +400,9 @@ int browse_key(int ch) {
graph = 0;
info_show = 0;
break;
+ case 'c':
+ show_items = !show_items;
+ break;
case 'i':
info_show = !info_show;
break;
diff --git a/src/help.c b/src/help.c
index e3c3d82..1ba3890 100644
--- a/src/help.c
+++ b/src/help.c
@@ -32,7 +32,7 @@
int page, start;
-#define KEYS 14
+#define KEYS 15
char *keys[KEYS*2] = {
/*|----key----| |----------------description----------------|*/
"up, k", "Move cursor up",
@@ -45,6 +45,7 @@ char *keys[KEYS*2] = {
"t", "Toggle dirs before files when sorting",
"g", "Show percentage and/or graph",
"a", "Toggle between apparent size and disk usage",
+ "c", "Toggle display of child item counts",
"e", "Show/hide hidden or excluded files",
"i", "Show information about selected item",
"r", "Recalculate the current directory",