debian/0000755000000000000000000000000011770577167007210 5ustar debian/compat0000644000000000000000000000000211770576147010403 0ustar 9 debian/patches/0000755000000000000000000000000011770566534010633 5ustar debian/patches/1002-gtk2_to_gtk3.patch0000644000000000000000000023522511770566534014546 0ustar Description: Migrate from GTK+ 2.0 to GTK+ 3.0 Upstream commits: f495c2eda311a5a4f9f42b3f6ab97158d8676aac ddf32a1ab1228f097d3211958161a2f9fb5c22e6 0699cf1d0df986a9905a5740b40addeb43c6d240 2718faafe045802db40d400d6eef3cbb5707e3be 9e9f43bd9183b8baf365bf15f209ce3a721dd387 Origin: upstream --- configure.ac | 28 ++++++++++-- src/Makefile.am | 2 src/common.h | 2 src/data.c | 96 ++++++++++++++++++++++++++------------------ src/editmeta.c | 65 ++++++++++++++++------------- src/filesystem.c | 26 +++++++---- src/gnomad2.c | 80 ++++++++++++++++++++++++------------ src/jukebox.c | 69 +++++++++++++++++-------------- src/player.c | 88 ++++++++++++++++++++++++++++------------ src/playlists.c | 120 +++++++++++++++++++++++++++++++++---------------------- src/prefs.c | 10 ++-- src/util.c | 6 +- src/xfer.c | 107 ++++++++++++++++++++++++++++--------------------- 13 files changed, 434 insertions(+), 265 deletions(-) --- gnomad2.orig/src/data.c +++ gnomad2/src/data.c @@ -1,6 +1,6 @@ /* data.c Data transferring window widgets and callbacks - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -41,7 +41,7 @@ static GCallback data_from_jukebox_to_hd } if (metalist != NULL) { - GtkWidget *label1, *label2, *dialog, *button, *separator; + GtkWidget *label1, *label2, *dialog, *button, *separator, *vbox; dialog = gtk_dialog_new_with_buttons(_("Transferring files from jukebox file storage"), NULL, @@ -54,20 +54,25 @@ static GCallback data_from_jukebox_to_hd "clicked", G_CALLBACK(cancel_jukebox_operation_click), NULL); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT(dialog), + G_OBJECT(dialog), 0); gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); label1 = gtk_label_new(_("Retrieving data files from Jukebox...")); label2 = gtk_label_new(""); progress_bar = gtk_progress_bar_new(); separator = gtk_hseparator_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label1, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label2, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), separator, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progress_bar, TRUE, TRUE, 0); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); +#else + vbox = GTK_DIALOG(dialog)->vbox; +#endif + gtk_box_pack_start(GTK_BOX(vbox), label1, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label2, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), separator, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), progress_bar, TRUE, TRUE, 0); gtk_widget_show_all(dialog); jb2hd_data_thread_args->dialog = dialog; @@ -96,7 +101,7 @@ static GCallback data_from_hd_to_jukebox } if (metalist != NULL) { - GtkWidget *label1, *label2, *dialog, *button, *separator; + GtkWidget *label1, *label2, *dialog, *button, *separator, *vbox; dialog=gtk_dialog_new_with_buttons(_("Transferring files to jukebox file storage"), NULL, 0, @@ -109,20 +114,25 @@ static GCallback data_from_hd_to_jukebox "clicked", G_CALLBACK(cancel_jukebox_operation_click), NULL); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT(dialog), + G_OBJECT(dialog), 0); gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); label1 = gtk_label_new(_("Storing files in Jukebox file storage...")); label2 = gtk_label_new(""); progress_bar = gtk_progress_bar_new(); separator = gtk_hseparator_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label1, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label2, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), separator, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progress_bar, TRUE, TRUE, 0); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); +#else + vbox = GTK_DIALOG(dialog)->vbox; +#endif + gtk_box_pack_start(GTK_BOX(vbox), label1, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label2, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), separator, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), progress_bar, TRUE, TRUE, 0); gtk_widget_show_all(dialog); hd2jb_data_thread_args->dialog = dialog; @@ -311,10 +321,10 @@ static GCallback hdlist_keyevent (GtkWid gpointer data ) { if (event->type == GDK_KEY_PRESS && - (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter)) { + (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter)) { go_down(); return (gpointer) 1; - } else if (event->keyval == GDK_KP_Delete || event->keyval == GDK_Delete) { + } else if (event->keyval == GDK_KEY_KP_Delete || event->keyval == GDK_KEY_Delete) { /* Delete on something */ return (gpointer) 1; } @@ -356,7 +366,7 @@ static GCallback create_new_folder_ok_bu /* Response to the "create folder" call from the harddisk popup menu */ static GCallback jbmenu_create_folder_response(gpointer data) { - GtkWidget *label, *button; + GtkWidget *label, *button, *vbox; new_folder_dialog=gtk_dialog_new_with_buttons(_("Create a new folder"), NULL, @@ -369,7 +379,7 @@ static GCallback jbmenu_create_folder_re g_signal_connect(button, "clicked", G_CALLBACK(dispose_of_dialog_window), - GTK_OBJECT(new_folder_dialog)); + G_OBJECT(new_folder_dialog)); button = gtk_dialog_add_button(GTK_DIALOG(new_folder_dialog), GTK_STOCK_OK, @@ -380,14 +390,19 @@ static GCallback jbmenu_create_folder_re NULL); gtk_window_set_position (GTK_WINDOW(new_folder_dialog), GTK_WIN_POS_MOUSE); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(new_folder_dialog)); +#else + vbox = GTK_DIALOG(new_folder_dialog)->vbox; +#endif label = gtk_label_new(_("Choose a name for the new folder:")); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(new_folder_dialog)->vbox), label, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); new_folder_entry = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(new_folder_dialog)->vbox), new_folder_entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), new_folder_entry, TRUE, TRUE, 0); gtk_widget_show(new_folder_entry); - g_signal_connect(G_OBJECT (new_folder_dialog), + g_signal_connect(G_OBJECT(new_folder_dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), G_OBJECT (new_folder_dialog)); @@ -578,7 +593,7 @@ GtkWidget *create_data_widgets(void) popupmenu = gtk_menu_new (); popupmenu_item = gtk_menu_item_new_with_label (_("Rescan jukebox")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(hdmenu_rescan_response), NULL, @@ -586,7 +601,7 @@ GtkWidget *create_data_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Transfer selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(hdmenu_transfer_response), NULL, @@ -594,7 +609,7 @@ GtkWidget *create_data_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Delete selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(hdmenu_delete_response), NULL, @@ -606,7 +621,7 @@ GtkWidget *create_data_widgets(void) popupmenu = gtk_menu_new (); popupmenu_item = gtk_menu_item_new_with_label (_("Rescan contents")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_rescan_response), NULL, @@ -614,7 +629,7 @@ GtkWidget *create_data_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Create folder")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_create_folder_response), NULL, @@ -622,7 +637,7 @@ GtkWidget *create_data_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Transfer selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_transfer_response), NULL, @@ -630,7 +645,7 @@ GtkWidget *create_data_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Delete selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_delete_response), NULL, @@ -654,7 +669,7 @@ GtkWidget *create_data_widgets(void) set_popup_history(combo); gtk_box_pack_start(GTK_BOX(left_vbox), combo, FALSE, FALSE, 0); // signal "changed" on the combo directly will not work - g_signal_connect_object(GTK_OBJECT(gtk_bin_get_child(GTK_BIN(combo))), + g_signal_connect_object(G_OBJECT(gtk_bin_get_child(GTK_BIN(combo))), "activate", G_CALLBACK(chdir_edit), NULL, @@ -668,9 +683,14 @@ GtkWidget *create_data_widgets(void) jblistview = create_listview(data_widgets.jbliststore); data_widgets.jblistview = jblistview; hdlistselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(hdlistview)); - gtk_tree_selection_set_mode(hdlistselection, GTK_SELECTION_EXTENDED); jblistselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(jblistview)); +#if GTK_CHECK_VERSION(3,0,0) + gtk_tree_selection_set_mode(hdlistselection, GTK_SELECTION_MULTIPLE); + gtk_tree_selection_set_mode(jblistselection, GTK_SELECTION_MULTIPLE); +#else + gtk_tree_selection_set_mode(hdlistselection, GTK_SELECTION_EXTENDED); gtk_tree_selection_set_mode(jblistselection, GTK_SELECTION_EXTENDED); +#endif /* Connect signal handlers */ g_signal_connect_object((gpointer) hdlistview, "button_press_event", @@ -719,7 +739,7 @@ GtkWidget *create_data_widgets(void) arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE); gtk_container_add(GTK_CONTAINER(button), arrow); gtk_widget_show(arrow); - g_signal_connect_object(GTK_OBJECT(button), + g_signal_connect_object(G_OBJECT(button), "clicked", G_CALLBACK(data_from_hd_to_jukebox), NULL, @@ -730,7 +750,7 @@ GtkWidget *create_data_widgets(void) arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE); gtk_container_add(GTK_CONTAINER(button), arrow); gtk_widget_show(arrow); - g_signal_connect_object(GTK_OBJECT(button), + g_signal_connect_object(G_OBJECT(button), "clicked", G_CALLBACK(data_from_jukebox_to_hd), NULL, @@ -762,13 +782,13 @@ GtkWidget *create_data_widgets(void) jbentry = gtk_entry_new(); data_widgets.jbentry = jbentry; gtk_box_pack_start(GTK_BOX(right_vbox), jbentry, FALSE, FALSE, 0); - gtk_entry_set_text (GTK_ENTRY(jbentry), "\\"); - gtk_widget_show (jbentry); + gtk_entry_set_text(GTK_ENTRY(jbentry), "\\"); + gtk_widget_show(jbentry); /* Then the rest of the stuff... */ gtk_box_pack_start(GTK_BOX(right_vbox), scrolled_window, TRUE, TRUE, 0); - gtk_paned_pack2 (GTK_PANED(panel), right_vbox, TRUE, TRUE); - gtk_widget_show (right_vbox); - gtk_paned_set_position (GTK_PANED(panel), 320); + gtk_paned_pack2(GTK_PANED(panel), right_vbox, TRUE, TRUE); + gtk_widget_show(right_vbox); + gtk_paned_set_position(GTK_PANED(panel), 320); /* Show the entire data file panel */ gtk_widget_show(panel); return panel; --- gnomad2.orig/src/editmeta.c +++ gnomad2/src/editmeta.c @@ -1,6 +1,6 @@ /* editmeta.c Edit metadata for an mp3- or similar file - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -306,15 +306,14 @@ static gboolean all_strings_same(GList * return TRUE; } -static void add_to_dialog(GtkWidget *dialog, GtkWidget *thing) +static void add_to_dialog_vbox(GtkWidget *vbox, GtkWidget *thing) { - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), thing, TRUE, - TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), thing, TRUE, TRUE, 0); } /* Editing the metadata... */ static void edit_dialog_create(void) { - GtkWidget *hbox, *label, *dialog, *tempwid, *entry; + GtkWidget *hbox, *vbox, *label, *dialog, *tempwid, *entry; if (target == JB_LIST) { dialog = gtk_dialog_new_with_buttons(_("Edit jukebox file metadata"), @@ -333,6 +332,12 @@ static void edit_dialog_create(void) G_CALLBACK (edit_ok_click), NULL); edit_dialog = dialog; +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); +#else + vbox = GTK_DIALOG(dialog)->vbox; +#endif + /* Add the metadata edit field for the dialog box */ hbox = gtk_hbox_new (FALSE, 0); label = gtk_label_new(_("Artist:")); @@ -347,14 +352,14 @@ static void edit_dialog_create(void) g_free(artist); } artist = (gchar*) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &artist); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); - add_to_dialog(dialog , hbox); - gtk_widget_show (hbox); + add_to_dialog_vbox(vbox, hbox); + gtk_widget_show(hbox); /* We may want to edit the title only if one file is selected... */ if (g_list_length(metalist) == 1) { @@ -369,13 +374,13 @@ static void edit_dialog_create(void) gtk_entry_set_text(GTK_ENTRY(entry), title); g_free(title); title = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &title); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); } @@ -392,13 +397,13 @@ static void edit_dialog_create(void) g_free(album); } album = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &album); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new (FALSE, 0); @@ -414,14 +419,14 @@ static void edit_dialog_create(void) g_free(year); } year = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &year); /* Alignment widget for left alignments */ gtk_widget_show(entry); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new (FALSE, 0); @@ -437,13 +442,13 @@ static void edit_dialog_create(void) g_free(genre); } genre = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &genre); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); /* If there was only one file selected we may edit the play length */ @@ -461,13 +466,13 @@ static void edit_dialog_create(void) g_free(length); } length = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &length); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); } @@ -484,13 +489,13 @@ static void edit_dialog_create(void) gtk_entry_set_text(GTK_ENTRY(entry), trackno); g_free(trackno); trackno = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &trackno); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); } @@ -507,13 +512,13 @@ static void edit_dialog_create(void) gtk_entry_set_text(GTK_ENTRY(entry), origfname); g_free(origfname); origfname = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &origfname); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); } @@ -530,13 +535,13 @@ static void edit_dialog_create(void) gtk_entry_set_text(GTK_ENTRY(entry), folder); g_free(folder); folder = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry)); - g_signal_connect(GTK_OBJECT(entry), + g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(entry_edit_callback), (gpointer) &folder); gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, TRUE, 0); gtk_widget_show(entry); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); } @@ -552,7 +557,7 @@ static void edit_dialog_create(void) } g_free(protect); gtk_widget_show(checkbox); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); } @@ -567,7 +572,7 @@ static void edit_dialog_create(void) label = gtk_label_new(tmpcodec); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); g_free(tmpcodec); } @@ -582,7 +587,7 @@ static void edit_dialog_create(void) label = gtk_label_new(tmpfilesize); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); g_free(tmpfilesize); } @@ -601,7 +606,7 @@ static void edit_dialog_create(void) gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show (label); - add_to_dialog(dialog , hbox); + add_to_dialog_vbox(vbox , hbox); gtk_widget_show (hbox); g_free(tmpid); } @@ -610,9 +615,9 @@ static void edit_dialog_create(void) label = gtk_label_new(""); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); edit_dialog_msglabel = label; - add_to_dialog(dialog, label); + add_to_dialog_vbox(vbox, label); gtk_widget_show (label); - + gtk_widget_show (dialog); /* grab focus */ gtk_grab_add (dialog); --- gnomad2.orig/src/filesystem.c +++ gnomad2/src/filesystem.c @@ -1,6 +1,6 @@ /* filesystem.c Interface to the posix (well...) file system - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -690,6 +690,7 @@ void fill_in_dir(listtype_t listtype, gc dirfill_thread_arg_t *dirfill_thread_args; GtkWidget *label1; GtkWidget *dialog, *scanlabel, *metadata_progress_bar, *separator; + GtkWidget *vbox; dirfill_thread_args = (dirfill_thread_arg_t *) g_malloc(sizeof(dirfill_thread_arg_t)); @@ -700,13 +701,20 @@ void fill_in_dir(listtype_t listtype, gc GTK_BUTTONS_CLOSE, (listtype == HDDATA_LIST) ? _("Getting file metadata") : _("Getting track metadata")); gtk_window_set_title (GTK_WINDOW(dialog), (listtype == HDDATA_LIST) ? _("Getting file metadata") : _("Getting track metadata")); - gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->vbox), 5); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(dialog)); +#else + vbox = GTK_DIALOG(dialog)->vbox; +#endif + gtk_box_set_spacing(GTK_BOX(vbox), 5); +#if !GTK_CHECK_VERSION(3,0,0) gtk_box_set_homogeneous(GTK_BOX(GTK_DIALOG(dialog)->action_area), TRUE); - g_signal_connect_swapped(GTK_OBJECT(dialog), +#endif + g_signal_connect_swapped(G_OBJECT(dialog), "delete_event", G_CALLBACK(swapped_cancel_fillin_callback), (gpointer) dirfill_thread_args); - g_signal_connect_swapped(GTK_OBJECT(dialog), + g_signal_connect_swapped(G_OBJECT(dialog), "response", G_CALLBACK(swapped_cancel_fillin_callback), (gpointer) dirfill_thread_args); @@ -714,11 +722,11 @@ void fill_in_dir(listtype_t listtype, gc scanlabel = gtk_label_new(""); metadata_progress_bar = gtk_progress_bar_new(); separator = gtk_hseparator_new (); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label1, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), scanlabel, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), separator, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), metadata_progress_bar, TRUE, TRUE, 0); - gtk_progress_bar_update(GTK_PROGRESS_BAR(metadata_progress_bar), (gfloat) 0); + gtk_box_pack_start(GTK_BOX(vbox), label1, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), scanlabel, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), separator, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), metadata_progress_bar, TRUE, TRUE, 0); + gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(metadata_progress_bar), (gfloat) 0); gtk_widget_show_all(dialog); dirfill_thread_args->dialog = dialog; --- gnomad2.orig/src/gnomad2.c +++ gnomad2/src/gnomad2.c @@ -1,7 +1,7 @@ /* gnomad2.c Main loop and GTK+ GUI setup file and callback functions - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -103,6 +103,7 @@ static void create_select_jukebox_dialog GtkWidget *select_jukebox_dialog; GtkWidget *jukebox_menu; GtkWidget *content_area; + GtkWidget *vbox; select_jukebox_dialog = gtk_message_dialog_new(GTK_WINDOW(main_window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, @@ -114,8 +115,14 @@ static void create_select_jukebox_dialog jukebox_menu = create_jukebox_menu(jukeboxes); gtk_window_set_position (GTK_WINDOW(select_jukebox_dialog), GTK_WIN_POS_MOUSE); - gtk_box_set_spacing (GTK_BOX(GTK_DIALOG(select_jukebox_dialog)->vbox), 5); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(select_jukebox_dialog)); +#else + vbox = GTK_DIALOG(select_jukebox_dialog)->vbox; +#endif + + gtk_box_set_spacing(GTK_BOX(vbox), 5); label = gtk_label_new(_("Select jukebox to operate:")); #if GTK_CHECK_VERSION(2,14,0) @@ -125,10 +132,10 @@ static void create_select_jukebox_dialog gtk_container_add(GTK_CONTAINER(content_area), jukebox_menu); gtk_widget_show(jukebox_menu); #else - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(select_jukebox_dialog)->vbox), + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(select_jukebox_dialog)->vbox), + gtk_box_pack_start(GTK_BOX(vbox), jukebox_menu, TRUE, TRUE, 0); gtk_widget_show(jukebox_menu); #endif @@ -192,7 +199,11 @@ static void about_box(gpointer data) GtkWidget *about; about = gtk_about_dialog_new(); +#if GTK_CHECK_VERSION(3,0,0) + gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(about), PACKAGE); +#else gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), PACKAGE); +#endif gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(about), VERSION); gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(about), copystring); gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(about), aboutstring); @@ -213,7 +224,7 @@ static void about_box(gpointer data) void scan_jukebox(gpointer data) { - GtkWidget *label, *dialog; + GtkWidget *label, *dialog, *vbox; static scan_thread_arg_t scan_thread_args; if (!jukebox_selected()) { @@ -227,25 +238,32 @@ void scan_jukebox(gpointer data) jukebox_locked = TRUE; cancel_jukebox_operation = FALSE; - dialog = gtk_message_dialog_new (GTK_WINDOW(main_window), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_INFO, - GTK_BUTTONS_CLOSE, - _("Scanning jukebox library")); - gtk_window_set_title (GTK_WINDOW (dialog), _("Retrieving metadata from jukebox")); - g_signal_connect_object(GTK_OBJECT(dialog), + dialog = gtk_message_dialog_new(GTK_WINDOW(main_window), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_INFO, + GTK_BUTTONS_CLOSE, + _("Scanning jukebox library")); + gtk_window_set_title(GTK_WINDOW (dialog), _("Retrieving metadata from jukebox")); + g_signal_connect_object(G_OBJECT(dialog), "delete_event", G_CALLBACK(cancel_jukebox_operation_click), NULL, 0); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "response", G_CALLBACK(cancel_jukebox_operation_click), NULL, 0); + +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(dialog)); +#else + vbox = GTK_DIALOG(dialog)->vbox; +#endif + /* A blank label for progress messages */ label = gtk_label_new(""); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show_all(dialog); /* A bunch of arguments needed by the scanning thread */ @@ -264,6 +282,7 @@ static void set_jukeboxowner_dialog(gpoi gchar *ownerstring; GtkWidget *jukeboxowner_dialog; GtkWidget *jukeboxowner_entry; + GtkWidget *vbox; gint i; gchar *owner; @@ -276,17 +295,22 @@ static void set_jukeboxowner_dialog(gpoi GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, _("Set owner string")); - gtk_box_set_spacing (GTK_BOX(GTK_DIALOG(jukeboxowner_dialog)->vbox), 5); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(jukeboxowner_dialog)); +#else + vbox = GTK_DIALOG(jukeboxowner_dialog)->vbox; +#endif + gtk_box_set_spacing (GTK_BOX(vbox), 5); label = gtk_label_new(_("Edit the owner of this jukebox:")); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(jukeboxowner_dialog)->vbox), + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); jukeboxowner_entry = gtk_entry_new(); ownerstring = jukebox_get_ownerstring(); if (ownerstring != NULL) gtk_entry_set_text(GTK_ENTRY(jukeboxowner_entry), ownerstring); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(jukeboxowner_dialog)->vbox), jukeboxowner_entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), jukeboxowner_entry, TRUE, TRUE, 0); gtk_widget_show(jukeboxowner_entry); gtk_widget_show_all(jukeboxowner_dialog); i = gtk_dialog_run(GTK_DIALOG(jukeboxowner_dialog)); @@ -443,9 +467,13 @@ int main(int argc, gtk_window_set_default_icon(icon_pixbuf); } gtk_window_set_wmclass(GTK_WINDOW(main_window), PACKAGE, "main"); +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_size_request(GTK_WIDGET(main_window), 640, 480); +#else gtk_widget_set_usize(GTK_WIDGET(main_window), 640, 480); +#endif - g_signal_connect(GTK_OBJECT(main_window), + g_signal_connect(G_OBJECT(main_window), "delete_event", G_CALLBACK(delete), NULL); @@ -475,8 +503,8 @@ int main(int argc, menu_item = gtk_menu_item_new_with_label(_("Quit")); gtk_menu_shell_append (GTK_MENU_SHELL(menu), menu_item); gtk_widget_add_accelerator (menu_item, "activate", accel_group, - GDK_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); - g_signal_connect(GTK_OBJECT(menu_item), + GDK_KEY_q, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(delete), NULL); @@ -537,15 +565,15 @@ int main(int argc, menu_item = gtk_menu_item_new_with_label (_("Rescan contents")); gtk_menu_shell_append (GTK_MENU_SHELL(menu), menu_item); gtk_widget_add_accelerator (menu_item, "activate", accel_group, - GDK_r, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); - g_signal_connect(GTK_OBJECT (menu_item), + GDK_KEY_r, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + g_signal_connect(G_OBJECT (menu_item), "activate", G_CALLBACK(scan_jukebox), NULL); gtk_widget_show(menu_item); menu_item = gtk_menu_item_new_with_label(_("Set owner string")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); - g_signal_connect(GTK_OBJECT (menu_item), + g_signal_connect(G_OBJECT (menu_item), "activate", G_CALLBACK(set_jukeboxowner_dialog), NULL); @@ -553,8 +581,8 @@ int main(int argc, menu_item = gtk_menu_item_new_with_label (_("Jukebox information")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); gtk_widget_add_accelerator (menu_item, "activate", accel_group, - GDK_i, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); - g_signal_connect(GTK_OBJECT(menu_item), + GDK_KEY_i, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(information_dialog), NULL); @@ -567,7 +595,7 @@ int main(int argc, menu = gtk_menu_new(); // Shall not be shown! menu_item = gtk_menu_item_new_with_label (_("About")); gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item); - g_signal_connect(GTK_OBJECT (menu_item), + g_signal_connect(G_OBJECT (menu_item), "activate", G_CALLBACK(about_box), NULL); --- gnomad2.orig/src/jukebox.c +++ gnomad2/src/jukebox.c @@ -2,7 +2,7 @@ * \file jukebox.c * Functions related to the communication with jukebox hardware * using the libnjb library. - * Copyright (C) 2001-2011 Linus Walleij + * Copyright (C) 2001-2012 Linus Walleij * * This file is part of the GNOMAD package. * @@ -397,15 +397,15 @@ static guint jukebox_get_battery_level(v } } -static void add_to_dialog(GtkWidget *dialog, GtkWidget *thing) +static void add_to_dialog_vbox(GtkWidget *vbox, GtkWidget *thing) { - gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), thing, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), thing, TRUE, TRUE, 0); } /* This creates a device information dialog and returns it. */ GtkWidget *jukebox_get_deviceinfo_dialog(void) { - GtkWidget *label, *dialog, *hbox; + GtkWidget *label, *dialog, *hbox, *vbox; gchar tmp[50]; guint64 total, free, used; guint32 songs, playlists, datafiles; @@ -427,22 +427,29 @@ GtkWidget *jukebox_get_deviceinfo_dialog // Make sure our information is up-to-date refresh_id(); - dialog = gtk_message_dialog_new (GTK_WINDOW(main_window), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_INFO, - GTK_BUTTONS_CLOSE, - _("Jukebox information")); + dialog = gtk_message_dialog_new(GTK_WINDOW(main_window), + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_INFO, + GTK_BUTTONS_CLOSE, + _("Jukebox information")); // dialog = gtk_dialog_new(); - gtk_window_set_title (GTK_WINDOW (dialog), (_("Jukebox information"))); - gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 5); - gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), TRUE); - gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); - g_signal_connect_object(GTK_OBJECT(dialog), + gtk_window_set_title(GTK_WINDOW (dialog), (_("Jukebox information"))); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_message_dialog_get_message_area(GTK_MESSAGE_DIALOG(dialog)); +#else + vbox = GTK_DIALOG(dialog)->vbox; +#endif + gtk_box_set_spacing(GTK_BOX(vbox), 5); +#if !GTK_CHECK_VERSION(3,0,0) + gtk_box_set_homogeneous(GTK_BOX(GTK_DIALOG(dialog)->action_area), TRUE); +#endif + gtk_window_set_position(GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); + g_signal_connect_object(G_OBJECT(dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), NULL, 0); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), NULL, @@ -455,7 +462,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(jukebox_get_idstring()); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -466,7 +473,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(jukebox_get_firmware()); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); if (!use_mtp && (pdedevice->device_type != NJB_DEVICE_NJB1)) { @@ -478,7 +485,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(jukebox_get_hardware()); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); } @@ -490,7 +497,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(jukebox_get_prodname()); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -501,7 +508,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new((jukebox_get_power()) ? _("Yes") : _("No")); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -512,7 +519,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new((jukebox_get_charging()) ? _("Yes") : _("No")); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); // The pdedevice struct will not be dereferenced unless @@ -527,7 +534,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(tmp); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); } @@ -540,7 +547,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(tmp); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -551,7 +558,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(jukebox_get_time()); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); jukebox_getusage(&total, &free, &used, &songs, &playlists, &datafiles); @@ -566,7 +573,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(tmp); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -579,7 +586,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(tmp); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -592,7 +599,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(tmp); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -604,7 +611,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(tmp); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -616,7 +623,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(tmp); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); hbox = gtk_hbox_new(FALSE, 0); @@ -628,7 +635,7 @@ GtkWidget *jukebox_get_deviceinfo_dialog label = gtk_label_new(tmp); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); - add_to_dialog(dialog, hbox); + add_to_dialog_vbox(vbox, hbox); gtk_widget_show (hbox); return dialog; } @@ -1460,7 +1467,7 @@ static gboolean draw_progress(gpointer p if (args != NULL) { if (args->progress != NULL) { - gtk_progress_bar_update(GTK_PROGRESS_BAR(args->progress), args->fraction); + gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(args->progress), args->fraction); } g_free(args); } --- gnomad2.orig/src/player.c +++ gnomad2/src/player.c @@ -84,15 +84,23 @@ static GtkWidget *create_patch_menu(guin guint mr_effect = (guint) effect; // Create a combo box +#if GTK_CHECK_VERSION(3,0,0) + combo_box = gtk_combo_box_text_new(); +#else combo_box = gtk_combo_box_new_text(); +#endif // Then use gtk_combo_box_get_active() for numbering // Add rows to the combo box while (tmplist) { +#if GTK_CHECK_VERSION(3,0,0) + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), tmplist->data); +#else gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), tmplist->data); +#endif tmplist = tmplist->next; } gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box), default_patch); - g_signal_connect(GTK_OBJECT(combo_box), + g_signal_connect(G_OBJECT(combo_box), "changed", G_CALLBACK(callback_function), GUINT_TO_POINTER(mr_effect)); @@ -135,8 +143,11 @@ static void adjust_scalevalue (GtkAdjust gpointer data) { eax_adjust_props_t *adjprops = (eax_adjust_props_t *) data; - // gint16 scalevalue = adjprops->max+1 - ((gint16) adj->value); +#if GTK_CHECK_VERSION(3,0,0) + gint16 scalevalue = (gint16) gtk_adjustment_get_value(adj); +#else gint16 scalevalue = (gint16) adj->value; +#endif if (playing) { //g_print("Setting scalevalue for effect %04X to %d\n", @@ -159,7 +170,7 @@ static GtkWidget *create_adjustment_cont gint16 max, gint16 current) { - GtkObject *adjustment; + GtkWidgetClass *adjustment; GtkWidget *vscale; eax_adjust_props_t *adjprops; @@ -180,19 +191,25 @@ static GtkWidget *create_adjustment_cont (gfloat) max+1, 1.0, 1.0, 1.0); - vscale = gtk_vscale_new (GTK_ADJUSTMENT (adjustment)); - g_signal_connect_data(GTK_OBJECT(adjustment), + vscale = gtk_vscale_new(GTK_ADJUSTMENT(adjustment)); + g_signal_connect_data(G_OBJECT(adjustment), "value_changed", G_CALLBACK(adjust_scalevalue), adjprops, close_scalevalue, 0); - gtk_widget_set_usize (GTK_WIDGET (vscale), 20, 120); - gtk_range_set_update_policy (GTK_RANGE (vscale), - GTK_UPDATE_CONTINUOUS); - gtk_range_set_inverted (GTK_RANGE(vscale), TRUE); - gtk_scale_set_draw_value (GTK_SCALE(vscale), TRUE); - gtk_scale_set_digits (GTK_SCALE(vscale), 0); +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_size_request(GTK_WIDGET(vscale), 20, 120); +#else + gtk_widget_set_usize(GTK_WIDGET(vscale), 20, 120); +#endif +#if !GTK_CHECK_VERSION(3,0,0) + gtk_range_set_update_policy(GTK_RANGE(vscale), + GTK_UPDATE_CONTINUOUS); +#endif + gtk_range_set_inverted(GTK_RANGE(vscale), TRUE); + gtk_scale_set_draw_value(GTK_SCALE(vscale), TRUE); + gtk_scale_set_digits(GTK_SCALE(vscale), 0); return vscale; } @@ -272,7 +289,7 @@ static GtkWidget *get_eax_controls(void) if (eax->current_value != 0x00) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), TRUE); } - g_signal_connect(GTK_OBJECT(checkbox), + g_signal_connect(G_OBJECT(checkbox), "toggled", G_CALLBACK(toggle_onoff), GUINT_TO_POINTER(effect)); @@ -334,7 +351,11 @@ static void adjust_position (GtkAdjustme { // eax_adjust_props_t *adjprops = (eax_adjust_props_t *) data; // gint16 scalevalue = adjprops->max+1 - ((gint16) adj->value); +#if GTK_CHECK_VERSION(3,0,0) + gint16 pos = (gint16) gtk_adjustment_get_value(adj); +#else gint16 pos = (gint16) adj->value; +#endif // Calculate the byte position offset guint delta = 0; guint skipto = 0; @@ -374,7 +395,7 @@ void create_player_window(GList *metalis static play_thread_arg_t play_thread_args; GtkWidget *label1, *label2, *label3, *dialog, *button, *separator; GtkWidget *hscale, *eax_controls; - GtkWidget *hbox, *hbox2, *vbox; + GtkWidget *hbox, *hbox2, *vbox, *dvbox; GtkAdjustment *adj; // Playback on MTP devices not supported. (Yet.) @@ -384,10 +405,17 @@ void create_player_window(GList *metalis } play_thread_args.metalist = metalist; dialog = gtk_dialog_new(); - gtk_window_set_title(GTK_WINDOW (dialog), (_("Playing tracks on the jukebox"))); - gtk_box_set_spacing(GTK_BOX (GTK_DIALOG (dialog)->vbox), 5); - gtk_box_set_homogeneous(GTK_BOX (GTK_DIALOG (dialog)->action_area), TRUE); - gtk_window_set_position(GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); +#if GTK_CHECK_VERSION(3,0,0) + dvbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); +#else + dvbox = GTK_DIALOG(dialog)->vbox; +#endif + gtk_window_set_title(GTK_WINDOW(dialog), (_("Playing tracks on the jukebox"))); + gtk_box_set_spacing(GTK_BOX(dvbox), 5); +#if !GTK_CHECK_VERSION(3,0,0) + gtk_box_set_homogeneous(GTK_BOX(GTK_DIALOG(dialog)->action_area), TRUE); +#endif + gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); label1 = gtk_label_new(_("Playing:")); label2 = gtk_label_new(""); @@ -399,15 +427,21 @@ void create_player_window(GList *metalis hscale = gtk_hscale_new(adj); // To make it possible to skip into the song // gtk_widget_set_sensitive(hscale, FALSE); - g_signal_connect_data(GTK_OBJECT(adj), + g_signal_connect_data(G_OBJECT(adj), "value_changed", G_CALLBACK(adjust_position), NULL, // data NULL, // destructor 0); +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_size_request(GTK_WIDGET(hscale), 200, 30); +#else gtk_widget_set_usize (GTK_WIDGET (hscale), 200, 30); - gtk_range_set_update_policy (GTK_RANGE (hscale), - GTK_UPDATE_CONTINUOUS); +#endif +#if !GTK_CHECK_VERSION(3,0,0) + gtk_range_set_update_policy(GTK_RANGE (hscale), + GTK_UPDATE_CONTINUOUS); +#endif gtk_scale_set_digits (GTK_SCALE(hscale), 1); gtk_scale_set_value_pos (GTK_SCALE(hscale), GTK_POS_TOP); gtk_scale_set_draw_value (GTK_SCALE(hscale), FALSE); @@ -416,20 +450,22 @@ void create_player_window(GList *metalis #if GTK_CHECK_VERSION(2,18,0) gtk_widget_set_can_default(button, TRUE); #endif +#if !GTK_CHECK_VERSION(3,0,0) gtk_box_pack_start(GTK_BOX (GTK_DIALOG (dialog)->action_area), button, FALSE, FALSE, 0); - g_signal_connect_object(GTK_OBJECT(button), +#endif + g_signal_connect_object(G_OBJECT(button), "clicked", G_CALLBACK(stop_playing), NULL, 0); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "delete_event", G_CALLBACK(stop_playing), - NULL, // GTK_OBJECT(dialog) ??? + NULL, // G_OBJECT(dialog) ??? 0); hbox = gtk_hbox_new(FALSE, 5); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), hbox, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(dvbox), hbox, TRUE, TRUE, 0); vbox = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0); separator = gtk_hseparator_new (); @@ -441,7 +477,7 @@ void create_player_window(GList *metalis hbox2 = gtk_hbox_new(FALSE, 0); button = gtk_button_new_from_stock(GTK_STOCK_MEDIA_PREVIOUS); - g_signal_connect_object(GTK_OBJECT(button), + g_signal_connect_object(G_OBJECT(button), "clicked", G_CALLBACK(prevbutton_click), NULL, @@ -453,7 +489,7 @@ void create_player_window(GList *metalis label3 = gtk_label_new("00:00:00"); gtk_box_pack_start(GTK_BOX(hbox2), label3, TRUE, TRUE, 0); button = gtk_button_new_from_stock(GTK_STOCK_MEDIA_NEXT); - g_signal_connect_object(GTK_OBJECT(button), + g_signal_connect_object(G_OBJECT(button), "clicked", G_CALLBACK(nextbutton_click), NULL, --- gnomad2.orig/src/playlists.c +++ gnomad2/src/playlists.c @@ -1,6 +1,6 @@ /* playlists.c Playlist GUI and call handling - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -155,9 +155,9 @@ static GCallback create_new_playlist_ok_ /* Response to the New playlist popup menu function */ static GCallback playlist_new_response(gpointer data) { - GtkWidget *label, *button; + GtkWidget *label, *button, *vbox; - new_pl_dialog=gtk_dialog_new_with_buttons(_("Create a new playlist"), + new_pl_dialog = gtk_dialog_new_with_buttons(_("Create a new playlist"), NULL, 0, NULL); @@ -168,7 +168,7 @@ static GCallback playlist_new_response(g g_signal_connect(button, "clicked", G_CALLBACK(dispose_of_dialog_window), - GTK_OBJECT(new_pl_dialog)); + G_OBJECT(new_pl_dialog)); button = gtk_dialog_add_button(GTK_DIALOG(new_pl_dialog), GTK_STOCK_OK, @@ -179,12 +179,17 @@ static GCallback playlist_new_response(g NULL); gtk_window_set_position (GTK_WINDOW(new_pl_dialog), GTK_WIN_POS_MOUSE); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(new_pl_dialog)); +#else + vbox = GTK_DIALOG(new_pl_dialog)->vbox; +#endif label = gtk_label_new(_("Choose a name for the new playlist:")); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(new_pl_dialog)->vbox), label, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); new_pl_entry = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(new_pl_dialog)->vbox), new_pl_entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), new_pl_entry, TRUE, TRUE, 0); gtk_widget_show(new_pl_entry); g_signal_connect(G_OBJECT (new_pl_dialog), @@ -235,10 +240,10 @@ static GCallback edit_playlist_ok_button /* Response to the Edit playlist popup menu function */ static GCallback playlist_edit_response(gpointer data) { - GtkWidget *label, *button; + GtkWidget *label, *button, *vbox; gchar *text; - edit_pl_dialog=gtk_dialog_new_with_buttons(_("Edit playlist"), + edit_pl_dialog = gtk_dialog_new_with_buttons(_("Edit playlist"), NULL, 0, NULL); @@ -249,7 +254,7 @@ static GCallback playlist_edit_response( g_signal_connect(button, "clicked", G_CALLBACK(dispose_of_dialog_window), - GTK_OBJECT(edit_pl_dialog)); + G_OBJECT(edit_pl_dialog)); button = gtk_dialog_add_button(GTK_DIALOG(edit_pl_dialog), GTK_STOCK_OK, @@ -260,8 +265,14 @@ static GCallback playlist_edit_response( NULL); gtk_window_set_position (GTK_WINDOW(edit_pl_dialog), GTK_WIN_POS_MOUSE); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(edit_pl_dialog)); +#else + vbox = GTK_DIALOG(edit_pl_dialog)->vbox; +#endif + label = gtk_label_new(_("Edit the name for this playlist:")); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(edit_pl_dialog)->vbox), label, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); edit_pl_entry = gtk_entry_new(); // Get the old name of the playlist @@ -271,12 +282,12 @@ static GCallback playlist_edit_response( text); g_free(text); } - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(edit_pl_dialog)->vbox), edit_pl_entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), edit_pl_entry, TRUE, TRUE, 0); gtk_widget_show(edit_pl_entry); - g_signal_connect_object(GTK_OBJECT (edit_pl_dialog), + g_signal_connect_object(G_OBJECT(edit_pl_dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT (edit_pl_dialog), + G_OBJECT(edit_pl_dialog), 0); gtk_widget_show_all(edit_pl_dialog); return NULL; @@ -423,8 +434,8 @@ static GCallback playlist_export_respons gchar *text; if (playlist != NULL) { - GtkWidget * button; - export_pl_dialog=gtk_dialog_new_with_buttons(_("Export playlist"), + GtkWidget * button, *vbox; + export_pl_dialog = gtk_dialog_new_with_buttons(_("Export playlist"), NULL, 0, NULL); @@ -435,7 +446,7 @@ static GCallback playlist_export_respons g_signal_connect(button, "clicked", G_CALLBACK(dispose_of_dialog_window), - GTK_OBJECT(export_pl_dialog)); + G_OBJECT(export_pl_dialog)); button = gtk_dialog_add_button(GTK_DIALOG(export_pl_dialog), GTK_STOCK_OK, @@ -446,8 +457,14 @@ static GCallback playlist_export_respons playlist); gtk_window_set_position (GTK_WINDOW(export_pl_dialog), GTK_WIN_POS_MOUSE); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(export_pl_dialog)); +#else + vbox = GTK_DIALOG(export_pl_dialog)->vbox; +#endif + label = gtk_label_new(_("Export playlist to this file:")); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(export_pl_dialog)->vbox), label, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); export_pl_entry = gtk_entry_new(); // Get the old name of the playlist @@ -461,49 +478,49 @@ static GCallback playlist_export_respons gtk_entry_set_text(GTK_ENTRY(export_pl_entry), _("Unnamed playlist.txt")); } - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(export_pl_dialog)->vbox), export_pl_entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), export_pl_entry, TRUE, TRUE, 0); gtk_widget_show(export_pl_entry); label = gtk_label_new(_("Format the playlist according to this string:")); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(export_pl_dialog)->vbox), label, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); export_pl_format_entry = gtk_entry_new(); text = get_prefs_filenameformat(); gtk_entry_set_text(GTK_ENTRY(export_pl_format_entry), text); g_free(text); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(export_pl_dialog)->vbox), export_pl_format_entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), export_pl_format_entry, TRUE, TRUE, 0); gtk_widget_show(export_pl_format_entry); /* Don't translate the magic %-things! */ label = gtk_label_new(_("%a = Artist, %t = Title, %b = Album, %g = Genre, %n = Track number, %y = Year")); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(export_pl_dialog)->vbox), label, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); m3ulist = gtk_check_button_new_with_label(_("Create an M3U playlist (assuming the format filter sets " \ "the correct filenames)")); - g_signal_connect_object(GTK_OBJECT(m3ulist), + g_signal_connect_object(G_OBJECT(m3ulist), "toggled", G_CALLBACK(toggle_m3ulist), NULL, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(export_pl_dialog)->vbox), m3ulist, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), m3ulist, TRUE, TRUE, 0); gtk_widget_show(m3ulist); plslist = gtk_check_button_new_with_label(_("Create an PLS playlist (assuming the format filter sets " \ "the correct filenames)")); - g_signal_connect_object(GTK_OBJECT(plslist), + g_signal_connect_object(G_OBJECT(plslist), "toggled", G_CALLBACK(toggle_plslist), NULL, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(export_pl_dialog)->vbox), plslist, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), plslist, TRUE, TRUE, 0); gtk_widget_show(plslist); - g_signal_connect_object(GTK_OBJECT (export_pl_dialog), + g_signal_connect_object(G_OBJECT(export_pl_dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT (export_pl_dialog), + G_OBJECT(export_pl_dialog), 0); gtk_widget_show_all(export_pl_dialog); } @@ -635,12 +652,18 @@ static GCallback toggle_and(gpointer a, { GtkToggleButton *tbutton = GTK_TOGGLE_BUTTON(a); guint next = GPOINTER_TO_UINT(b)+1; + GtkWidget *vbox; /* Force the toggle button to active and grey it out */ gtk_toggle_button_set_active(tbutton, TRUE); gtk_widget_set_sensitive(GTK_WIDGET(tbutton), FALSE); /* If this was not previously selected, it's time to create a new one */ - add_pl_selection(GTK_BOX(GTK_DIALOG(select_playlist_dialog)->vbox), next); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(select_playlist_dialog)); +#else + vbox = GTK_DIALOG(select_playlist_dialog)->vbox; +#endif + add_pl_selection(GTK_BOX(vbox), next); return NULL; } @@ -660,7 +683,7 @@ static void add_pl_selection(GtkBox *box gtk_widget_show(option_menu); /* and .. */ and = gtk_check_button_new_with_label(_("and")); - g_signal_connect(GTK_OBJECT(and), + g_signal_connect(G_OBJECT(and), "clicked", G_CALLBACK(toggle_and), GUINT_TO_POINTER(number)); @@ -672,7 +695,7 @@ static void add_pl_selection(GtkBox *box static void playlist_selection_dialog(gchar *title, gchar *prompt, GCallback ok_signal) { - GtkWidget *label, *button; + GtkWidget *label, *button, *vbox; /* Make sure this is cleared */ if (selected_target_playlists != NULL) { @@ -690,7 +713,7 @@ static void playlist_selection_dialog(gc g_signal_connect(button, "clicked", G_CALLBACK(dispose_of_dialog_window), - GTK_OBJECT(select_playlist_dialog)); + G_OBJECT(select_playlist_dialog)); button = gtk_dialog_add_button(GTK_DIALOG(select_playlist_dialog), GTK_STOCK_OK, @@ -700,17 +723,22 @@ static void playlist_selection_dialog(gc G_CALLBACK(ok_signal), NULL); gtk_window_set_position (GTK_WINDOW(select_playlist_dialog), GTK_WIN_POS_MOUSE); - g_signal_connect_object(GTK_OBJECT (select_playlist_dialog), + g_signal_connect_object(G_OBJECT (select_playlist_dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT(select_playlist_dialog), + G_OBJECT(select_playlist_dialog), 0); /* Add a label and the option menu */ label = gtk_label_new(prompt); gtk_widget_show(label); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(select_playlist_dialog)->vbox), label, TRUE, TRUE, 0); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(select_playlist_dialog)); +#else + vbox = GTK_DIALOG(select_playlist_dialog)->vbox; +#endif + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); /* Initially add one selector */ - add_pl_selection(GTK_BOX(GTK_DIALOG(select_playlist_dialog)->vbox), 0); + add_pl_selection(GTK_BOX(vbox), 0); gtk_widget_show(select_playlist_dialog); } @@ -913,7 +941,7 @@ void create_playlist_widgets(GtkWidget * blankpopupmenu = gtk_menu_new(); popupmenu_item = gtk_menu_item_new_with_label(_("New playlist")); gtk_menu_shell_append (GTK_MENU_SHELL(blankpopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT (popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(playlist_new_response), NULL, @@ -923,7 +951,7 @@ void create_playlist_widgets(GtkWidget * playlistpopupmenu = gtk_menu_new(); popupmenu_item = gtk_menu_item_new_with_label(_("New playlist")); gtk_menu_shell_append(GTK_MENU_SHELL(playlistpopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT (popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(playlist_new_response), NULL, @@ -931,7 +959,7 @@ void create_playlist_widgets(GtkWidget * gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label(_("Shuffle playlist")); gtk_menu_shell_append(GTK_MENU_SHELL(playlistpopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT (popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(playlist_shuffle_response), NULL, @@ -939,7 +967,7 @@ void create_playlist_widgets(GtkWidget * gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label(_("Play playlist")); gtk_menu_shell_append(GTK_MENU_SHELL(playlistpopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT (popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(playlist_play_response), NULL, @@ -947,7 +975,7 @@ void create_playlist_widgets(GtkWidget * gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label(_("Edit playlist")); gtk_menu_shell_append(GTK_MENU_SHELL(playlistpopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT (popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(playlist_edit_response), NULL, @@ -955,7 +983,7 @@ void create_playlist_widgets(GtkWidget * gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label(_("Export playlist")); gtk_menu_shell_append(GTK_MENU_SHELL(playlistpopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT (popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(playlist_export_response), NULL, @@ -963,7 +991,7 @@ void create_playlist_widgets(GtkWidget * gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label(_("Delete playlist")); gtk_menu_shell_append(GTK_MENU_SHELL(playlistpopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT (popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(playlist_delete_response), NULL, @@ -973,7 +1001,7 @@ void create_playlist_widgets(GtkWidget * nodepopupmenu = gtk_menu_new (); popupmenu_item = gtk_menu_item_new_with_label(_("New playlist")); gtk_menu_shell_append(GTK_MENU_SHELL(nodepopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(playlist_new_response), NULL, @@ -981,7 +1009,7 @@ void create_playlist_widgets(GtkWidget * gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label(_("Delete track from playlist")); gtk_menu_shell_append(GTK_MENU_SHELL(nodepopupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT (popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(node_delete_response), NULL, @@ -994,8 +1022,8 @@ void create_playlist_widgets(GtkWidget * /* Create a scrolled window for the playlists */ scrolled_window = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), - GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled_window), + GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); pltreeview = create_treeview(playlist_widgets.pltreestore); g_signal_connect_object((gpointer) pltreeview, --- gnomad2.orig/src/xfer.c +++ gnomad2/src/xfer.c @@ -1,6 +1,6 @@ /* xfer.c Transfer window widgets and callbacks - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -52,9 +52,9 @@ static void transfer_from_jukebox_to_hd } if (metalist != NULL) { - GtkWidget *label1, *label2, *dialog, *button, *separator; + GtkWidget *label1, *label2, *dialog, *button, *separator, *vbox; - dialog=gtk_dialog_new_with_buttons(_("Transferring tracks from jukebox library"), + dialog = gtk_dialog_new_with_buttons(_("Transferring tracks from jukebox library"), NULL, 0, NULL); @@ -65,20 +65,25 @@ static void transfer_from_jukebox_to_hd "clicked", G_CALLBACK(cancel_jukebox_operation_click), NULL); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT(dialog), + G_OBJECT(dialog), 0); gtk_window_set_position (GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); label1 = gtk_label_new(_("Retrieving tracks from Jukebox...")); label2 = gtk_label_new(""); progress_bar = gtk_progress_bar_new(); separator = gtk_hseparator_new (); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label1, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label2, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), separator, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progress_bar, TRUE, TRUE, 0); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); +#else + vbox = GTK_DIALOG(dialog)->vbox; +#endif + gtk_box_pack_start(GTK_BOX(vbox), label1, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label2, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), separator, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), progress_bar, TRUE, TRUE, 0); gtk_widget_show_all(dialog); jb2hd_thread_args->dialog = dialog; @@ -139,10 +144,10 @@ void transfer_from_hd_to_jukebox(GList * if (metalist != NULL) { hd2jb_thread_arg_t *hd2jb_thread_args; - GtkWidget *label1, *label2, *dialog, *button, *separator; + GtkWidget *label1, *label2, *dialog, *button, *separator, *vbox; hd2jb_thread_args = (hd2jb_thread_arg_t *) malloc(sizeof (hd2jb_thread_arg_t)); - dialog=gtk_dialog_new_with_buttons(_("Transferring tracks to jukebox library"), + dialog = gtk_dialog_new_with_buttons(_("Transferring tracks to jukebox library"), NULL, 0, NULL); @@ -153,10 +158,10 @@ void transfer_from_hd_to_jukebox(GList * "clicked", G_CALLBACK(cancel_jukebox_operation_click), NULL); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT(dialog), + G_OBJECT(dialog), 0); gtk_window_set_title (GTK_WINDOW (dialog), _("Transferring tracks to jukebox library")); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); @@ -164,10 +169,15 @@ void transfer_from_hd_to_jukebox(GList * label2 = gtk_label_new(""); /* FIXME: Instead add a list to the dialog so progress may be seen better */ progress_bar = gtk_progress_bar_new(); separator = gtk_hseparator_new (); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label1, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), label2, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), separator, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), progress_bar, TRUE, TRUE, 0); +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); +#else + vbox = GTK_DIALOG(dialog)->vbox; +#endif + gtk_box_pack_start(GTK_BOX(vbox), label1, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label2, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), separator, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), progress_bar, TRUE, TRUE, 0); gtk_widget_show_all(dialog); hd2jb_thread_args->dialog = dialog; @@ -331,9 +341,9 @@ static GCallback create_new_folder_ok_bu /* Response to the "new folder..." call from the harddisk popup menu */ static GCallback hdmenu_new_folder_response(gpointer data) { - GtkWidget *label, *button; + GtkWidget *label, *button, *vbox; - new_folder_dialog=gtk_dialog_new_with_buttons(_("New folder"), + new_folder_dialog = gtk_dialog_new_with_buttons(_("New folder"), NULL, 0, NULL); @@ -344,7 +354,7 @@ static GCallback hdmenu_new_folder_respo g_signal_connect(button, "clicked", G_CALLBACK(dispose_of_dialog_window), - GTK_OBJECT(new_folder_dialog)); + G_OBJECT(new_folder_dialog)); button = gtk_dialog_add_button(GTK_DIALOG(new_folder_dialog), GTK_STOCK_OK, @@ -355,12 +365,16 @@ static GCallback hdmenu_new_folder_respo NULL); gtk_window_set_position (GTK_WINDOW(new_folder_dialog), GTK_WIN_POS_MOUSE); - +#if GTK_CHECK_VERSION(3,0,0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(new_folder_dialog)); +#else + vbox = GTK_DIALOG(new_folder_dialog)->vbox; +#endif label = gtk_label_new(_("Enter a name for the folder:")); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(new_folder_dialog)->vbox), label, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); gtk_widget_show(label); new_folder_entry = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(new_folder_dialog)->vbox), new_folder_entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox), new_folder_entry, TRUE, TRUE, 0); gtk_widget_show(new_folder_entry); g_signal_connect(G_OBJECT (new_folder_dialog), @@ -426,10 +440,10 @@ static GCallback hdlist_keyevent (GtkWid gpointer data ) { if (event->type == GDK_KEY_PRESS && - (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter)) { + (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter)) { go_down(); return (gpointer) 1; - } else if (event->keyval == GDK_KP_Delete || event->keyval == GDK_Delete) { + } else if (event->keyval == GDK_KEY_KP_Delete || event->keyval == GDK_KEY_Delete) { /* Delete on something */ return (gpointer) 1; } @@ -776,7 +790,7 @@ GtkWidget *create_xfer_widgets(void) popupmenu = gtk_menu_new (); popupmenu_item = gtk_menu_item_new_with_label (_("Rescan directory metadata")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(hdmenu_rescan_response), NULL, @@ -784,7 +798,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Transfer selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(hdmenu_transfer_response), NULL, @@ -792,7 +806,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Edit selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(hdmenu_edit_response), NULL, @@ -800,7 +814,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Delete selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(hdmenu_delete_response), NULL, @@ -808,7 +822,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("New folder...")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(hdmenu_new_folder_response), NULL, @@ -820,7 +834,7 @@ GtkWidget *create_xfer_widgets(void) popupmenu = gtk_menu_new (); popupmenu_item = gtk_menu_item_new_with_label (_("Rescan jukebox contents")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_rescan_response), NULL, @@ -828,7 +842,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Transfer selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_transfer_response), NULL, @@ -836,7 +850,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Add selected to playlist")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_add_playlist_response), NULL, @@ -844,7 +858,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Play selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_play_response), NULL, @@ -852,7 +866,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Edit selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_edit_response), NULL, @@ -860,7 +874,7 @@ GtkWidget *create_xfer_widgets(void) gtk_widget_show (popupmenu_item); popupmenu_item = gtk_menu_item_new_with_label (_("Delete selected")); gtk_menu_shell_append (GTK_MENU_SHELL(popupmenu), popupmenu_item); - g_signal_connect_object(GTK_OBJECT(popupmenu_item), + g_signal_connect_object(G_OBJECT(popupmenu_item), "activate", G_CALLBACK(jbmenu_delete_response), NULL, @@ -884,7 +898,7 @@ GtkWidget *create_xfer_widgets(void) set_popup_history(combo); gtk_box_pack_start(GTK_BOX(left_vbox), combo, FALSE, FALSE, 0); // signal "changed" on the combo directly will not work - g_signal_connect_object(GTK_OBJECT(gtk_bin_get_child(GTK_BIN(combo))), + g_signal_connect_object(G_OBJECT(gtk_bin_get_child(GTK_BIN(combo))), "activate", G_CALLBACK(chdir_edit), NULL, @@ -898,9 +912,14 @@ GtkWidget *create_xfer_widgets(void) jblistview = create_listview(transfer_widgets.jbliststore); transfer_widgets.jblistview = jblistview; hdlistselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(hdlistview)); - gtk_tree_selection_set_mode(hdlistselection, GTK_SELECTION_EXTENDED); jblistselection = gtk_tree_view_get_selection(GTK_TREE_VIEW(jblistview)); +#if GTK_CHECK_VERSION(3,0,0) + gtk_tree_selection_set_mode(hdlistselection, GTK_SELECTION_MULTIPLE); + gtk_tree_selection_set_mode(jblistselection, GTK_SELECTION_MULTIPLE); +#else + gtk_tree_selection_set_mode(hdlistselection, GTK_SELECTION_EXTENDED); gtk_tree_selection_set_mode(jblistselection, GTK_SELECTION_EXTENDED); +#endif /* Connect signal handlers */ g_signal_connect_object((gpointer) hdlistview, "button_press_event", @@ -940,7 +959,7 @@ GtkWidget *create_xfer_widgets(void) gtk_box_pack_start(GTK_BOX(leftbox), left_vbox, TRUE, TRUE, 0); /* A vertical box for the transfer buttons */ - transfer_button_vbox=gtk_vbox_new(FALSE, 0); + transfer_button_vbox = gtk_vbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(transfer_button_vbox), 5); /* Add buttons to this vertical box */ @@ -948,7 +967,7 @@ GtkWidget *create_xfer_widgets(void) arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE); gtk_container_add(GTK_CONTAINER(button), arrow); gtk_widget_show(arrow); - g_signal_connect_object(GTK_OBJECT(button), + g_signal_connect_object(G_OBJECT(button), "clicked", G_CALLBACK(transfer_from_hd_dialog), NULL, @@ -959,7 +978,7 @@ GtkWidget *create_xfer_widgets(void) arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE); gtk_container_add(GTK_CONTAINER(button), arrow); gtk_widget_show(arrow); - g_signal_connect_object(GTK_OBJECT(button), + g_signal_connect_object(G_OBJECT(button), "clicked", G_CALLBACK(jbmenu_transfer_response), NULL, @@ -987,10 +1006,10 @@ GtkWidget *create_xfer_widgets(void) label = gtk_label_new(_("Jukebox library window")); gtk_box_pack_start(GTK_BOX(right_vbox), label, FALSE, FALSE, 0); - gtk_widget_show (label); + gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(right_vbox), scrolled_window, TRUE, TRUE, 0); - gtk_paned_pack2 (GTK_PANED(music_panel), right_vbox, TRUE, TRUE); - gtk_widget_show (right_vbox); + gtk_paned_pack2(GTK_PANED(music_panel), right_vbox, TRUE, TRUE); + gtk_widget_show(right_vbox); gtk_paned_set_position (GTK_PANED(music_panel), 320); /* Show the entire music panel */ gtk_widget_show(music_panel); --- gnomad2.orig/src/prefs.c +++ gnomad2/src/prefs.c @@ -1,6 +1,6 @@ /* prefs.c Graphical widgets and callbacks for the preferences frame - Copyright (C) 2001 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -12,7 +12,7 @@ any later version. You should have received a copy of the GNU General Public License along with GNOMAD; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. +Boston, MA 02111-1307, USA. */ @@ -460,9 +460,9 @@ void create_prefs_widgets(GtkWidget *box frame = gtk_frame_new(_("Filenaming")); gtk_widget_show (frame); vbox_naming = gtk_vbox_new(FALSE, 0); - use_origname = + use_origname = gtk_check_button_new_with_label(_("Use original filename if present in metadata for the track")); - g_signal_connect_object(GTK_OBJECT(use_origname), + g_signal_connect_object(G_OBJECT(use_origname), "toggled", G_CALLBACK(toggle_origname), NULL, @@ -522,7 +522,7 @@ void create_prefs_widgets(GtkWidget *box gtk_check_button_new_with_label(_("Try to extract sound file metadata from path and filename")); extended_metadata = gtk_check_button_new_with_label(_("Read extended metadata from jukebox (e.g. original filename - slow on newer devices)")); - g_signal_connect_object(GTK_OBJECT(extended_metadata), + g_signal_connect_object(G_OBJECT(extended_metadata), "toggled", G_CALLBACK(toggle_extended_metadata), NULL, --- gnomad2.orig/src/util.c +++ gnomad2/src/util.c @@ -1,6 +1,6 @@ /* util.c General utility functions, eg for string formatting - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -211,12 +211,12 @@ void create_error_dialog(gchar *errorstr GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", errorstring); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), NULL, 0); - g_signal_connect_object(GTK_OBJECT(dialog), + g_signal_connect_object(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), NULL, --- gnomad2.orig/configure.ac +++ gnomad2/configure.ac @@ -26,19 +26,35 @@ if test -d /usr/local/lib/pkgconfig ; th export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig fi +dnl This is for some reason needed by the PKG_CHECK macro. +OSFLAGS="" +AC_SUBST(OSFLAGS) + +dnl Basic deps PKG_CHECK_MODULES(GN, \ glib-2.0 \ gthread-2.0 \ - libnjb >= 2.2.4 \ - gtk+-2.0 >= 2.6.0 \ + libnjb >= 2.2.4 ) -GTK_VER=`$PKG_CONFIG --modversion gtk+-2.0` LIBNJB_VER=`$PKG_CONFIG --modversion libnjb` -dnl This is for some reason needed by the PKG_CHECK macro. -OSFLAGS="" -AC_SUBST(OSFLAGS) +dnl ------------------------------------------------------------------------- +dnl check for GTK+ 3.0, if that fails, check for GTK+ 2.x +dnl -------------------------------------------------------------------------- + +PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.2.0, found_gtk3_pkg=yes, found_gtk3_pkg=no) +if test x"$found_gtk3_pkg" = "xno" ; then + PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6.0, found_gtk2_pkg=yes, found_gtk2_pkg=no) + if test x"$found_gtk2_pkg" = "xno" ; then + AC_MSG_ERROR([*** Not even GTK+2.0 found! ***]) + else + GTK_VER=`$PKG_CONFIG --modversion gtk+-2.0` + fi +else + GTK_VER=`$PKG_CONFIG --modversion gtk+-3.0` +fi + dnl -------------------------------------------------------------------------- dnl Check id3tag library separately: --- gnomad2.orig/src/Makefile.am +++ gnomad2/src/Makefile.am @@ -2,6 +2,7 @@ MAINTAINERCLEANFILES = Makefile.in INCLUDES = \ @GN_CFLAGS@ \ + @GTK_CFLAGS@ \ @TAG_CFLAGS@ \ @MTP_CFLAGS@ \ @TAGLIB_CFLAGS@ \ @@ -14,6 +15,7 @@ INCLUDES = \ LDADD = \ @GN_LIBS@ \ + @GTK_LIBS@ \ @TAG_LIBS@ \ @MTP_LIBS@ \ @TAGLIB_LIBS@ \ --- gnomad2.orig/src/common.h +++ gnomad2/src/common.h @@ -1,6 +1,6 @@ /* common.h Shared header file for the GNOMAD package - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. debian/patches/1001-gtk_set_can_default.patch0000644000000000000000000000313211770564663016220 0ustar Description: Fixes the set_can_default issue with GTK < 2.18.0. Origin: upstream, 5ba6f221bd401403d3ffb77cfad34a810195c08c --- src/player.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) --- gnomad2.orig/src/player.c +++ gnomad2/src/player.c @@ -1,6 +1,6 @@ /* player.c Player window for jukebox file playing - Copyright (C) 2001-2011 Linus Walleij + Copyright (C) 2001-2012 Linus Walleij This file is part of the GNOMAD package. @@ -413,7 +413,9 @@ void create_player_window(GList *metalis gtk_scale_set_draw_value (GTK_SCALE(hscale), FALSE); gtk_widget_show (hscale); button = gtk_button_new_from_stock(GTK_STOCK_MEDIA_STOP); +#if GTK_CHECK_VERSION(2,18,0) gtk_widget_set_can_default(button, TRUE); +#endif gtk_box_pack_start(GTK_BOX (GTK_DIALOG (dialog)->action_area), button, FALSE, FALSE, 0); g_signal_connect_object(GTK_OBJECT(button), @@ -445,7 +447,9 @@ void create_player_window(GList *metalis NULL, 0); gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, TRUE, 0); +#if GTK_CHECK_VERSION(2,18,0) gtk_widget_set_can_default(button, TRUE); +#endif label3 = gtk_label_new("00:00:00"); gtk_box_pack_start(GTK_BOX(hbox2), label3, TRUE, TRUE, 0); button = gtk_button_new_from_stock(GTK_STOCK_MEDIA_NEXT); @@ -455,7 +459,9 @@ void create_player_window(GList *metalis NULL, 0); gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, TRUE, 0); +#if GTK_CHECK_VERSION(2,18,0) gtk_widget_set_can_default(button, TRUE); +#endif gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, TRUE, 0); separator = gtk_hseparator_new (); debian/patches/series0000644000000000000000000000013111770565012012031 0ustar 0001-werror_format_security.patch 1001-gtk_set_can_default.patch 1002-gtk2_to_gtk3.patch debian/patches/0001-werror_format_security.patch0000644000000000000000000000205411770564217017046 0ustar Description: Fix build failure with the new hardened compiler flags, see: http://lists.debian.org/debian-devel-announce/2011/09/msg00001.html Author: Alessio Treglia Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646263 Forwarded: no --- src/util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- gnomad2.orig/src/util.c +++ gnomad2/src/util.c @@ -210,7 +210,7 @@ void create_error_dialog(gchar *errorstr GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, - errorstring); + "%s", errorstring); g_signal_connect_object(GTK_OBJECT(dialog), "delete_event", G_CALLBACK(gtk_widget_destroy), @@ -234,7 +234,7 @@ gboolean request_confirmation_dialog(gch GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, - confirmstring); + "%s", confirmstring); i = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); if (i == GTK_RESPONSE_YES) { debian/rules0000755000000000000000000000015511770576076010267 0ustar #!/usr/bin/make -f LDFLAGS+=-Wl,--as-needed %: dh $@ --parallel --with autoreconf override_dh_auto_test: debian/control0000644000000000000000000000157711770576147010622 0ustar Source: gnomad2 Section: sound Priority: optional Maintainer: Alessio Treglia Build-Depends: debhelper (>= 9), dh-autoreconf, intltool (>= 0.35.0), libgtk-3-dev | libgtk2.0-dev, libgudev-1.0-dev [linux-any], libid3tag0-dev, libmtp-dev (>= 0.3.0), libnjb-dev, libtag1-dev, libtagc0-dev, libxml-parser-perl Standards-Version: 3.9.3 Homepage: http://gnomad2.sourceforge.net/ Vcs-Git: git://anonscm.debian.org/collab-maint/gnomad2.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/gnomad2.git Package: gnomad2 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Manage a Creative Labs Nomad Jukebox Gnomad 2 is a GUI built on top of GTK/GNOME 2, id3lib and libnjb that makes it possible to transfer tracks and files from/to a Creative Nomad Jukebox (all brands). It is designed much like an ordinary graphical FTP program. debian/changelog0000644000000000000000000001626111770576412011060 0ustar gnomad2 (2.9.6-4) unstable; urgency=low * debian/patches/1001-gtk_set_can_default.patch: - Fix the set_can_default issue with GTK < 2.18.0. Patch by Richard Quirk , taken from upstream VCS. * debian/patches/1002-gtk2_to_gtk3: - Migrate from GTK+ 2.0 to GTK+ 3.0; patch taken from upstream VCS. * Build-depends on libgtk-3-dev, set libgtk2.0-dev as alternative. * Bump DH requirements to automatically enable harden'd flags. * Update debian/copyright. * Bump Standards. -- Alessio Treglia Thu, 21 Jun 2012 12:50:42 +0200 gnomad2 (2.9.6-3) unstable; urgency=low * Fix build failure with the new hardened compiler flags (Closes: #646263). -- Alessio Treglia Sun, 23 Oct 2011 10:48:42 +0200 gnomad2 (2.9.6-2) unstable; urgency=low * Set libgudev-1.0-dev as build-dep on linux-any: - Closes: #638272 - Closes: #638296 -- Alessio Treglia Fri, 19 Aug 2011 08:19:33 +0200 gnomad2 (2.9.6-1) unstable; urgency=low * New upstream release: - Drop HAL support in favor of gudev. - Update the code to use GTK+ >= 2.24. * Remove 0001-cpu_idle.patch, applied upstream. * Remove 1001-enable_playlist_support.patch, applied upstream. * Build-depend on libgudev-1.0-dev, update libmtp required version. * Sort build-deps. -- Alessio Treglia Fri, 01 Jul 2011 12:00:18 +0200 gnomad2 (2.9.5-1) unstable; urgency=low * Reintroduce gnomad2 (Closes: #631929) as upstream has finally woken up. * Refresh the whole packaging. -- Alessio Treglia Wed, 29 Jun 2011 15:37:10 +0200 gnomad2 (2.9.4-1) unstable; urgency=low * Adopting this (Closes: #557276). * New upstream release (Closes: #494730). * debian/{compat,control,rules}: - Switch to debhelper 7. * debian/{control,rules,README.source}: - Add quilt support. * Bump Standards. * Add ${misc:Depends} macro to Depends field. * Build-depends on intltool >= 0.35.0, thanks to Julien Lavergne. * Add Homepage field. * Fix debian/watch to handle upstream's tarball location, thanks to Julien Lavergne for the patch. * Drop changes in src/jukebox.c, src/tagfile.c, and gnomad2.desktop.in, merged upstream. * debian/patches/01-cpu_idle.patch: Fix CPU idle, thanks to Chris Vine for the patch. * Update debian/copyright. -- Alessio Treglia Fri, 27 Nov 2009 10:39:33 +0100 gnomad2 (2.9.1-1.2) unstable; urgency=low * NMU for helping with the libmtp7 -> libmtp8 transition, with the authorization of the Release Team (http://lists.debian.org/debian-release/2009/03/msg00085.html) * src/jukebox.c: updates from upstream revno 1.123 to support libtmp8 (closes: #516563). This patch was taken from Ubuntu, thanks to Riccardo Coccioli. -- Rafael Laboissiere Sun, 08 Mar 2009 22:52:41 +0100 gnomad2 (2.9.1-1.1) unstable; urgency=high * Non-maintainer upload. * fix segfault due to missing Vorbis comment headers (double free). Thanks to Steve Kemp for the patch (Closes: #509288) * debian/changelog: fix syntax error ("urgiency" typo in past entry) * gnomad2.desktop{,.in}: get rid of deprecated "Encoding" key (file is UTF-8 safe) * debian/control: bump Standards-Version, no changes needed -- Stefano Zacchiroli Fri, 26 Dec 2008 09:53:11 +0100 gnomad2 (2.9.1-1) unstable; urgency=low * New upstream release. Closes: #446812. -- Manuel Garcia Fri, 08 Feb 2008 18:35:32 -0430 gnomad2 (2.9.0-1) unstable; urgency=low * New upstream release. Closes: #435166, #446812. * Add libtag1-dev and libtagc0-dev as dependencies. * Updates libmtp-dev dependencies to 0.2.2 version. -- Manuel Garcia Thu, 15 Nov 2007 15:35:33 -0400 gnomad2 (2.8.12-2) unstable; urgency=low * Changing from experimental to unstable. * New upstream release. Closes: #418775, #428155, #351792. -- Manuel Garcia Wed, 20 Jun 2007 12:47:42 -0400 gnomad2 (2.8.12-1) experimental; urgency=low * New upstream release -- Manuel Garcia Fri, 13 Apr 2007 16:45:26 -0400 gnomad2 (2.8.11-2) experimental; urgency=low * Add libmtp as dependency. Closes: #396369. -- Manuel Garcia Fernandez Wed, 14 Mar 2007 12:19:37 -0400 gnomad2 (2.8.11-1) experimental; urgency=low * New upstream release. Closes: #409200 -- Manuel Garcia Thu, 15 Feb 2007 13:35:56 -0400 gnomad2 (2.8.8-1.1) unstable; urgency=medium * Non-maintainer upload. * Use $(CURDIR) instead of $(PWD) in debian/rules (closes: #390390). * Added version to debhelper build-dependency to match debian/compat. -- martin f. krafft Sat, 7 Oct 2006 17:54:56 +0200 gnomad2 (2.8.8-1) unstable; urgency=low * New maintainer. Closes: #316771. * New upstream release. * Update the Debian policy to version 3.7.2.1. No changes necessary. -- Manuel Garcia Mon, 28 Aug 2006 16:22:56 -0400 gnomad2 (2.8.3-1) unstable; urgency=low * New upstream release. * Update the Debian policy to version 3.6.2.2. No changes necessary. * Update the watch file. * Update the copyright file. -- Shaun Jackman Sat, 8 Apr 2006 15:58:16 -0600 gnomad2 (2.8.1-1) unstable; urgency=low * New upstream release. * Fix bug affecting file names starting with numbers. Closes: #324865. -- Shaun Jackman Sat, 17 Sep 2005 20:50:20 -0600 gnomad2 (2.8.0-2) unstable; urgency=low * Add a versioned dependency for libnjb-dev (>> 2.2). Closes: #324036. -- Shaun Jackman Fri, 19 Aug 2005 16:09:28 -0700 gnomad2 (2.8.0-1) unstable; urgency=low * New upstream release. Closes: #319022. * Display a detailed error message if unable to connect. Closes: #279008. * Update the German translation. Closes: #314083. * Build using libnjb5. -- Shaun Jackman Tue, 16 Aug 2005 11:50:27 -0700 gnomad2 (2.6.3-1) unstable; urgency=low * New upstream release. * Rebuild against libnjb4. -- Shaun Jackman Thu, 10 Mar 2005 07:47:43 -0800 gnomad2 (2.6.1-1) experimental; urgency=low * New upstream release. * Rebuild against libnjb2. * Update watch file. -- Shaun Jackman Thu, 30 Dec 2004 01:04:33 -0800 gnomad2 (2.5.0-2) unstable; urgency=low * Add libxml-parser-perl to the build dependencies (closes: #277367) because intltool requires it. Perhaps this can be run in advance to avoid the dependency. -- Shaun Jackman Mon, 25 Oct 2004 10:24:21 -0700 gnomad2 (2.5.0-1) unstable; urgency=low * New upstream release (closes: #277337). * Depend on libid3tag0-dev (>= 0.14.2b-4). Remove dependency on libid3-dev. -- Shaun Jackman Tue, 19 Oct 2004 08:37:01 -0700 gnomad2 (2.4.4-2) unstable; urgency=low * Rebuild with g++ 3.3 (closes: #269745). * Move from experimental to unstable. -- Shaun Jackman Fri, 3 Sep 2004 08:56:28 -0700 gnomad2 (2.4.4-1) experimental; urgency=low * Initial Release. -- Shaun Jackman Tue, 25 May 2004 19:55:56 -0700 debian/gbp.conf0000644000000000000000000000003611602333774010612 0ustar [DEFAULT] pristine-tar = True debian/copyright0000644000000000000000000000255511770576357011152 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Gnomad2 Upstream-Contact: Linus Walleij Source: https://sourceforge.net/projects/gnomad2/files/ Files: * Copyright: 2001-2012, Linus Walleij 2008, Kees van Veen 2007, Peter Randeu 2000-2001, Cedric Tefft License: GPL-2+ Files: debian/* Copyright: 2011-2012 Alessio Treglia 2006-2008, Manuel Garcia 2004-2006, Shaun Jackman License: GPL-2+ License: GPL-2+ 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. Comment: On Debian systems the full text of the GNU General Public License can be found in the `/usr/share/common-licenses/GPL-2' file. . You should have received a copy of the GNU General Public License along with this program. If not, see . debian/source/0000755000000000000000000000000011602333774010474 5ustar debian/source/format0000644000000000000000000000001411602333774011702 0ustar 3.0 (quilt) debian/watch0000644000000000000000000000006611602333774010227 0ustar version=3 http://sf.net/gnomad2/gnomad2-(.*)\.tar\.gz debian/manpages0000644000000000000000000000001211602333774010703 0ustar gnomad2.1