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.

Reply via email to