~ruther/CTU-FEE-B0B35APO-Semestral-project

50a526b4935e2ff0e37aa53f47a71417517ddefa — František Boháček 3 years ago 584549e
feat: add size and date to browser table
1 files changed, 32 insertions(+), 2 deletions(-)

M file-browser/src/window_browser.c
M file-browser/src/window_browser.c => file-browser/src/window_browser.c +32 -2
@@ 14,6 14,8 @@
#include "logger.h"
#include "path.h"
#include "renderer.h"
#include <stdio.h>
#include <time.h>

#define COLUMNS_COUNT 4
#define MAX_COLUMN_CHARS 200


@@ 270,6 272,11 @@ static void browser_window_job(void *state) {
  }
}

#define KiB 1024LU
#define MiB KiB*KiB
#define GiB KiB*KiB*KiB
#define TiB KiB*KiB*KiB*KiB

static char *browser_get_column_data(file_t *file, uint16_t column, char *out) {
  switch (column) {
  case 0:


@@ 288,10 295,33 @@ static char *browser_get_column_data(file_t *file, uint16_t column, char *out) {
    break;
  case 2:
    // get size
    return "";
    {
      uint64_t size = file->size;
      double transformed = size;
      char *append = "B";

      if (size > TiB) {
        transformed /= TiB;
        append = "TiB";
      } else if (size > GiB) {
        transformed /= GiB;
        append = "GiB";
      } else if (size > MiB) {
        transformed /= MiB;
        append = "MiB";
      } else if (size > KiB) {
        transformed /= KiB;
        append = "KiB";
      }
      
      sprintf(out, "%.2f %s", transformed, append);
      return out;
    }
  case 3:
    // date modified
    return "";

    strftime(out, MAX_COLUMN_CHARS, "%c", localtime(&file->modify_time));
    return out;
  }

  return NULL;

Do not follow this link