GTK4: GtkTable
[geeqie.git] / src / osd.cc
index d322e3f..e0074d9 100644 (file)
@@ -123,7 +123,7 @@ static void osd_btn_destroy_cb(GtkWidget *btn, GdkDragContext *, GtkSelectionDat
        g_free(td->title);
 }
 
-static void set_osd_button(GtkTable *table, const gint rows, const gint cols, const gchar *key, const gchar *title, GtkWidget *template_view)
+static void set_osd_button(GtkGrid *grid, const gint rows, const gint cols, const gchar *key, const gchar *title, GtkWidget *template_view)
 {
        GtkWidget *new_button;
        TagData *td;
@@ -144,7 +144,7 @@ static void set_osd_button(GtkTable *table, const gint rows, const gint cols, co
        g_signal_connect(G_OBJECT(new_button), "destroy",
                                                        G_CALLBACK(osd_btn_destroy_cb), new_button);
 
-       gtk_table_attach_defaults(table, new_button, cols, cols+1, rows, rows+1);
+       gtk_grid_attach(grid, new_button, cols, rows, 1, 1);
 
 }
 
@@ -163,8 +163,8 @@ GtkWidget *osd_new(gint max_cols, GtkWidget *template_view)
 
        pref_label_new(vbox, _("To include predefined tags in the template, click a button or drag-and-drop"));
 
-       scrolled = gtk_scrolled_window_new(nullptr, nullptr);
-       gtk_box_pack_start(GTK_BOX(vbox), scrolled, FALSE, FALSE, 0);
+       scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
+       gq_gtk_box_pack_start(GTK_BOX(vbox), scrolled, FALSE, FALSE, 0);
        gtk_container_set_border_width(GTK_CONTAINER(scrolled), PREF_PAD_BORDER);
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
                                       GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
@@ -173,16 +173,16 @@ GtkWidget *osd_new(gint max_cols, GtkWidget *template_view)
 
        viewport = gtk_viewport_new(nullptr, nullptr);
        gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE);
-       gtk_container_add(GTK_CONTAINER(scrolled), viewport);
+       gq_gtk_container_add(GTK_WIDGET(scrolled), viewport);
        gtk_widget_show(viewport);
 
        entries = (sizeof(predefined_tags) / sizeof(predefined_tags[0])) - 1;
        max_rows = ceil(entries / max_cols);
 
-       GtkTable *table;
-       table = GTK_TABLE(gtk_table_new(max_rows, max_cols, FALSE));
-       gtk_container_add(GTK_CONTAINER(viewport), GTK_WIDGET(table));
-       gtk_widget_show(GTK_WIDGET(table));
+       GtkGrid *grid;
+       grid = GTK_GRID(gtk_grid_new());
+       gq_gtk_container_add(GTK_WIDGET(viewport), GTK_WIDGET(grid));
+       gtk_widget_show(GTK_WIDGET(grid));
 
        for (rows = 0; rows < max_rows; rows++)
                {
@@ -190,7 +190,7 @@ GtkWidget *osd_new(gint max_cols, GtkWidget *template_view)
 
                while (cols < max_cols && predefined_tags[i][0])
                        {
-                       set_osd_button(table, rows, cols, predefined_tags[i][0], predefined_tags[i][1], template_view);
+                       set_osd_button(grid, rows, cols, predefined_tags[i][0], predefined_tags[i][1], template_view);
                        i = i + 1;
                        cols++;
                        }
@@ -201,7 +201,6 @@ static gchar *keywords_to_string(FileData *fd)
 {
        GList *keywords;
        GString *kwstr = nullptr;
-       gchar *ret = nullptr;
 
        g_assert(fd);
 
@@ -229,11 +228,10 @@ static gchar *keywords_to_string(FileData *fd)
 
        if (kwstr)
                {
-               ret = g_strdup(kwstr->str);
-               g_string_free(kwstr, TRUE);
+               return g_string_free(kwstr, FALSE);
                }
 
-       return ret;
+       return nullptr;
 }
 
 gchar *image_osd_mkinfo(const gchar *str, FileData *fd, GHashTable *vars)
@@ -443,12 +441,9 @@ gchar *image_osd_mkinfo(const gchar *str, FileData *fd, GHashTable *vars)
                g_string_erase(osd_info, start-osd_info->str, end-start-1);
                }
 
-       g_strchomp(osd_info->str);
+       ret = g_string_free(osd_info, FALSE);
 
-       ret = g_strdup(osd_info->str);
-       g_string_free(osd_info, TRUE);
-
-       return ret;
+       return g_strchomp(ret);
 }
 
 void osd_template_insert(GHashTable *vars, const gchar *keyword, const gchar *value, OsdTemplateFlags flags)