diff --git a/gnome/src/mainwindow.c b/gnome/src/mainwindow.c index 1654940ab12e5aefd31daa3af1588ee0e2e1a8c0..8fd3be2cbac5d4abd3eab15a57f56932f32dc224 100644 --- a/gnome/src/mainwindow.c +++ b/gnome/src/mainwindow.c @@ -184,7 +184,6 @@ create_main_window () { GtkWidget *widget; GError *error = NULL; - gboolean ret; const char *window_title = "SFLphone VoIP Client"; int width, height, position_x, position_y; @@ -226,9 +225,9 @@ create_main_window () gtk_widget_set_name (window, "mainwindow"); - ret = uimanager_new (&ui_manager); + ui_manager = uimanager_new (); - if (!ret) { + if (!ui_manager) { ERROR ("Could not load xml GUI\n"); g_error_free (error); exit (1); diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c index 066b8108cad520e7faf62c98efc6eb03e6013c82..d720f644a546d6bb6081d5a8758b0d87bd3b62b7 100644 --- a/gnome/src/uimanager.c +++ b/gnome/src/uimanager.c @@ -1108,52 +1108,32 @@ static const GtkToggleActionEntry toggle_menu_entries[] = { { "Addressbook", GTK_STOCK_ADDRESSBOOK, N_ ("_Address book"), NULL, N_ ("Address book"), G_CALLBACK (toggle_addressbook_cb), FALSE } }; -gboolean -uimanager_new (GtkUIManager **_ui_manager) +GtkUIManager *uimanager_new (void) { - - GtkUIManager *ui_manager; - GtkActionGroup *action_group; - GtkWidget *window; - gchar *path; - guint manager_id = 0; + guint manager_id; GError *error = NULL; - gint nb_entries, nb_menu_entries; - - nb_entries = abookfactory_is_addressbook_loaded() ? 7 : 6; - nb_menu_entries = abookfactory_is_addressbook_loaded() ? 7 : 6; + gint nb_entries = abookfactory_is_addressbook_loaded() ? 7 : 6; - window = get_main_window(); - ui_manager = gtk_ui_manager_new(); + GtkWidget *window = get_main_window(); + GtkUIManager *ui_manager = gtk_ui_manager_new(); /* Create an accel group for window's shortcuts */ - path = g_build_filename (SFLPHONE_UIDIR_UNINSTALLED, "./ui.xml", NULL); - + gchar *path = g_build_filename (SFLPHONE_UIDIR_UNINSTALLED, "./ui.xml", NULL); if (g_file_test (path, G_FILE_TEST_EXISTS)) { manager_id = gtk_ui_manager_add_ui_from_file (ui_manager, path, &error); - - if (error != NULL) { - g_error_free (error); - return FALSE; - } - - g_free (path); } else { + g_free (path); path = g_build_filename (SFLPHONE_UIDIR, "./ui.xml", NULL); + if (!g_file_test (path, G_FILE_TEST_EXISTS)) + goto fail; + manager_id = gtk_ui_manager_add_ui_from_file (ui_manager, path, &error); + } - if (g_file_test (path, G_FILE_TEST_EXISTS)) { - manager_id = gtk_ui_manager_add_ui_from_file (ui_manager, path, &error); - - if (error != NULL) { - g_error_free (error); - return FALSE; - } + if (error) + goto fail; - g_free (path); - } else - return FALSE; - } + g_free (path); if(abookfactory_is_addressbook_loaded()) { // These actions must be loaded dynamically and is not specified in the xml description @@ -1167,7 +1147,7 @@ uimanager_new (GtkUIManager **_ui_manager) GTK_UI_MANAGER_TOOLITEM, FALSE); } - action_group = gtk_action_group_new ("SFLphoneWindowActions"); + GtkActionGroup *action_group = gtk_action_group_new ("SFLphoneWindowActions"); // To translate label and tooltip entries gtk_action_group_set_translation_domain (action_group, "sflphone-client-gnome"); gtk_action_group_add_actions (action_group, menu_entries, G_N_ELEMENTS (menu_entries), window); @@ -1175,9 +1155,15 @@ uimanager_new (GtkUIManager **_ui_manager) //gtk_action_group_add_radio_actions (action_group, radio_menu_entries, G_N_ELEMENTS (radio_menu_entries), CALLTREE_CALLS, G_CALLBACK (calltree_switch_cb), window); gtk_ui_manager_insert_action_group (ui_manager, action_group, 0); - *_ui_manager = ui_manager; + return ui_manager; + +fail: + if (error) + g_error_free (error); - return TRUE; + g_free (path); + g_free (ui_manager); + return NULL; } static void diff --git a/gnome/src/uimanager.h b/gnome/src/uimanager.h index 0f280b853696b66d78131ea6b656ec19e28af490..d4aaf87c04423a07f64e71b9cb000b1e5b947777 100644 --- a/gnome/src/uimanager.h +++ b/gnome/src/uimanager.h @@ -42,7 +42,7 @@ GtkWidget *contactButton; GtkAction *volumeToggle; -gboolean uimanager_new (GtkUIManager**); +GtkUIManager *uimanager_new (void); void update_voicemail_status (void);