This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository efm2.
View the commit online.
commit eae58c600789d86f93e4a2b4f8e57b52952b8519
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
AuthorDate: Fri Jul 18 18:47:33 2025 +0100
show/hide all files
---
TODO.md | 1 -
src/efm/efm_back_end.c | 8 +++++++-
src/efm/efm_popup_menu.c | 24 ++++++++++++++++++++----
src/efm/efm_structs.h | 1 +
4 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/TODO.md b/TODO.md
index ecf8e99..e6fd664 100644
--- a/TODO.md
+++ b/TODO.md
@@ -31,7 +31,6 @@
* Special icons for special filenames/paths (~/Desktop, ~/Videos etc.)
* Single click/select mode
* Favorites view move (manual .order changes, cb's for selecting single click)
-* Hide/show hidden files
* Immutable dirs (no moving files/changes - just browse/launch)
* Dir info pane
* Pane
diff --git a/src/efm/efm_back_end.c b/src/efm/efm_back_end.c
index c29a74c..91f3003 100644
--- a/src/efm/efm_back_end.c
+++ b/src/efm/efm_back_end.c
@@ -649,7 +649,13 @@ _cb_thread_notify(void *data, Ecore_Thread *th EINA_UNUSED, void *msg)
{
s = strrchr(file, '/');
if (s) file = s + 1;
- if (file[0] == '.') // XXX filter dot files or not
+ if (!strcmp(file, ".efm"))
+ { // always skip .efm dirs - they are for efm private metadata
+ // and just should not be shown so always hide. if you want to
+ // deal with these... use a terminal.
+ CMD_DONE;
+ }
+ if ((!sd->config.all_files) && (file[0] == '.'))
{
CMD_DONE;
}
diff --git a/src/efm/efm_popup_menu.c b/src/efm/efm_popup_menu.c
index 98cfd96..ef2d3d4 100644
--- a/src/efm/efm_popup_menu.c
+++ b/src/efm/efm_popup_menu.c
@@ -253,7 +253,19 @@ _cb_job_refresh(void *data)
}
static void
-_cb_menu_item_refresh(void *data, void *data2 EINA_UNUSED,
+_cb_menu_item_all(void *data, void *data2 EINA_UNUSED,
+ Evas_Object *efm EINA_UNUSED,
+ const Efm_Menu_Item *menu_item EINA_UNUSED)
+{
+ Popup_Context *ctx = data;
+
+ ctx->sd->config.all_files = !!(!ctx->sd->config.all_files);
+ if (ctx->sd->reset_job) ecore_job_del(ctx->sd->reset_job);
+ ctx->sd->reset_job = ecore_job_add(_cb_job_refresh, ctx->sd);
+}
+
+static void
+_cb_menu_item_refresh(void *data, void *data2 EINA_UNUSED,
Evas_Object *efm EINA_UNUSED,
const Efm_Menu_Item *menu_item EINA_UNUSED)
{
@@ -265,7 +277,7 @@ _cb_menu_item_refresh(void *data, void *data2 EINA_UNUSED,
static void
_cb_menu_item_mkdir(void *data, void *data2, Evas_Object *efm,
- const Efm_Menu_Item *menu_item)
+ const Efm_Menu_Item *menu_item)
{
Popup_Context *ctx = data;
printf("XXX: mkdir\n");
@@ -392,8 +404,8 @@ _efm_popup_icon_menu_add(Smart_Data *sd, Icon *ic, Evas_Coord x, Evas_Coord y)
!have_sel, _cb_menu_item_delete, ctx,
NULL);
_efm_menu_it_separator(m2);
- _efm_menu_it_normal(m2, "Properties", "std:document-properties",
- EINA_FALSE, _cb_menu_item_props, ctx, NULL);
+ _efm_menu_it_normal(m2, "Properties", "std:document-properties", EINA_FALSE,
+ _cb_menu_item_props, ctx, NULL);
_efm_menu_it_normal(m2, "Create Directory", "std:folder-new",
EINA_FALSE, _cb_menu_item_mkdir, ctx, NULL);
}
@@ -406,6 +418,10 @@ _efm_popup_icon_menu_add(Smart_Data *sd, Icon *ic, Evas_Coord x, Evas_Coord y)
_cb_menu_item_sel_all, ctx, NULL);
_efm_menu_it_normal(m2, "Select None", NULL, !have_sel,
_cb_menu_item_sel_none, ctx, NULL);
+ _efm_menu_it_separator(m2);
+ _efm_menu_it_check(m2, "Show All", NULL, sd->config.all_files,
+ EINA_FALSE, _cb_menu_item_all, ctx, NULL);
+ _efm_menu_it_separator(m2);
_efm_menu_it_normal(m2, "Refresh", "std:view-refresh", EINA_FALSE,
_cb_menu_item_refresh, ctx, NULL);
// XXX: sort
diff --git a/src/efm/efm_structs.h b/src/efm/efm_structs.h
index ec784a1..d159756 100644
--- a/src/efm/efm_structs.h
+++ b/src/efm/efm_structs.h
@@ -136,6 +136,7 @@ struct _Smart_Data
Eina_Stringshare *backend;
Evas_Coord detail_min_w[6];
Eina_Stringshare *detail_heading[7];
+ Eina_Bool all_files;
} config;
};
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.