okra pushed a commit to branch master.

http://git.enlightenment.org/apps/ephoto.git/commit/?id=7a4b43ec46ff27006f18f158fab84d00d8c684f9

commit 7a4b43ec46ff27006f18f158fab84d00d8c684f9
Author: Stephen okra Houston <[email protected]>
Date:   Tue Aug 2 15:44:54 2016 -0500

    Ephoto: Fix monitor duplication.
---
 src/bin/ephoto_directory_browser.c | 62 ++++++++++++++++++++------------------
 1 file changed, 32 insertions(+), 30 deletions(-)

diff --git a/src/bin/ephoto_directory_browser.c 
b/src/bin/ephoto_directory_browser.c
index 1818227..677068e 100644
--- a/src/bin/ephoto_directory_browser.c
+++ b/src/bin/ephoto_directory_browser.c
@@ -723,9 +723,10 @@ _monitor_cb(void *data, int type,
    if (!entry)
      return ECORE_CALLBACK_PASS_ON;
 
+   printf("%s\n", ev->filename);
+
    snprintf(file, PATH_MAX, "%s", ev->filename);
    snprintf(dir, PATH_MAX, "%s", ecore_file_dir_get(file));
-
    if (strcmp(entry->path, dir))
      return ECORE_CALLBACK_PASS_ON;
    if (type == EIO_MONITOR_DIRECTORY_CREATED)
@@ -738,7 +739,7 @@ _monitor_cb(void *data, int type,
         if (elm_genlist_item_type_get(entry->item) == ELM_GENLIST_ITEM_TREE &&
             elm_genlist_item_expanded_get(entry->item) == EINA_TRUE)
           {
-             ic = _ephoto_dir_tree_class;
+             ic = _ephoto_dir_class;
              snprintf(buf, PATH_MAX, "%s", ev->filename);
              e = ephoto_entry_new(entry->ephoto, ev->filename, basename(buf),
                  EINA_FILE_DIR);
@@ -764,37 +765,18 @@ _monitor_cb(void *data, int type,
                               _monitor_cb, e));
                }
           }
-        if (elm_genlist_item_type_get(entry->item) == ELM_GENLIST_ITEM_NONE)
+        else if (elm_genlist_item_type_get(entry->item) == 
ELM_GENLIST_ITEM_NONE)
           {
              Elm_Object_Item *parent;
 
-             ic = _ephoto_dir_class;
+             ic = _ephoto_dir_tree_class;
              parent =
                  elm_genlist_item_insert_before(entry->genlist, ic, entry,
                      entry->parent, entry->item, ELM_GENLIST_ITEM_TREE, NULL, 
NULL);
              entry->no_delete = EINA_TRUE;
-             if (entry->monitor)
-               {
-                  eio_monitor_del(entry->monitor);
-                  EINA_LIST_FREE(entry->monitor_handlers, handler)
-                    ecore_event_handler_del(handler);
-               }
              elm_object_item_del(entry->item);
              entry->item = parent;
              entry->no_delete = EINA_FALSE;
-             entry->monitor = eio_monitor_add(entry->path);
-             entry->monitor_handlers =
-                 eina_list_append(entry->monitor_handlers,
-                     ecore_event_handler_add(EIO_MONITOR_DIRECTORY_CREATED,
-                         _monitor_cb, entry));
-             entry->monitor_handlers =
-                 eina_list_append(entry->monitor_handlers,
-                     ecore_event_handler_add(EIO_MONITOR_DIRECTORY_MODIFIED,
-                         _monitor_cb, entry));
-             entry->monitor_handlers =
-                 eina_list_append(entry->monitor_handlers,
-                     ecore_event_handler_add(EIO_MONITOR_DIRECTORY_DELETED,
-                         _monitor_cb, entry));
           }
         return ECORE_CALLBACK_PASS_ON;
      }
@@ -806,25 +788,45 @@ _monitor_cb(void *data, int type,
              e = elm_object_item_data_get(item);
              if (!strcmp(e->path, ev->filename))
                {
-                  elm_object_item_del(e->item);
-                  //if (!strcmp(e->path, e->ephoto->config->directory))
-                  break;
+                    elm_object_item_del(e->item);
+                    break;
                }
              item = elm_genlist_item_next_get(item);
           }
-        if (elm_genlist_item_type_get(entry->item) == ELM_GENLIST_ITEM_TREE &&
-            _check_for_subdirs(entry) == EINA_FALSE)
+        printf("%s\n", entry->path);
+        if (_check_for_subdirs(entry) == EINA_FALSE)
           {
              Elm_Object_Item *parent;
-
-             ic = _ephoto_dir_tree_class;
+             printf("%s\n", entry->path);
+             ic = _ephoto_dir_class;
              parent =
                  elm_genlist_item_insert_before(entry->genlist, ic, entry,
                  entry->parent, entry->item, ELM_GENLIST_ITEM_NONE, NULL, 
NULL);
+              
              entry->no_delete = EINA_TRUE;
              elm_object_item_del(entry->item);
+             if (entry->monitor)
+               {
+                  eio_monitor_del(entry->monitor);
+                  EINA_LIST_FREE(entry->monitor_handlers, handler)
+                    ecore_event_handler_del(handler);
+               }
              entry->item = parent;
+             entry->monitor = eio_monitor_add(entry->path);
+             entry->monitor_handlers =
+                 eina_list_append(entry->monitor_handlers,
+                     ecore_event_handler_add(EIO_MONITOR_DIRECTORY_CREATED,
+                         _monitor_cb, entry));
+             entry->monitor_handlers =
+                 eina_list_append(entry->monitor_handlers,
+                     ecore_event_handler_add(EIO_MONITOR_DIRECTORY_MODIFIED,
+                         _monitor_cb, entry));
+             entry->monitor_handlers =
+                 eina_list_append(entry->monitor_handlers,
+                     ecore_event_handler_add(EIO_MONITOR_DIRECTORY_DELETED,
+                         _monitor_cb, entry));
              entry->no_delete = EINA_FALSE;
+             
           }
         if (!ecore_file_exists(entry->ephoto->config->directory))
           {

-- 


Reply via email to