summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-03-07 20:07:59 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2021-03-10 10:06:53 +0000
commit7ca3f8f612f8891c9dfe785bd73b4278df81eaee (patch)
treebbdfb4aa478339213184f9def9d61d4f39006153
parentb288373ee6c759ea0aca3dc33ac8666fc17dd42d (diff)
downloadenlightenment-7ca3f8f612f8891c9dfe785bd73b4278df81eaee.tar.gz
efm - option for display of dates explicitly and not in nice-human form
-rw-r--r--src/bin/e_config.c1
-rw-r--r--src/bin/e_config.h3
-rw-r--r--src/bin/e_utils.c75
-rw-r--r--src/modules/fileman/e_mod_config.c12
4 files changed, 57 insertions, 34 deletions
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 3babbdd58e..2834828d92 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -997,6 +997,7 @@ _e_config_edd_init(Eina_Bool old)
//E_CONFIG_VAL(D, T, xkb.cur_group, INT);
E_CONFIG_VAL(D, T, exe_always_single_instance, UCHAR);
+ E_CONFIG_VAL(D, T, explicit_date_time, UCHAR);
}
/* externally accessible functions */
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index 7473a28db6..8e19b248ec 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -178,7 +178,7 @@ struct _E_Config
int menu_eap_comment_show; // GUI
int menu_favorites_show; // GUI
int menu_apps_show; // GUI
- Eina_Bool menu_icons_hide; // GUI
+ Eina_Bool menu_icons_hide; // GUI
int menu_gadcon_client_toplevel; // GUI
int fullscreen_policy; // GUI
const char *exebuf_term_cmd; // GUI
@@ -441,6 +441,7 @@ struct _E_Config
Eina_List *menu_applications;
unsigned char exe_always_single_instance; // GUI
+ unsigned char explicit_date_time; // GUI
Eina_List *screen_profiles;
};
diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c
index 783b353426..8db378add2 100644
--- a/src/bin/e_utils.c
+++ b/src/bin/e_utils.c
@@ -584,41 +584,54 @@ e_util_file_time_get(time_t ftime)
ltime = time(NULL);
diff = ltime - ftime;
buf[0] = 0;
- if (ftime > ltime)
- snprintf(buf, sizeof(buf), _("In the future"));
- else
+ if (e_config->explicit_date_time)
{
- if (diff <= 60)
- snprintf(buf, sizeof(buf), _("In the last minute"));
- else if (diff >= 31526000)
- {
- test = diff / 31526000;
- snprintf(buf, sizeof(buf), P_("Last year", "%li Years ago", test), test);
- }
- else if (diff >= 2592000)
- {
- test = diff / 2592000;
- snprintf(buf, sizeof(buf), P_("Last month", "%li Months ago", test), test);
- }
- else if (diff >= 604800)
- {
- test = diff / 604800;
- snprintf(buf, sizeof(buf), P_("Last week", "%li Weeks ago", test), test);
- }
- else if (diff >= 86400)
- {
- test = diff / 86400;
- snprintf(buf, sizeof(buf), P_("Yesterday", "%li Days ago", test), test);
- }
- else if (diff >= 3600)
+ struct tm tm;
+
+ if (localtime_r(&ftime, &tm))
{
- test = diff / 3600;
- snprintf(buf, sizeof(buf), P_("An hour ago", "%li Hours ago", test), test);
+ s = eina_strftime("%F %T", &tm);
+ if (s) return s;
}
- else if (diff > 60)
+ }
+ else
+ {
+ if (ftime > ltime)
+ snprintf(buf, sizeof(buf), _("In the future"));
+ else
{
- test = diff / 60;
- snprintf(buf, sizeof(buf), P_("A minute ago", "%li Minutes ago", test), test);
+ if (diff <= 60)
+ snprintf(buf, sizeof(buf), _("In the last minute"));
+ else if (diff >= 31526000)
+ {
+ test = diff / 31526000;
+ snprintf(buf, sizeof(buf), P_("Last year", "%li Years ago", test), test);
+ }
+ else if (diff >= 2592000)
+ {
+ test = diff / 2592000;
+ snprintf(buf, sizeof(buf), P_("Last month", "%li Months ago", test), test);
+ }
+ else if (diff >= 604800)
+ {
+ test = diff / 604800;
+ snprintf(buf, sizeof(buf), P_("Last week", "%li Weeks ago", test), test);
+ }
+ else if (diff >= 86400)
+ {
+ test = diff / 86400;
+ snprintf(buf, sizeof(buf), P_("Yesterday", "%li Days ago", test), test);
+ }
+ else if (diff >= 3600)
+ {
+ test = diff / 3600;
+ snprintf(buf, sizeof(buf), P_("An hour ago", "%li Hours ago", test), test);
+ }
+ else if (diff > 60)
+ {
+ test = diff / 60;
+ snprintf(buf, sizeof(buf), P_("A minute ago", "%li Minutes ago", test), test);
+ }
}
}
diff --git a/src/modules/fileman/e_mod_config.c b/src/modules/fileman/e_mod_config.c
index 2bfaf9dbe0..9c5a1bebc8 100644
--- a/src/modules/fileman/e_mod_config.c
+++ b/src/modules/fileman/e_mod_config.c
@@ -49,6 +49,7 @@ struct _E_Config_Dialog_Data
const char *key_hint;
int max_thumb_size;
} icon;
+ int explicit_date_time;
/* how to sort files */
struct
{
@@ -91,7 +92,7 @@ struct _E_Config_Dialog_Data
Evas_Object *dir_sort_first;
Evas_Object *dir_sort_last;
- E_Config_Dialog *cfd;
+ E_Config_Dialog *cfd;
};
static void *_create_data(E_Config_Dialog *cfd);
@@ -171,6 +172,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->dbus.desktop = e_config->device_desktop;
cfdata->dbus.auto_mount = e_config->device_auto_mount;
cfdata->dbus.auto_open = e_config->device_auto_open;
+ cfdata->explicit_date_time = e_config->explicit_date_time;
}
static void
@@ -222,6 +224,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED,
e_config->device_auto_mount = cfdata->dbus.auto_mount;
e_config->device_auto_open = cfdata->dbus.auto_open;
+ e_config->explicit_date_time = cfdata->explicit_date_time;
e_config_save_queue();
@@ -263,7 +266,9 @@ _basic_check_changed(E_Config_Dialog *cfd EINA_UNUSED,
(fileman_config->list.sort.no_case != !(cfdata->list.sort.case_sen)) ||
(e_config->device_desktop != cfdata->dbus.desktop) ||
(e_config->device_auto_mount != cfdata->dbus.auto_mount) ||
- (e_config->device_auto_open != cfdata->dbus.auto_open);
+ (e_config->device_auto_open != cfdata->dbus.auto_open) ||
+ (e_config->explicit_date_time != cfdata->explicit_date_time)
+ ;
}
static void
@@ -354,6 +359,9 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED,
ob = e_widget_check_add(evas, _("Sidebar"),
&(cfdata->view.show_sidebar));
e_widget_list_object_append(o, ob, 1, 1, 0.5);
+ ob = e_widget_check_add(evas, _("Show Detailed Time and Date"),
+ &(cfdata->explicit_date_time));
+ e_widget_list_object_append(o, ob, 1, 1, 0.5);
/* FIXME: this sucks
ob = e_widget_check_add(evas, _("Regular Files In Menu (SLOW)"),
&(cfdata->view.menu_shows_files));