[gnome-commander] Error logging if dir-listing fails: use GIO error code



commit 1adb92d022ef45ea64327fed959b9593b06fb70e
Author: Uwe Scholz <u scholz83 gmx de>
Date:   Thu May 20 22:12:23 2021 +0200

    Error logging if dir-listing fails: use GIO error code

 src/dirlist.cc       | 13 ++++++-------
 src/gnome-cmd-dir.cc | 11 +++++------
 src/gnome-cmd-dir.h  |  2 +-
 3 files changed, 12 insertions(+), 14 deletions(-)
---
diff --git a/src/dirlist.cc b/src/dirlist.cc
index e740e56d..2931b7b7 100644
--- a/src/dirlist.cc
+++ b/src/dirlist.cc
@@ -85,7 +85,7 @@ static gboolean update_list_progress (GnomeCmdDir *dir)
     }
 
     DEBUG ('l', "calling list_done func\n");
-    dir->done_func (dir, dir->infolist, dir->list_result);
+    dir->done_func (dir, dir->infolist, nullptr);
     return FALSE;
 }
 
@@ -158,23 +158,22 @@ static void enumerate_children_callback(GObject *direnum, GAsyncResult *result,
     auto dir = GNOME_CMD_DIR(user_data);
     GError *error = nullptr;
 
-    GList *gFileInfosList = g_file_enumerator_next_files_finish( gFileEnumerator,
-                    result, &error);
+    GList *gFileInfosList = g_file_enumerator_next_files_finish(gFileEnumerator, result, &error);
 
-    if( error )
+    if(error)
     {
         g_critical("Unable to iterate the g_file_enumerator, error: %s", error->message);
         dir->state = GnomeCmdDir::STATE_EMPTY;
         g_object_unref(direnum);
-        dir->done_func (dir, dir->gFileInfoList, dir->list_result);
+        dir->done_func (dir, dir->gFileInfoList, error);
         g_error_free(error);
         return;
     }
-    else if( gFileInfosList == nullptr )
+    else if(gFileInfosList == nullptr)
     {
         /* DONE */
         dir->state = GnomeCmdDir::STATE_LISTED;
-        dir->done_func (dir, dir->gFileInfoList, dir->list_result);
+        dir->done_func (dir, dir->gFileInfoList, nullptr);
         g_object_unref(direnum);
         return;
     }
diff --git a/src/gnome-cmd-dir.cc b/src/gnome-cmd-dir.cc
index 9968eaa9..f34f1fdb 100644
--- a/src/gnome-cmd-dir.cc
+++ b/src/gnome-cmd-dir.cc
@@ -59,7 +59,6 @@ struct GnomeCmdDirPrivate
     gint ref_cnt;
     GList *files;
     GnomeCmdFileCollection *file_collection;
-    GnomeVFSResult last_result;
     GnomeCmdCon *con;
     GnomeCmdPath *path;
 
@@ -522,7 +521,7 @@ static GList *create_gnome_cmd_file_list_from_gfileinfo_list (GnomeCmdDir *dir,
 }
 
 
-static void on_list_done (GnomeCmdDir *dir, GList *infolist, GnomeVFSResult result)
+static void on_list_done (GnomeCmdDir *dir, GList *infolist, GError *error)
 {
     if (dir->state == GnomeCmdDir::STATE_LISTED)
     {
@@ -541,14 +540,15 @@ static void on_list_done (GnomeCmdDir *dir, GList *infolist, GnomeVFSResult resu
             dir->dialog = nullptr;
         }
         dir->priv->lock = FALSE;
-        dir->priv->last_result = GNOME_VFS_OK;
 
         DEBUG('l', "Emitting 'list-ok' signal\n");
         g_signal_emit (dir, signals[LIST_OK], 0, dir->priv->files);
     }
     else if (dir->state == GnomeCmdDir::STATE_EMPTY)
     {
-        DEBUG('l', "File listing failed: %s\n", gnome_vfs_result_to_string (result));
+        auto errorCode = g_enum_to_string (G_IO_ERROR, error->code);
+        DEBUG('l', "File listing failed: %s\n", errorCode);
+        g_free(errorCode);
 
         if (dir->dialog)
         {
@@ -556,11 +556,10 @@ static void on_list_done (GnomeCmdDir *dir, GList *infolist, GnomeVFSResult resu
             dir->dialog = nullptr;
         }
 
-        dir->priv->last_result = result;
         dir->priv->lock = FALSE;
 
         DEBUG('l', "Emitting 'list-failed' signal\n");
-        g_signal_emit (dir, signals[LIST_FAILED], 0, result);
+        g_signal_emit (dir, signals[LIST_FAILED], 0, error->code);
     }
 }
 
diff --git a/src/gnome-cmd-dir.h b/src/gnome-cmd-dir.h
index f0ea5e79..f270f51b 100644
--- a/src/gnome-cmd-dir.h
+++ b/src/gnome-cmd-dir.h
@@ -35,7 +35,7 @@ GType gnome_cmd_dir_get_type ();
 struct GnomeCmdDir;
 struct GnomeCmdDirPrivate;
 
-typedef void (* DirListDoneFunc) (GnomeCmdDir *dir, GList *files, GnomeVFSResult result);
+typedef void (* DirListDoneFunc) (GnomeCmdDir *dir, GList *files, GError *error);
 
 #include <string>
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]