[gnome-commander/gcmd-1-10] Move loading of images with gtk_icon_factory_new into the imageloader



commit 6dd0f791afbe413d5d700c9699d064eeb7a18201
Author: Uwe Scholz <u scholz83 gmx de>
Date:   Fri May 1 19:52:15 2020 +0200

    Move loading of images with gtk_icon_factory_new into the imageloader

 src/gnome-cmd-main-win.cc | 40 ----------------------------------------
 src/imageloader.cc        | 39 +++++++++++++++++++++++++++++++++++++++
 src/imageloader.h         |  2 ++
 3 files changed, 41 insertions(+), 40 deletions(-)
---
diff --git a/src/gnome-cmd-main-win.cc b/src/gnome-cmd-main-win.cc
index 68faafc5..692603eb 100644
--- a/src/gnome-cmd-main-win.cc
+++ b/src/gnome-cmd-main-win.cc
@@ -225,44 +225,6 @@ static GtkWidget *create_separator (gboolean vertical)
     return box;
 }
 
-static struct
-{
-    const gchar *filename;
-    const gchar *stock_id;
-} stock_icons[] =
-{
-    { PIXMAPS_DIR G_DIR_SEPARATOR_S "copy_file_names.xpm", "my_stock_copy_file_names_xpm" },
-    { PIXMAPS_DIR G_DIR_SEPARATOR_S "terminal.svg", "my_stock_terminal_svg" }
-};
-
-static gint n_stock_icons = G_N_ELEMENTS (stock_icons);
-
-static void
-register_my_stock_icons (void)
-{
-    GtkIconFactory *icon_factory;
-    GtkIconSet *icon_set;
-    GtkIconSource *icon_source;
-    gint i;
-
-    icon_factory = gtk_icon_factory_new ();
-
-    for (i = 0; i < n_stock_icons; i++)
-       {
-           icon_set = gtk_icon_set_new ();
-           icon_source = gtk_icon_source_new ();
-           gtk_icon_source_set_filename (icon_source, stock_icons[i].filename);
-           gtk_icon_set_add_source (icon_set, icon_source);
-           gtk_icon_source_free (icon_source);
-           gtk_icon_factory_add (icon_factory, stock_icons[i].stock_id, icon_set);
-           gtk_icon_set_unref (icon_set);
-       }
-
-    gtk_icon_factory_add_default (icon_factory);
-
-    g_object_unref (icon_factory);
-}
-
 static void create_toolbar (GnomeCmdMainWin *mw)
 {
     static const GtkActionEntry entries[] =
@@ -313,8 +275,6 @@ static void create_toolbar (GnomeCmdMainWin *mw)
     GtkUIManager *ui_manager;
     GError *error;
 
-    register_my_stock_icons ();
-
     action_group = gtk_action_group_new ("MenuActions");
     gtk_action_group_add_actions (action_group, entries, G_N_ELEMENTS (entries), mw);
 
diff --git a/src/imageloader.cc b/src/imageloader.cc
index 97193de5..c33467dc 100644
--- a/src/imageloader.cc
+++ b/src/imageloader.cc
@@ -140,6 +140,8 @@ void IMAGE_init ()
 
         g_free (path);
     }
+
+    register_my_stock_icons ();
 }
 
 
@@ -487,3 +489,40 @@ void IMAGE_free ()
         pixmaps[i] = nullptr;
     }
 }
+
+static struct
+{
+    const gchar *filename;
+    const gchar *stock_id;
+} stock_icons[] =
+{
+    { PIXMAPS_DIR G_DIR_SEPARATOR_S "copy_file_names.xpm", "my_stock_copy_file_names_xpm" },
+    { PIXMAPS_DIR G_DIR_SEPARATOR_S "terminal.svg", "my_stock_terminal_svg" }
+};
+
+static gint n_stock_icons = G_N_ELEMENTS (stock_icons);
+
+void register_my_stock_icons (void)
+{
+    GtkIconFactory *icon_factory;
+    GtkIconSet *icon_set;
+    GtkIconSource *icon_source;
+    gint i;
+
+    icon_factory = gtk_icon_factory_new ();
+
+    for (i = 0; i < n_stock_icons; i++)
+       {
+           icon_set = gtk_icon_set_new ();
+           icon_source = gtk_icon_source_new ();
+           gtk_icon_source_set_filename (icon_source, stock_icons[i].filename);
+           gtk_icon_set_add_source (icon_set, icon_source);
+           gtk_icon_source_free (icon_source);
+           gtk_icon_factory_add (icon_factory, stock_icons[i].stock_id, icon_set);
+           gtk_icon_set_unref (icon_set);
+       }
+
+    gtk_icon_factory_add_default (icon_factory);
+
+    g_object_unref (icon_factory);
+}
\ No newline at end of file
diff --git a/src/imageloader.h b/src/imageloader.h
index b8c75d6a..e0e0c166 100644
--- a/src/imageloader.h
+++ b/src/imageloader.h
@@ -78,3 +78,5 @@ gboolean IMAGE_get_pixmap_and_mask (GnomeVFSFileType type,
                                     GdkBitmap **mask);
 
 void IMAGE_clear_mime_cache ();
+
+void register_my_stock_icons (void);
\ No newline at end of file


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