From 7016b09c822faac15351420da97c9e8f804f05bc Mon Sep 17 00:00:00 2001 From: Emmanuel Milou <emmanuel.milou@savoirfairelinux.com> Date: Tue, 20 May 2008 16:42:51 -0400 Subject: [PATCH] Add a menu item to clear the history In the edit menu --- po/fr.po | 12 ++++++++++ po/sflphone.pot | 4 ++++ sflphone-gtk/src/menus.c | 48 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) diff --git a/po/fr.po b/po/fr.po index 2beb3d9eb8..c79d4c5f81 100644 --- a/po/fr.po +++ b/po/fr.po @@ -67,6 +67,18 @@ msgstr "_Assistant SFLphone" msgid "_Accounts" msgstr "Co_mptes" +#: sflphone-gtk/src/menus.c: 523 +msgid "_Clear history" +msgstr "Effacer l'historique" + +#: sflphone-gtk/src/menus.c: 523 +msgid "History empty" +msgstr "L'historique est vide" + +#: sflphone-gtk/src/menus.c: 523 +msgid "Clear the call history?" +msgstr "Effacer l'historique des appels?" + #: sflphone-gtk/src/menus.c: 438 msgid "_Edit" msgstr "_Options" diff --git a/po/sflphone.pot b/po/sflphone.pot index 95a0deb37b..e8c3ba7b8c 100644 --- a/po/sflphone.pot +++ b/po/sflphone.pot @@ -65,6 +65,10 @@ msgstr "" msgid "_Accounts" msgstr "" +#: sflphone-gtk/src/menus.c: 523 +msgid "_Clear history" +msgstr "" + #: sflphone-gtk/src/menus.c: 438 msgid "_Edit" msgstr "" diff --git a/sflphone-gtk/src/menus.c b/sflphone-gtk/src/menus.c index c4e35a202d..bb24a9b2b8 100644 --- a/sflphone-gtk/src/menus.c +++ b/sflphone-gtk/src/menus.c @@ -37,6 +37,8 @@ GtkWidget * newCallMenu; GtkWidget * holdMenu; GtkWidget * copyMenu; GtkWidget * pasteMenu; +GtkWidget * clearhistoryMenu; + guint holdConnId; //The hold_menu signal connection ID GtkWidget * dialpadMenu; @@ -482,12 +484,46 @@ edit_paste ( void * foo) update_call_tree(current_calls,selectedCall); } +} + + static void +clear_history( void* foo ) +{ + gchar *markup; + GtkWidget *dialog; + int response; + + if( call_list_get_size( history ) == 0 ){ + markup = g_markup_printf_escaped(_("History empty")); + dialog = gtk_message_dialog_new_with_markup ( GTK_WINDOW(get_main_window()), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_INFO, + GTK_BUTTONS_OK, + markup); + response = gtk_dialog_run (GTK_DIALOG(dialog)); + gtk_widget_destroy (GTK_WIDGET(dialog)); + } + else{ + markup = g_markup_printf_escaped(_("Clear the call history?")); + dialog = gtk_message_dialog_new_with_markup ( GTK_WINDOW(get_main_window()), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_INFO, + GTK_BUTTONS_YES_NO, + markup); + response = gtk_dialog_run (GTK_DIALOG(dialog)); + gtk_widget_destroy (GTK_WIDGET(dialog)); + if (response == GTK_RESPONSE_YES) + { + call_list_clean_history(); + } + } } GtkWidget * create_edit_menu() { GtkWidget * menu; + GtkWidget * image; GtkWidget * root_menu; GtkWidget * menu_items; @@ -510,6 +546,18 @@ create_edit_menu() menu_items = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items); + menu_items = gtk_image_menu_item_new_with_mnemonic(_("_Clear history")); + image = gtk_image_new_from_stock( GTK_STOCK_CLEAR , GTK_ICON_SIZE_MENU ); + gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( menu_items ), image ); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items); + g_signal_connect_swapped (G_OBJECT (menu_items), "activate", + G_CALLBACK (clear_history), + NULL); + gtk_widget_show (menu_items); + + menu_items = gtk_separator_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items); + menu_items = gtk_menu_item_new_with_mnemonic( _("_Accounts") ); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items); g_signal_connect_swapped (G_OBJECT (menu_items), "activate", -- GitLab