diff --git a/po/fr.po b/po/fr.po index 2beb3d9eb8a518e9ab9623d1929e8dcb751e2458..c79d4c5f8116fe2afe4f11851db9564e8368856f 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 95a0deb37b52c0d4ab6e26863ed503d15f561c2d..e8c3ba7b8cd87cf41f70d51cb2fee0ab8f21a62d 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 c4e35a202d05aca78c9e44fd16312c7eae861ef8..bb24a9b2b814484ceeff968b1651dce9e37f3e99 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",