Remove GTK2 compat code. Open-code conditional compilation directives that evaluate to constant values when virt-p2v is built with GTK3.
A special note regarding GTK_SPINNER (because the code does not use a version check for the spinner widget's availability): upstream GTK introduced GTK_SPINNER in commit d21700f5105c ("Bug 319607 – Add a throbber (activity widget) to GTK+", 2009-10-14), which commit was first released in version 2.19.0, and is also contained within release 3.0.0. Even within GTK3, we have multiple compatibility layers. If we only concentrated on RHEL-9+ and Fedora-35+, we could much simplify "gui-gtk3-compat.h" as well (potentially flattening the whole header file into C sources). Given that we build virt-p2v on multiple distro families, establishing a common base version for GTK3, higher than version 3.0.0, is not so simple. So preserve "gui-gtk3-compat.h" for now. Signed-off-by: Laszlo Ersek <ler...@redhat.com> --- Makefile.am | 1 - gui-gtk2-compat.h | 116 -------------------- gui.c | 45 +------- 3 files changed, 3 insertions(+), 159 deletions(-) diff --git a/Makefile.am b/Makefile.am index 126ee726278a..eaa98270fd9a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -106,7 +106,6 @@ virt_p2v_SOURCES = \ cpuid.c \ disks.c \ gui.c \ - gui-gtk2-compat.h \ gui-gtk3-compat.h \ inhibit.c \ kernel.c \ diff --git a/gui-gtk2-compat.h b/gui-gtk2-compat.h deleted file mode 100644 index ac9cb6022154..000000000000 --- a/gui-gtk2-compat.h +++ /dev/null @@ -1,116 +0,0 @@ -/* virt-p2v - * Copyright (C) 2009-2019 Red Hat Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - -/* Backwards compatibility for ancient RHEL 5 Gtk 2.10. */ -#ifndef GTK_COMBO_BOX_TEXT -#define GTK_COMBO_BOX_TEXT GTK_COMBO_BOX -#define gtk_combo_box_text_new() gtk_combo_box_new_text() -#define gtk_combo_box_text_append_text(combo, text) \ - gtk_combo_box_append_text((combo), (text)) -#define gtk_combo_box_text_get_active_text(combo) \ - gtk_combo_box_get_active_text((combo)) -#endif - -#if !GTK_CHECK_VERSION(2,12,0) /* gtk < 2.12 */ -#define gtk_widget_set_tooltip_markup(widget, text) /* nothing */ -#endif - -#if !GTK_CHECK_VERSION(2,14,0) /* gtk < 2.14 */ -#define gtk_dialog_get_content_area(dlg) ((dlg)->vbox) -#endif - -#if !GTK_CHECK_VERSION(2,18,0) /* gtk < 2.18 */ -static void -gtk_cell_renderer_set_alignment (GtkCellRenderer *cell, - gfloat xalign, gfloat yalign) -{ - if ((xalign != cell->xalign) || (yalign != cell->yalign)) { - g_object_freeze_notify (G_OBJECT (cell)); - - if (xalign != cell->xalign) { - cell->xalign = xalign; - g_object_notify (G_OBJECT (cell), "xalign"); - } - - if (yalign != cell->yalign) { - cell->yalign = yalign; - g_object_notify (G_OBJECT (cell), "yalign"); - } - - g_object_thaw_notify (G_OBJECT (cell)); - } -} -#endif - -#if !GTK_CHECK_VERSION(2,20,0) /* gtk < 2.20 */ -typedef struct _ResponseData ResponseData; - -struct _ResponseData -{ - gint response_id; -}; - -static void -response_data_free (gpointer data) -{ - g_slice_free (ResponseData, data); -} - -static ResponseData * -get_response_data (GtkWidget *widget, gboolean create) -{ - ResponseData *ad = g_object_get_data (G_OBJECT (widget), - "gtk-dialog-response-data"); - - if (ad == NULL && create) { - ad = g_slice_new (ResponseData); - - g_object_set_data_full (G_OBJECT (widget), - g_intern_static_string ("gtk-dialog-response-data"), - ad, - response_data_free); - } - - return ad; -} - -static GtkWidget * -gtk_dialog_get_widget_for_response (GtkDialog *dialog, gint response_id) -{ - GList *children; - GList *tmp_list; - - children = gtk_container_get_children (GTK_CONTAINER (dialog->action_area)); - - tmp_list = children; - while (tmp_list != NULL) { - GtkWidget *widget = tmp_list->data; - ResponseData *rd = get_response_data (widget, FALSE); - - if (rd && rd->response_id == response_id) { - g_list_free (children); - return widget; - } - - tmp_list = tmp_list->next; - } - - g_list_free (children); - - return NULL; -} -#endif /* gtk < 2.20 */ diff --git a/gui.c b/gui.c index 5d1771266605..6e785497b968 100644 --- a/gui.c +++ b/gui.c @@ -47,12 +47,9 @@ * handled entirely by NetworkManager's L<nm-connection-editor(1)> * program and has nothing to do with this code. * - * This file is written in a kind of "pseudo-Gtk" which is backwards - * compatible from Gtk 2.10 (RHEL 5) through at least Gtk 3.22. This - * is done using a few macros to implement old C<gtk_*> functions or - * map them to newer functions. Supporting ancient Gtk is important - * because we want to provide a virt-p2v binary that can run on very - * old kernels, to support 32 bit and proprietary SCSI drivers. + * This file is written in a kind of "pseudo-Gtk" which is backwards compatible + * from Gtk 3.0 through at least Gtk 3.22. This is done using a few macros to + * implement old C<gtk_*> functions or map them to newer functions. */ #include <config.h> @@ -86,7 +83,6 @@ #include "p2v.h" /* See note about "pseudo-Gtk" above. */ -#include "gui-gtk2-compat.h" #include "gui-gtk3-compat.h" /* Maximum vCPUs and guest memory that we will allow users to set. @@ -116,9 +112,7 @@ static GtkWidget *conn_dlg, *server_entry, *port_entry, *username_entry, *password_entry, *identity_entry, *sudo_button, *spinner_hbox, -#ifdef GTK_SPINNER *spinner, -#endif *spinner_message, *next_button; /* The conversion dialog. */ @@ -138,23 +132,6 @@ static GtkWidget *run_dlg, /* Colour tags used in the v2v_output GtkTextBuffer. */ static GtkTextTag *v2v_output_tags[16]; -#if !GTK_CHECK_VERSION(3,0,0) /* gtk < 3 */ -/* The license of virt-p2v, for the About dialog. */ -static const char gplv2plus[] = - "This program is free software; you can redistribute it and/or modify\n" - "it under the terms of the GNU General Public License as published by\n" - "the Free Software Foundation; either version 2 of the License, or\n" - "(at your option) any later version.\n" - "\n" - "This program is distributed in the hope that it will be useful,\n" - "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - "GNU General Public License for more details.\n" - "\n" - "You should have received a copy of the GNU General Public License\n" - "along with this program. If not, see <https://www.gnu.org/licenses/>.\n"; -#endif - /** * The entry point from the main program. * @@ -304,10 +281,8 @@ create_connection_dialog (struct config *config) gtk_box_pack_start (GTK_BOX (test_hbox), test, TRUE, FALSE, 0); hbox_new (spinner_hbox, FALSE, 10); -#ifdef GTK_SPINNER spinner = gtk_spinner_new (); gtk_box_pack_start (GTK_BOX (spinner_hbox), spinner, FALSE, FALSE, 0); -#endif spinner_message = gtk_label_new (NULL); gtk_label_set_line_wrap (GTK_LABEL (spinner_message), TRUE); set_padding (spinner_message, 10, 10); @@ -452,9 +427,7 @@ test_connection_clicked (GtkWidget *w, gpointer data) gtk_label_set_text (GTK_LABEL (spinner_message), ""); gtk_widget_show_all (spinner_hbox); -#ifdef GTK_SPINNER gtk_widget_hide (spinner); -#endif /* Get the fields from the various widgets. */ free (config->remote.server); @@ -550,10 +523,8 @@ start_spinner (gpointer user_data) { gtk_label_set_text (GTK_LABEL (spinner_message), _("Testing the connection to the conversion server ...")); -#ifdef GTK_SPINNER gtk_widget_show (spinner); gtk_spinner_start (GTK_SPINNER (spinner)); -#endif return FALSE; } @@ -564,10 +535,8 @@ start_spinner (gpointer user_data) static gboolean stop_spinner (gpointer user_data) { -#ifdef GTK_SPINNER gtk_spinner_stop (GTK_SPINNER (spinner)); gtk_widget_hide (spinner); -#endif return FALSE; } @@ -652,11 +621,7 @@ about_button_clicked (GtkWidget *w, gpointer data) "copyright", "\u00A9 2009-2019 Red Hat Inc.", "comments", _("Virtualize a physical machine to run on KVM"), -#if GTK_CHECK_VERSION(3,0,0) /* gtk >= 3 */ "license-type", GTK_LICENSE_GPL_2_0, -#else - "license", gplv2plus, -#endif "website", "http://libguestfs.org/", "authors", authors, NULL); @@ -1855,11 +1820,7 @@ create_running_dialog (void) #else PangoFontDescription *font; font = pango_font_description_from_string ("Monospace 11"); -#if GTK_CHECK_VERSION(3,0,0) /* gtk >= 3 */ gtk_widget_override_font (v2v_output, font); -#else - gtk_widget_modify_font (v2v_output, font); -#endif pango_font_description_free (font); #endif _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs