[gnome-commander/Implement_CppCheck_suggestions] Update bookmarks in all gcmd instances if they changed



commit 839b55d193c1872335e586918b0d5ed392101040
Author: Uwe Scholz <u scholz83 gmx de>
Date:   Tue Apr 9 20:47:01 2019 +0200

    Update bookmarks in all gcmd instances if they changed

 src/gnome-cmd-data.cc | 19 ++++++++++++++++++-
 src/gnome-cmd-data.h  |  2 +-
 2 files changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc
index 1fdecbd8..f531cfef 100644
--- a/src/gnome-cmd-data.cc
+++ b/src/gnome-cmd-data.cc
@@ -131,6 +131,19 @@ static void gcmd_settings_dispose (GObject *object)
     G_OBJECT_CLASS (gcmd_settings_parent_class)->dispose (object);
 }
 
+static void on_bookmarks_changed ()
+{
+    gnome_cmd_con_erase_bookmark (gnome_cmd_data.priv->con_list->get_home());
+#ifdef HAVE_SAMBA
+    gnome_cmd_con_erase_bookmark (gnome_cmd_data.priv->con_list->get_smb());
+#endif
+
+    gnome_cmd_data.load_bookmarks();
+
+    main_win->update_bookmarks ();
+    gnome_cmd_update_bookmark_dialog ();
+}
+
 static void on_size_display_mode_changed ()
 {
     gint size_disp_mode;
@@ -909,6 +922,11 @@ GcmdSettings *gcmd_settings_new ()
 
 static void gcmd_connect_gsettings_signals(GcmdSettings *gs)
 {
+    g_signal_connect (gs->general,
+                      "changed::bookmarks",
+                      G_CALLBACK (on_bookmarks_changed),
+                      nullptr);
+
     g_signal_connect (gs->general,
                       "changed::size-display-mode",
                       G_CALLBACK (on_size_display_mode_changed),
@@ -1592,7 +1610,6 @@ void GnomeCmdData::save_bookmarks()
         GVariant* bookmarksToStore = g_variant_builder_end (gVariantBuilder);
         g_settings_set_value(options.gcmd_settings->general, GCMD_SETTINGS_BOOKMARKS, bookmarksToStore);
     }
-
     g_variant_builder_unref(gVariantBuilder);
 }
 
diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h
index c2fb90fe..0de15a10 100644
--- a/src/gnome-cmd-data.h
+++ b/src/gnome-cmd-data.h
@@ -636,7 +636,6 @@ struct GnomeCmdData
     void load_directory_history();
     void load_intviewer_defaults();
     gboolean save_auto_load_plugins();
-    void load_bookmarks();
     void load_keybindings();
     void save_keybindings();
     void load_connections();
@@ -717,6 +716,7 @@ struct GnomeCmdData
     void load_search_profiles ();
     void save_search_profiles ();
     void save_bookmarks();
+    void load_bookmarks();
     void save();
     gint gnome_cmd_data_get_int (const gchar *path, int def);
     gchar* gnome_cmd_data_get_string (const gchar *path, const gchar *def);


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