[gnome-commander] Reuse code, fix gfile creation of remote connection



commit efa81ba3a63479bb22fba46a7b198d9dfa1dabec
Author: Uwe Scholz <u scholz83 gmx de>
Date:   Sun Dec 19 00:25:40 2021 +0100

    Reuse code, fix gfile creation of remote connection

 src/gnome-cmd-con-remote.cc | 21 +++++----------------
 src/gnome-cmd-con.cc        |  4 +++-
 src/gnome-cmd-dir.cc        |  5 ++++-
 3 files changed, 12 insertions(+), 18 deletions(-)
---
diff --git a/src/gnome-cmd-con-remote.cc b/src/gnome-cmd-con-remote.cc
index acb2cad6..523faeef 100644
--- a/src/gnome-cmd-con-remote.cc
+++ b/src/gnome-cmd-con-remote.cc
@@ -53,29 +53,18 @@ static void mount_remote_finish_callback(GObject *gobj, GAsyncResult *result, gp
     g_return_if_fail(G_IS_FILE(gFile));
 
     GError *error = nullptr;
-    GError *errorQuery = nullptr;
 
-    // The volume might be mounted already, so we are trying to get some information about the
-    // underlying gFile to decide if we want to raise an error or not
     g_file_mount_enclosing_volume_finish(gFile, result, &error);
-    con->base_gFileInfo = g_file_query_info(gFile, "*", G_FILE_QUERY_INFO_NONE, nullptr, &errorQuery);
-    if (errorQuery)
+    if (error && !g_error_matches(error, G_IO_ERROR, G_IO_ERROR_ALREADY_MOUNTED))
     {
-        auto uriString = g_file_get_uri(gFile);
-        DEBUG('m', "Unable to query information for uri \"%s\", error: %s\n", uriString, 
errorQuery->message);
-        g_free(uriString);
-        if (error)
-        {
-            DEBUG('m', "... probably because of this error: %s\n", error->message);
-            g_error_free(error);
-        }
-        con->open_failed_error = g_error_copy(errorQuery);
-        g_error_free(errorQuery);
+        DEBUG('m', "Unable to mount enclosing volume: %s\n", error->message);
+        con->open_failed_error = g_error_copy(error);
+        g_error_free(error);
         set_con_mount_failed(con);
         g_object_unref(gFile);
         return;
     }
-
+    set_con_base_gfileinfo(con);
     con->state = GnomeCmdCon::STATE_OPEN;
     con->open_result = GnomeCmdCon::OPEN_OK;
     g_object_unref(gFile);
diff --git a/src/gnome-cmd-con.cc b/src/gnome-cmd-con.cc
index ad16ff4c..0f3cf315 100644
--- a/src/gnome-cmd-con.cc
+++ b/src/gnome-cmd-con.cc
@@ -333,7 +333,9 @@ gboolean set_con_base_gfileinfo(GnomeCmdCon *con)
         con->base_gFileInfo = nullptr;
     }
 
-    auto gFile = gnome_cmd_con_create_gfile (con, con->base_path);
+    auto gFile = con->is_local
+        ? gnome_cmd_con_create_gfile (con, con->base_path)
+        : gnome_cmd_con_create_gfile (con, nullptr);
     con->base_gFileInfo = g_file_query_info(gFile, "*", G_FILE_QUERY_INFO_NONE, nullptr, &error);
     g_object_unref(gFile);
     if (error)
diff --git a/src/gnome-cmd-dir.cc b/src/gnome-cmd-dir.cc
index 7fde3e9a..b9d5401c 100644
--- a/src/gnome-cmd-dir.cc
+++ b/src/gnome-cmd-dir.cc
@@ -300,7 +300,10 @@ GnomeCmdDir *gnome_cmd_dir_new_with_con (GnomeCmdCon *con)
     g_return_val_if_fail (GNOME_CMD_IS_CON (con), nullptr);
     g_return_val_if_fail (con->base_gFileInfo != nullptr, nullptr);
 
-    auto gFile = gnome_cmd_con_create_gfile (con, con->base_path);
+    auto gFile = con->is_local
+        ? gnome_cmd_con_create_gfile (con, con->base_path)
+        : gnome_cmd_con_create_gfile (con, nullptr);
+
     auto uri_str = g_file_get_uri(gFile);
     g_object_unref (gFile);
     GnomeCmdDir *dir = gnome_cmd_con_cache_lookup (con, uri_str);


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