]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
kconfig: gconf: use GtkFileChooser in on_load1_activate()
authorMasahiro Yamada <masahiroy@kernel.org>
Tue, 24 Jun 2025 15:05:24 +0000 (00:05 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Wed, 2 Jul 2025 01:36:15 +0000 (10:36 +0900)
gtk_file_selection_new() is deprecated, and gtk_file_chooser_dialog_new()
should be used instead. [1]

[1]: https://gitlab.gnome.org/GNOME/gtk/-/blob/2.24.33/docs/reference/gtk/tmpl/gtkfilesel.sgml?ref_type=tags#L156

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
scripts/kconfig/gconf.c

index 4e21cf46ff01649497335ca0cd9ecc923c7e1ae8..20a20a5888b93ef70e6a2f206765b4a8022ccb91 100644 (file)
@@ -158,38 +158,38 @@ static void set_view_mode(enum view_mode mode)
 
 /* Menu & Toolbar Callbacks */
 
-
-static void
-load_filename(GtkFileSelection * file_selector, gpointer user_data)
+static void on_load1_activate(GtkMenuItem *menuitem, gpointer user_data)
 {
-       const gchar *fn;
+       GtkWidget *dialog;
+       GtkFileChooser *chooser;
+       gint res;
 
-       fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION
-                                            (user_data));
+       dialog = gtk_file_chooser_dialog_new("Load file...",
+                                            GTK_WINDOW(user_data),
+                                            GTK_FILE_CHOOSER_ACTION_OPEN,
+                                            "_Cancel", GTK_RESPONSE_CANCEL,
+                                            "_Open", GTK_RESPONSE_ACCEPT,
+                                            NULL);
 
-       if (conf_read(fn))
-               text_insert_msg("Error", "Unable to load configuration !");
-       else
-               display_tree_part();
-}
+       chooser = GTK_FILE_CHOOSER(dialog);
+       gtk_file_chooser_set_filename(chooser, conf_get_configname());
 
-static void on_load1_activate(GtkMenuItem *menuitem, gpointer user_data)
-{
-       GtkWidget *fs;
+       res = gtk_dialog_run(GTK_DIALOG(dialog));
+       if (res == GTK_RESPONSE_ACCEPT) {
+               char *filename;
 
-       fs = gtk_file_selection_new("Load file...");
-       g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button),
-                        "clicked",
-                        G_CALLBACK(load_filename), (gpointer) fs);
-       g_signal_connect_swapped(GTK_OBJECT
-                                (GTK_FILE_SELECTION(fs)->ok_button),
-                                "clicked", G_CALLBACK(gtk_widget_destroy),
-                                (gpointer) fs);
-       g_signal_connect_swapped(GTK_OBJECT
-                                (GTK_FILE_SELECTION(fs)->cancel_button),
-                                "clicked", G_CALLBACK(gtk_widget_destroy),
-                                (gpointer) fs);
-       gtk_widget_show(fs);
+               filename = gtk_file_chooser_get_filename(chooser);
+
+               if (conf_read(filename))
+                       text_insert_msg("Error",
+                                       "Unable to load configuration!");
+               else
+                       display_tree_part();
+
+               g_free(filename);
+       }
+
+       gtk_widget_destroy(GTK_WIDGET(dialog));
 }
 
 static void on_save_activate(GtkMenuItem *menuitem, gpointer user_data)