]> sjero.net Git - linphone/commitdiff
Fix messages and pixmaps
authorMargaux Clerc <margaux.clerc@belledonne-communications>
Thu, 10 Jan 2013 13:48:28 +0000 (14:48 +0100)
committerMargaux Clerc <margaux.clerc@belledonne-communications>
Thu, 10 Jan 2013 13:51:33 +0000 (14:51 +0100)
gtk/chat.c
gtk/friendlist.c
gtk/linphone.h
pixmaps/Makefile.am
po/fr.po

index 8b165f1fa3c383dfc4ff24567488e22ea8dedeff..506c9036d53759753fce98b6db46ef53a3983a47 100644 (file)
@@ -33,6 +33,8 @@ void linphone_gtk_quit_chatroom(LinphoneChatRoom *cr) {
        gtk_notebook_remove_page (GTK_NOTEBOOK(nb),idx);
        linphone_gtk_update_chat_picture(FALSE);
        g_object_set_data(G_OBJECT(friendlist),"chatview",NULL);
+       g_object_set_data(G_OBJECT(w),"from_message",NULL);
+       g_object_set_data(G_OBJECT(w),"cr",NULL);
        gtk_widget_destroy(w);
 }
 
@@ -56,12 +58,12 @@ GtkWidget *create_tab_chat_header(LinphoneChatRoom *cr,const LinphoneAddress *ur
 void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, const char *message, gboolean me,LinphoneChatRoom *cr){
     GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(w,"textview"));
     GtkTextBuffer *buffer=gtk_text_view_get_buffer(text);
-    GtkTextIter iter,begin;
-    GList *l = g_object_get_data(G_OBJECT(w),"list");
+    GtkTextIter iter,begin,end;
     gtk_text_buffer_get_start_iter(buffer,&begin);
        int off;
        gtk_text_buffer_get_end_iter(buffer,&iter);
        off=gtk_text_iter_get_offset(&iter);
+       //GList *list=g_object_get_data(G_OBJECT(w),"list");
 
        if(g_strcmp0((char *)g_object_get_data(G_OBJECT(w),"from_message"),linphone_address_as_string(from))!=0){
                gtk_text_buffer_get_iter_at_offset(buffer,&iter,off);
@@ -78,32 +80,31 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, const cha
        }
        gtk_text_buffer_get_end_iter(buffer,&iter);
        gtk_text_buffer_get_iter_at_offset(buffer,&begin,off);
-       if(me){
-               l=g_list_append(l,GINT_TO_POINTER(gtk_text_iter_get_offset(&iter)));
-               g_object_set_data(G_OBJECT(w),"list",l);
-       }
-       gtk_text_buffer_insert(buffer,&iter,"\t",-1);
        gtk_text_buffer_insert(buffer,&iter,message,-1);
-       gtk_text_buffer_get_end_iter(buffer,&iter);
+       gtk_text_buffer_get_end_iter(buffer,&iter);     
        gtk_text_buffer_insert(buffer,&iter,"\n",-1);
-
-       GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE);
-       gtk_text_view_scroll_mark_onscreen(text,mark);
-       //gtk_text_buffer_get_end_iter(b,&iter);
-       //gtk_text_iter_forward_to_line_end(&iter);
-       //gtk_text_view_scroll_to_iter(v,&iter,0,TRUE,1.0,1.0);
-    gtk_text_buffer_get_bounds (buffer, &begin, &iter);
-
+       gtk_text_buffer_get_bounds (buffer, &begin, &end);      
     GHashTable *hash=(GHashTable *)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"history");
     if(me){
         g_hash_table_insert(hash,linphone_address_as_string_uri_only(linphone_chat_room_get_peer_address(cr)),
-                            (gpointer)gtk_text_buffer_get_text(buffer,&begin,&iter,FALSE));
+                            (gpointer)gtk_text_buffer_get_text(buffer,&begin,&end,FALSE));
     } else {
-
         g_hash_table_insert(hash,linphone_address_as_string_uri_only(from),
-                            (gpointer)gtk_text_buffer_get_text(buffer,&begin,&iter,FALSE));
+                            (gpointer)gtk_text_buffer_get_text(buffer,&begin,&end,FALSE));
     }
-    g_object_set_data(G_OBJECT(linphone_gtk_get_main_window()),"history",hash);
+       g_object_set_data(G_OBJECT(linphone_gtk_get_main_window()),"history",hash);
+       
+       /*if(me){
+               gtk_text_buffer_get_end_iter(buffer,&iter);
+               list=g_list_append(list,GINT_TO_POINTER(gtk_text_iter_get_line(&iter)));
+               gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Message in progress..",-1,                                                                       "italic","right","small",NULL);
+               gtk_text_buffer_get_end_iter(buffer,&iter);
+               gtk_text_buffer_insert(buffer,&iter,"\n",-1);
+               g_object_set_data(G_OBJECT(w),"list",list);
+       }*/
+
+       GtkTextMark *mark=gtk_text_buffer_create_mark(buffer,NULL,&iter,FALSE);
+       gtk_text_view_scroll_mark_onscreen(text,mark);
 }
 
 const LinphoneAddress* linphone_gtk_get_used_identity(){
@@ -117,40 +118,52 @@ const LinphoneAddress* linphone_gtk_get_used_identity(){
 
 /* function in dev for displaying ack*/
 void update_chat_state_message(LinphoneChatMessageState state){
-    /*GdkPixbuf *pixbuf;
-
-       switch (state) {
-               case LinphoneChatMessageStateInProgress:
-                       pixbuf=create_pixbuf("chat_message_in_progress.png");
-                       break;
-               case LinphoneChatMessageStateDelivered:
-                       pixbuf=create_pixbuf("chat_message_delivered.png");
-                       break;
-               case  LinphoneChatMessageStateNotDelivered:
-                       pixbuf=create_pixbuf("chat_message_not_delivered.png");
-                       break;
-               default : pixbuf=NULL;
-       }
-
-    GtkWidget *main_window=linphone_gtk_get_main_window();
+    /*GtkWidget *main_window=linphone_gtk_get_main_window();
     GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list");
        GtkWidget *page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
+       GList *list=g_object_get_data(G_OBJECT(page),"list");
+       
        if(page!=NULL){
                GtkTextView *text=GTK_TEXT_VIEW(linphone_gtk_get_widget(page,"textview"));
                GtkTextBuffer *b=gtk_text_view_get_buffer(text);
                GtkTextIter iter;
-               GList *l = g_object_get_data(G_OBJECT(page),"list");
-               gtk_text_buffer_get_end_iter(b,&iter);
-               gtk_text_buffer_get_iter_at_offset(b,&iter,GPOINTER_TO_INT(g_list_nth_data(l,0)));
-               fprintf(stdout,"offset check %i \n",GPOINTER_TO_INT(g_list_nth_data(l,0)));
-               l=g_list_remove(l,g_list_nth_data(l,0));
-               gtk_text_buffer_insert_pixbuf(b,&iter,pixbuf);
-
-               //gtk_text_buffer_get_end_iter(b,&iter);
-               //gtk_text_buffer_insert_pixbuf(b,&iter,pixbuf);
-               //gtk_text_buffer_get_end_iter(b,&iter);
-               //gtk_text_buffer_insert(b,&iter,"\n",-1);
-               g_object_set_data(G_OBJECT(page),"list",l);
+               GtkTextIter end;
+               GtkTextIter start;
+
+               gtk_text_buffer_get_iter_at_line(b,&iter,
+                                          GPOINTER_TO_INT(g_list_nth_data(list,0)));
+               if(gtk_text_iter_get_chars_in_line(&iter) >0) {
+                       gtk_text_buffer_get_iter_at_line_offset(b,&start,
+                                                       GPOINTER_TO_INT(g_list_nth_data(list,0)),
+                                           gtk_text_iter_get_chars_in_line(&iter)-1);
+               }else {
+                       gtk_text_buffer_get_iter_at_line_offset(b,&start,
+                                               GPOINTER_TO_INT(g_list_nth_data(list,0)),0);
+               }
+               gtk_text_buffer_get_iter_at_line_offset(b,&end,
+                                           GPOINTER_TO_INT(g_list_nth_data(list,0)),0);
+               gtk_text_buffer_delete(b,&start,&end);
+               gtk_text_buffer_get_iter_at_line(b,&iter,GPOINTER_TO_INT(g_list_nth_data(list,0)));
+
+               switch (state) {
+                       case LinphoneChatMessageStateInProgress:
+                               gtk_text_buffer_insert_with_tags_by_name(b,&iter,"Message in progress.",-1,
+                                                                                               "italic","right","small",NULL);
+                               break;
+                       case LinphoneChatMessageStateDelivered:
+                               gtk_text_buffer_insert_with_tags_by_name(b,&iter,"Message delivered",-1,
+                                                                                               "italic","right","small",NULL);
+                               break;
+                       case  LinphoneChatMessageStateNotDelivered:
+                               gtk_text_buffer_insert_with_tags_by_name(b,&iter,"Message not delivered",-1,
+                                                                                               "italic","right","small",NULL);
+                               break;
+                       default : gtk_text_buffer_insert_with_tags_by_name(b,&iter,"12",-1,
+                                                                                       "italic","right","small",NULL);
+               }
+
+               list=g_list_remove(list,g_list_nth_data(list,0));
+               g_object_set_data(G_OBJECT(page),"list",list);
        } else {
                fprintf(stdout,"NULLLL\n");
        }*/
@@ -158,26 +171,25 @@ void update_chat_state_message(LinphoneChatMessageState state){
 
 static void on_chat_state_changed(LinphoneChatMessage *msg, LinphoneChatMessageState state, void *user_pointer){
        g_message("chat message state is %s",linphone_chat_message_state_to_string(state));
-    update_chat_state_message(state);
+       update_chat_state_message(state);
 }
 
-void linphone_gtk_send_text(LinphoneChatRoom *cr){
+void linphone_gtk_send_text(){
     GtkWidget *main_window=linphone_gtk_get_main_window();
        GtkWidget *friendlist=linphone_gtk_get_widget(main_window,"contact_list");
     GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
        GtkWidget *entry=linphone_gtk_get_widget(w,"text_entry");
        const gchar *entered;
-       
+       LinphoneChatRoom *cr=g_object_get_data(G_OBJECT(w),"cr");
        entered=gtk_entry_get_text(GTK_ENTRY(entry));
        if (strlen(entered)>0) {
                LinphoneChatMessage *msg;
                linphone_gtk_push_text(w,
                                linphone_gtk_get_used_identity(),
-                               entered,TRUE,g_object_get_data(G_OBJECT(w),"cr"));
-        msg=linphone_chat_room_create_message(cr,entered);
+                               entered,TRUE,cr);
+               msg=linphone_chat_room_create_message(cr,entered);
                linphone_chat_room_send_message2(cr,msg,on_chat_state_changed,NULL);
                gtk_entry_set_text(GTK_ENTRY(entry),"");
-
        }
 }
 
@@ -188,7 +200,8 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres
        GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(main_window,"viewswitch");
        GtkWidget *text=linphone_gtk_get_widget(chat_view,"textview");
        int idx;
-
+       
+       
        gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW(text),GTK_WRAP_WORD);
        gtk_text_view_set_editable (GTK_TEXT_VIEW(text),FALSE);
        gtk_notebook_append_page (notebook,chat_view,create_tab_chat_header(cr,with));
@@ -196,12 +209,14 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres
        gtk_notebook_set_current_page(notebook, idx);
        gtk_widget_show(chat_view);
 
-       GList *l = NULL;
+       
        g_object_set_data(G_OBJECT(chat_view),"cr",cr);
        g_object_set_data(G_OBJECT(chat_view),"idx",GINT_TO_POINTER(idx));
        g_object_set_data(G_OBJECT(chat_view),"from_message",NULL);
        g_object_set_data(G_OBJECT(chat_view),"from_chatroom",linphone_address_as_string_uri_only(with));
-       g_object_set_data(G_OBJECT(chat_view),"list",l);
+
+       GList *list=NULL;
+       g_object_set_data(G_OBJECT(chat_view),"list",list);
 
        gchar *buf=g_hash_table_lookup(hash,linphone_address_as_string_uri_only(with));
        if(buf != NULL){
@@ -211,22 +226,26 @@ GtkWidget* linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddres
         GtkTextBuffer *text_buffer;
         text_buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
         gtk_text_buffer_get_bounds(text_buffer, &start, &end);
-        g_object_set_data(G_OBJECT(chat_view),"cr",cr);
         gtk_text_buffer_delete (text_buffer, &start, &end);
         gtk_text_buffer_insert(text_buffer,&start,buf,-1);
        }
 
        gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
-                                         "right","justification", GTK_JUSTIFY_RIGHT,NULL);
-
+                               "right","justification", GTK_JUSTIFY_RIGHT,NULL);
+       gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
+                                   "bold","weight", PANGO_WEIGHT_BOLD,NULL);
+       gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
+                                                               "italic","style", PANGO_STYLE_ITALIC,NULL);
        gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
-                                         "bold","weight", PANGO_WEIGHT_BOLD,NULL);
+                                       "small","size",8*PANGO_SCALE,NULL);
+       gtk_text_buffer_create_tag(gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)),
+                                       "font_grey","foreground","grey",NULL);
        
        GtkWidget *button = linphone_gtk_get_widget(chat_view,"send");
-       g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,cr);
+       g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,NULL);
 
        GtkWidget *entry = linphone_gtk_get_widget(chat_view,"text_entry");
-       g_signal_connect_swapped(G_OBJECT(entry),"activate",(GCallback)linphone_gtk_send_text,cr);
+       g_signal_connect_swapped(G_OBJECT(entry),"activate",(GCallback)linphone_gtk_send_text,NULL);
 
        return chat_view;
 }
@@ -237,8 +256,6 @@ LinphoneChatRoom * linphone_gtk_create_chatroom(const LinphoneAddress *with){
        return cr;
 }
 
-
-
 void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,GtkWidget *chat_view){
        GtkWidget *main_window=linphone_gtk_get_main_window ();
        GHashTable *hash=g_object_get_data(G_OBJECT(main_window),"history");
@@ -255,17 +272,14 @@ void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,
         g_object_set_data(G_OBJECT(chat_view),"cr",cr);
         gtk_text_buffer_delete (text_buffer, &start, &end);
         if(buf!=NULL){
-            gtk_text_buffer_insert(text_buffer,&start,buf,-1);
-        } else {
-                g_object_set_data(G_OBJECT(chat_view),"from_message",NULL);
-                GtkWidget *entry = linphone_gtk_get_widget(chat_view,"text_entry");
-                g_signal_connect_swapped(G_OBJECT(entry),"activate",(GCallback)linphone_gtk_send_text,cr);
-
-                GtkWidget *button = linphone_gtk_get_widget(chat_view,"send");
-                g_signal_connect_swapped(G_OBJECT(button),"clicked",(GCallback)linphone_gtk_send_text,cr);
-            }
-
+            gtk_text_buffer_insert_with_tags_by_name(text_buffer,&start,buf,-1,"font_grey","small",NULL);
+                       GtkTextMark *mark=gtk_text_buffer_create_mark(text_buffer, NULL, &start, FALSE);
+                       gtk_text_view_scroll_to_mark(text_view,mark, 0, FALSE, 0, 0);
+        }
+               g_object_set_data(G_OBJECT(chat_view),"cr",cr);
         g_object_set_data(G_OBJECT(chat_view),"from_chatroom",linphone_address_as_string_uri_only(uri));
+               g_object_set_data(G_OBJECT(chat_view),"from_message",linphone_address_as_string_uri_only(uri));
+               g_object_set_data(G_OBJECT(linphone_gtk_get_widget(main_window,"contact_list")),"chatview",(gpointer)chat_view);
        }
 }
 
@@ -312,4 +326,3 @@ void linphone_gtk_text_received(LinphoneCore *lc, LinphoneChatRoom *room, const
        //gtk_window_present(GTK_WINDOW(w));
        /*gtk_window_set_urgency_hint(GTK_WINDOW(w),TRUE);*/
 }
-
index 3124fdbb144b92b1cbcae2529d7c1edaaed227cb..9aabe597a388ccf9424573f7f49076364ec8c6db 100644 (file)
@@ -207,14 +207,11 @@ void linphone_gtk_chat_selected(GtkWidget *item){
        store=GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(item)));
        if (gtk_tree_selection_get_selected (select, &model, &iter)){
                GtkNotebook *notebook=(GtkNotebook *)linphone_gtk_get_widget(w,"viewswitch");
-               gtk_tree_model_get(model,&iter,FRIEND_CHATROOM,&cr,-1);
                const LinphoneAddress *uri;
                gtk_tree_model_get (model, &iter,FRIEND_ID , &lf, -1);
                uri=linphone_friend_get_address(lf);
                if(cr == NULL){
                        cr=linphone_gtk_create_chatroom(uri);
-                       gtk_list_store_set(store,&iter, FRIEND_CHATROOM,cr,-1);
-                       gtk_list_store_set(store,&iter, FRIEND_CHAT_CONVERSATION,NULL,-1);
                }
                page=(GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview");
                if(page==NULL){
index ca6234b4f1b487e59e6b9c28de17df2303fe8b20..f2b02aacef5c9e98951b6fb4d7262ad9b4bb9be6 100644 (file)
@@ -107,7 +107,7 @@ void linphone_gtk_status_icon_set_blinking(gboolean val);
 void linphone_gtk_notify(LinphoneCall *call, const char *msg);
 LinphoneChatRoom *linphone_gtk_start_chat(GtkTreeView* t);
 void linphone_gtk_load_chatroom(LinphoneChatRoom *cr,const LinphoneAddress *uri,GtkWidget *chat_view);
-void linphone_gtk_send_text(LinphoneChatRoom *cr);
+void linphone_gtk_send_text();
 GtkWidget * linphone_gtk_init_chatroom(LinphoneChatRoom *cr, const LinphoneAddress *with);
 void linphone_gtk_update_chat_picture(gboolean active);
 void linphone_gtk_chat_set_conversation(const LinphoneAddress *uri,gchar *conversation);
index a7ee4ecb900dc0d5e3830ed050a1b93c10fb9a07..186254c1195ce8e855fa0f94da4241a82d3df247 100644 (file)
@@ -11,10 +11,10 @@ status-orange.png \
 status-red.png \
 status-offline.png \
 call.png \
-chat.png \
+chat.png active_chat.png\
 chat_message_inprogress.png chat_message_delivered.png chat_message_not_delivered.png\
 contact-orange.png dialer-orange.png history-orange.png\
-startcall-green.png stopcall-red.png addcall-green.png linphone.icns \
+startcall-green.png startcall-small.png stopcall-red.png stopcall-small.png addcall-green.png linphone.icns \
 contact_starred.png contact_unstarred.png \
 speaker.png \
 ok.png \
index 5062fc0743513a5ae66b1d15b6190a1df339b42b..8c955f75cbd3670f256a73b336b685197ab4a5fc 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,12 +1,12 @@
-# SOME DESCRIPTIVE TITLE.\r
-# Copyright (C) 2001 Free Software Foundation, Inc.\r
-# Simon Morlat <simon.morlat@linphone.org>, 2001.\r
-# \r
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Simon Morlat <simon.morlat@linphone.org>, 2001.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: Linphone 0.9.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-01-08 10:35+0100\n"
+"POT-Creation-Date: 2011-12-05 12:41+0100\n"
 "PO-Revision-Date: 2002-12-06 17:33+0100\n"
 "Last-Translator: Simon Morlat <simon.morlat@linphone.org>\n"
 "Language-Team: french <fr@li.org>\n"
@@ -16,19 +16,16 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 
 #: ../gtk/calllogs.c:82
-#, fuzzy
 msgid "Aborted"
-msgstr "abandonné"
+msgstr "Abandonné"
 
 #: ../gtk/calllogs.c:85
-#, fuzzy
 msgid "Missed"
-msgstr "manqué"
+msgstr "Manqué"
 
 #: ../gtk/calllogs.c:88
-#, fuzzy
 msgid "Declined"
-msgstr "Refuser"
+msgstr "Refusé"
 
 #: ../gtk/calllogs.c:94
 #, c-format
@@ -62,7 +59,8 @@ msgid ""
 "%s\t%s"
 msgstr ""
 
-#: ../gtk/conference.c:33 ../gtk/main.ui.h:13
+#: ../gtk/conference.c:33
+#: ../gtk/main.ui.h:13
 msgid "Conference"
 msgstr "Conférence"
 
@@ -70,7 +68,9 @@ msgstr "Conférence"
 msgid "Me"
 msgstr "Moi"
 
-#: ../gtk/support.c:49 ../gtk/support.c:73 ../gtk/support.c:102
+#: ../gtk/support.c:49
+#: ../gtk/support.c:73
+#: ../gtk/support.c:102
 #, c-format
 msgid "Couldn't find pixmap file: %s"
 msgstr "Icone non trouvée: %s"
@@ -100,12 +100,8 @@ msgid "if set automatically answer incoming calls"
 msgstr "si positionné, répond automatiquement aux appels entrants"
 
 #: ../gtk/main.c:131
-msgid ""
-"Specifiy a working directory (should be the base of the installation, eg: c:"
-"\\Program Files\\Linphone)"
-msgstr ""
-"Spécifie un répertoire de travail (qui devrait être le répertoire "
-"d'installation, par exemple c:\\Program Files\\Linphone)"
+msgid "Specifiy a working directory (should be the base of the installation, eg: c:\\Program Files\\Linphone)"
+msgstr "Spécifie un répertoire de travail (qui devrait être le répertoire d'installation, par exemple c:\\Program Files\\Linphone)"
 
 #: ../gtk/main.c:498
 #, c-format
@@ -116,15 +112,12 @@ msgstr "Appel avec %s"
 #, c-format
 msgid ""
 "%s would like to add you to his contact list.\n"
-"Would you allow him to see your presence status or add him to your contact "
-"list ?\n"
+"Would you allow him to see your presence status or add him to your contact list ?\n"
 "If you answer no, this person will be temporarily blacklisted."
 msgstr ""
 "%s souhaite vous ajouter à sa liste de contact.\n"
-"Souhaitez vous l'autoriser à voir votre information de présence et l'ajouter "
-"à votre liste également ?\n"
-"Si vous répondez non, cette personne sera mise temporairement sur liste "
-"noire."
+"Souhaitez vous l'autoriser à voir votre information de présence et l'ajouter à votre liste également ?\n"
+"Si vous répondez non, cette personne sera mise temporairement sur liste noire."
 
 #: ../gtk/main.c:948
 #, c-format
@@ -139,19 +132,24 @@ msgstr ""
 msgid "Call error"
 msgstr "Erreur lors de l'appel"
 
-#: ../gtk/main.c:1054 ../coreapi/linphonecore.c:2949
+#: ../gtk/main.c:1054
+#: ../coreapi/linphonecore.c:2949
 msgid "Call ended"
 msgstr "Appel terminé."
 
-#: ../gtk/main.c:1057 ../coreapi/linphonecore.c:244
+#: ../gtk/main.c:1057
+#: ../coreapi/linphonecore.c:244
 msgid "Incoming call"
 msgstr "Appel entrant"
 
-#: ../gtk/main.c:1059 ../gtk/incall_view.c:451 ../gtk/main.ui.h:6
+#: ../gtk/main.c:1059
+#: ../gtk/incall_view.c:451
+#: ../gtk/main.ui.h:6
 msgid "Answer"
 msgstr "Répondre"
 
-#: ../gtk/main.c:1061 ../gtk/main.ui.h:7
+#: ../gtk/main.c:1061
+#: ../gtk/main.ui.h:7
 msgid "Decline"
 msgstr "Refuser"
 
@@ -182,7 +180,8 @@ msgstr "Linphone - un téléphone video pour l'internet"
 msgid "%s (Default)"
 msgstr "%s (par défaut)"
 
-#: ../gtk/main.c:1714 ../coreapi/callbacks.c:774
+#: ../gtk/main.c:1714
+#: ../coreapi/callbacks.c:774
 #, c-format
 msgid "We are transferred to %s"
 msgstr "Transfert vers %s"
@@ -201,13 +200,15 @@ msgstr "Un visiophone libre"
 
 #: ../gtk/friendlist.c:335
 msgid "Add to addressbook"
-msgstr ""
+msgstr "Ajouter au carnet d'adresse"
 
 #: ../gtk/friendlist.c:509
 msgid "Presence status"
 msgstr "Info de présence"
 
-#: ../gtk/friendlist.c:526 ../gtk/propertybox.c:362 ../gtk/contact.ui.h:1
+#: ../gtk/friendlist.c:526
+#: ../gtk/propertybox.c:362
+#: ../gtk/contact.ui.h:1
 msgid "Name"
 msgstr "Nom"
 
@@ -269,11 +270,13 @@ msgstr "Débit min. (kbit/s)"
 msgid "Parameters"
 msgstr "Paramètres"
 
-#: ../gtk/propertybox.c:430 ../gtk/propertybox.c:573
+#: ../gtk/propertybox.c:430
+#: ../gtk/propertybox.c:573
 msgid "Enabled"
 msgstr "Activé"
 
-#: ../gtk/propertybox.c:432 ../gtk/propertybox.c:573
+#: ../gtk/propertybox.c:432
+#: ../gtk/propertybox.c:573
 msgid "Disabled"
 msgstr "Désactivé"
 
@@ -283,7 +286,7 @@ msgstr "Compte"
 
 #: ../gtk/propertybox.c:759
 msgid "English"
-msgstr ""
+msgstr "Anglais"
 
 #: ../gtk/propertybox.c:760
 msgid "French"
@@ -291,31 +294,31 @@ msgstr "Français"
 
 #: ../gtk/propertybox.c:761
 msgid "Swedish"
-msgstr ""
+msgstr "Suédois"
 
 #: ../gtk/propertybox.c:762
 msgid "Italian"
-msgstr ""
+msgstr "Italien"
 
 #: ../gtk/propertybox.c:763
 msgid "Spanish"
-msgstr ""
+msgstr "Espagnol"
 
 #: ../gtk/propertybox.c:764
 msgid "Brazilian Portugese"
-msgstr ""
+msgstr "Portugais brésilien"
 
 #: ../gtk/propertybox.c:765
 msgid "Polish"
-msgstr ""
+msgstr "Polonais"
 
 #: ../gtk/propertybox.c:766
 msgid "German"
-msgstr ""
+msgstr "Allemand"
 
 #: ../gtk/propertybox.c:767
 msgid "Russian"
-msgstr ""
+msgstr "Russe"
 
 #: ../gtk/propertybox.c:768
 msgid "Japanese"
@@ -323,15 +326,15 @@ msgstr "日本語"
 
 #: ../gtk/propertybox.c:769
 msgid "Dutch"
-msgstr ""
+msgstr "Néérlandais"
 
 #: ../gtk/propertybox.c:770
 msgid "Hungarian"
-msgstr ""
+msgstr "Hongrois"
 
 #: ../gtk/propertybox.c:771
 msgid "Czech"
-msgstr ""
+msgstr "Tchèque"
 
 #: ../gtk/propertybox.c:772
 msgid "Chinese"
@@ -339,22 +342,19 @@ msgstr "简体中文"
 
 #: ../gtk/propertybox.c:773
 msgid "Traditional Chinese"
-msgstr ""
+msgstr "Chinois traditionnel"
 
 #: ../gtk/propertybox.c:774
 msgid "Norwegian"
-msgstr ""
+msgstr "Norvégien"
 
 #: ../gtk/propertybox.c:775
 msgid "Hebrew"
-msgstr ""
+msgstr "Hébreu"
 
 #: ../gtk/propertybox.c:842
-msgid ""
-"You need to restart linphone for the new language selection to take effect."
-msgstr ""
-"La nouvelle selection de langue prendra effet au prochain démarrage de "
-"linphone."
+msgid "You need to restart linphone for the new language selection to take effect."
+msgstr "La nouvelle selection de langue prendra effet au prochain démarrage de linphone."
 
 #: ../gtk/propertybox.c:912
 msgid "None"
@@ -432,7 +432,8 @@ msgstr ""
 msgid "Username:"
 msgstr "Nom d'utilisateur:"
 
-#: ../gtk/setupwizard.c:93 ../gtk/password.ui.h:4
+#: ../gtk/setupwizard.c:93
+#: ../gtk/password.ui.h:4
 msgid "Password:"
 msgstr "Mot de passe:"
 
@@ -441,14 +442,12 @@ msgid "Enter your account informations"
 msgstr ""
 
 #: ../gtk/setupwizard.c:120
-#, fuzzy
 msgid "Username*"
-msgstr "Nom d'utilisateur"
+msgstr "Nom d'utilisateur*"
 
 #: ../gtk/setupwizard.c:121
-#, fuzzy
 msgid "Password*"
-msgstr "Mot de passe"
+msgstr "Mot de passe*"
 
 #: ../gtk/setupwizard.c:124
 msgid "Domain*"
@@ -463,14 +462,12 @@ msgid "(*) Required fields"
 msgstr ""
 
 #: ../gtk/setupwizard.c:298
-#, fuzzy
 msgid "Username: (*)"
-msgstr "Nom d'utilisateur:"
+msgstr "Nom d'utilisateur: (*)"
 
 #: ../gtk/setupwizard.c:300
-#, fuzzy
 msgid "Password: (*)"
-msgstr "Mot de passe:"
+msgstr "Mot de passe: (*)"
 
 #: ../gtk/setupwizard.c:302
 msgid "Email: (*)"
@@ -492,8 +489,7 @@ msgstr ""
 
 #: ../gtk/setupwizard.c:387
 msgid ""
-"Please validate your account by clicking on the link we just sent you by "
-"email.\n"
+"Please validate your account by clicking on the link we just sent you by email.\n"
 "Then come back here and press Next button."
 msgstr ""
 
@@ -524,13 +520,14 @@ msgstr ""
 
 #: ../gtk/setupwizard.c:588
 msgid "Error"
-msgstr ""
+msgstr "Erreur"
 
 #: ../gtk/setupwizard.c:592
 msgid "Terminating"
 msgstr ""
 
-#: ../gtk/incall_view.c:69 ../gtk/incall_view.c:90
+#: ../gtk/incall_view.c:69
+#: ../gtk/incall_view.c:90
 #, c-format
 msgid "Call #%i"
 msgstr "Appel #%i"
@@ -540,7 +537,8 @@ msgstr "Appel #%i"
 msgid "Transfer to call #%i with %s"
 msgstr "Transférer vers l'appel #%i avec %s"
 
-#: ../gtk/incall_view.c:209 ../gtk/incall_view.c:212
+#: ../gtk/incall_view.c:209
+#: ../gtk/incall_view.c:212
 #, fuzzy
 msgid "Not used"
 msgstr "Non trouvé"
@@ -571,14 +569,16 @@ msgstr "Redirection"
 msgid "Through a relay server"
 msgstr ""
 
-#: ../gtk/incall_view.c:238 ../gtk/incall_view.c:242
+#: ../gtk/incall_view.c:238
+#: ../gtk/incall_view.c:242
 #, c-format
 msgid ""
 "download: %f\n"
 "upload: %f (kbit/s)"
 msgstr ""
 
-#: ../gtk/incall_view.c:341 ../gtk/main.ui.h:12
+#: ../gtk/incall_view.c:341
+#: ../gtk/main.ui.h:12
 msgid "Hang up"
 msgstr ""
 
@@ -586,7 +586,8 @@ msgstr ""
 msgid "<b>Calling...</b>"
 msgstr "<b>Tentative d'appel...</b>"
 
-#: ../gtk/incall_view.c:433 ../gtk/incall_view.c:646
+#: ../gtk/incall_view.c:433
+#: ../gtk/incall_view.c:646
 msgid "00::00::00"
 msgstr ""
 
@@ -614,7 +615,8 @@ msgstr "très faible"
 msgid "too bad"
 msgstr "nulle"
 
-#: ../gtk/incall_view.c:490 ../gtk/incall_view.c:506
+#: ../gtk/incall_view.c:490
+#: ../gtk/incall_view.c:506
 msgid "unavailable"
 msgstr "indisponible"
 
@@ -631,7 +633,8 @@ msgstr "Sécurisé par ZRTP- [jeton: %s]"
 msgid "Set unverified"
 msgstr "Marquer comme non vérifié"
 
-#: ../gtk/incall_view.c:617 ../gtk/main.ui.h:5
+#: ../gtk/incall_view.c:617
+#: ../gtk/main.ui.h:5
 msgid "Set verified"
 msgstr "Marquer comme vérifié"
 
@@ -661,20 +664,19 @@ msgid "Transfer in progress"
 msgstr ""
 
 #: ../gtk/incall_view.c:734
-#, fuzzy
 msgid "Transfer done."
-msgstr "Transfert"
+msgstr "Transfert terminé"
 
 #: ../gtk/incall_view.c:737
-#, fuzzy
 msgid "Transfer failed."
-msgstr "Transfert"
+msgstr "Transfert échoué"
 
 #: ../gtk/incall_view.c:781
 msgid "Resume"
 msgstr "Reprendre"
 
-#: ../gtk/incall_view.c:788 ../gtk/main.ui.h:9
+#: ../gtk/incall_view.c:788
+#: ../gtk/main.ui.h:9
 msgid "Pause"
 msgstr "Pause"
 
@@ -692,9 +694,8 @@ msgid "Send"
 msgstr "Envoyer"
 
 #: ../gtk/main.ui.h:3
-#, fuzzy
 msgid "End conference"
-msgstr "En conférence"
+msgstr "Fin de conférence"
 
 #: ../gtk/main.ui.h:4
 msgid "label"
@@ -702,7 +703,7 @@ msgstr ""
 
 #: ../gtk/main.ui.h:8
 msgid "Video"
-msgstr ""
+msgstr "Vidéo"
 
 #: ../gtk/main.ui.h:10
 msgid "Mute"
@@ -758,17 +759,19 @@ msgstr ""
 
 #: ../gtk/main.ui.h:25
 msgid "SIP address or phone number:"
-msgstr "Addresse SIP ou numéro"
+msgstr "Adresse SIP ou numéro"
 
 #: ../gtk/main.ui.h:26
 msgid "Initiate a new call"
 msgstr "Démarrer un nouvel appel"
 
-#: ../gtk/main.ui.h:27 ../gtk/parameters.ui.h:48
+#: ../gtk/main.ui.h:27
+#: ../gtk/parameters.ui.h:48
 msgid "Add"
 msgstr "Ajouter"
 
-#: ../gtk/main.ui.h:28 ../gtk/parameters.ui.h:49
+#: ../gtk/main.ui.h:28
+#: ../gtk/parameters.ui.h:49
 msgid "Edit"
 msgstr "Editer"
 
@@ -788,7 +791,8 @@ msgstr ""
 msgid "*"
 msgstr ""
 
-#: ../gtk/main.ui.h:33 ../gtk/parameters.ui.h:7
+#: ../gtk/main.ui.h:33
+#: ../gtk/parameters.ui.h:7
 msgid "C"
 msgstr ""
 
@@ -860,11 +864,13 @@ msgstr "Appels récents"
 msgid "My current identity:"
 msgstr "Mon identité sip:"
 
-#: ../gtk/main.ui.h:51 ../gtk/tunnel_config.ui.h:7
+#: ../gtk/main.ui.h:51
+#: ../gtk/tunnel_config.ui.h:7
 msgid "Username"
 msgstr "Nom d'utilisateur"
 
-#: ../gtk/main.ui.h:52 ../gtk/tunnel_config.ui.h:8
+#: ../gtk/main.ui.h:52
+#: ../gtk/tunnel_config.ui.h:8
 msgid "Password"
 msgstr "Mot de passe"
 
@@ -1113,7 +1119,7 @@ msgstr "<b>Protocoles réseaux et ports</b>"
 
 #: ../gtk/parameters.ui.h:23
 msgid "Direct connection to the Internet"
-msgstr "Connection directe à l'Internet"
+msgstr "Connexion directe à l'Internet"
 
 #: ../gtk/parameters.ui.h:24
 msgid "Behind NAT / Firewall (specify gateway IP below)"
@@ -1121,7 +1127,7 @@ msgstr "Derrière un pare-feu (spécifier la passerelle ci dessous)"
 
 #: ../gtk/parameters.ui.h:25
 msgid "Public IP address:"
-msgstr "Addresse IP publique:"
+msgstr "Adresse IP publique:"
 
 #: ../gtk/parameters.ui.h:26
 msgid "Behind NAT / Firewall (use STUN to resolve)"
@@ -1190,9 +1196,7 @@ msgstr "Paramètres multimedia"
 
 #: ../gtk/parameters.ui.h:42
 msgid "This section defines your SIP address when not using a SIP account"
-msgstr ""
-"Cette rubrique permet de définir son addresse SIP lorsqu'on ne possède pas "
-"de compte SIP"
+msgstr "Cette rubrique permet de définir son addresse SIP lorsqu'on ne possède pas de compte SIP"
 
 #: ../gtk/parameters.ui.h:43
 msgid "Your display name (eg: John Doe):"
@@ -1234,11 +1238,13 @@ msgstr "<b>Sécurité</b>"
 msgid "Manage SIP Accounts"
 msgstr "Gérer mes comptes SIP"
 
-#: ../gtk/parameters.ui.h:55 ../gtk/tunnel_config.ui.h:4
+#: ../gtk/parameters.ui.h:55
+#: ../gtk/tunnel_config.ui.h:4
 msgid "Enable"
 msgstr "Activer"
 
-#: ../gtk/parameters.ui.h:56 ../gtk/tunnel_config.ui.h:5
+#: ../gtk/parameters.ui.h:56
+#: ../gtk/tunnel_config.ui.h:5
 msgid "Disable"
 msgstr "Désactiver"
 
@@ -1263,13 +1269,8 @@ msgid "Enable adaptive rate control"
 msgstr "Activer le control de débit adaptatif."
 
 #: ../gtk/parameters.ui.h:62
-msgid ""
-"<i>Adaptive rate control is a technique to dynamically guess the available "
-"bandwidth during a call.</i>"
-msgstr ""
-"<i>Le control de débit adaptatif est une technique pour adapter la qualité "
-"de l'audio et de la video en fonction de la bande passante disponible, "
-"durant l'appel.</i>"
+msgid "<i>Adaptive rate control is a technique to dynamically guess the available bandwidth during a call.</i>"
+msgstr "<i>Le control de débit adaptatif est une technique pour adapter la qualité de l'audio et de la video en fonction de la bande passante disponible, durant l'appel.</i>"
 
 #: ../gtk/parameters.ui.h:63
 msgid "<b>Bandwidth control</b>"
@@ -1350,9 +1351,8 @@ msgid "Audio codec"
 msgstr "Codecs audio"
 
 #: ../gtk/call_statistics.ui.h:3
-#, fuzzy
 msgid "Video codec"
-msgstr "Codecs video"
+msgstr "Codecs vidéo"
 
 #: ../gtk/call_statistics.ui.h:4
 msgid "Audio IP bandwidth usage"
@@ -1437,11 +1437,8 @@ msgid "Could not resolve this number."
 msgstr "La destination n'a pu être trouvée."
 
 #: ../coreapi/linphonecore.c:2121
-msgid ""
-"Could not parse given sip address. A sip url usually looks like sip:"
-"user@domain"
-msgstr ""
-"Adresse SIP mal formulée. Une address sip ressemble à <sip:nom@domaine>"
+msgid "Could not parse given sip address. A sip url usually looks like sip:user@domain"
+msgstr "Adresse SIP mal formulée. Une address sip ressemble à <sip:nom@domaine>"
 
 #: ../coreapi/linphonecore.c:2312
 msgid "Contacting"
@@ -1569,12 +1566,8 @@ msgid "Unknown-bug"
 msgstr "Bug inconnu"
 
 #: ../coreapi/proxy.c:204
-msgid ""
-"The sip proxy address you entered is invalid, it must start with \"sip:\" "
-"followed by a hostname."
-msgstr ""
-"L'addresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" "
-"suivie par un nom de domaine."
+msgid "The sip proxy address you entered is invalid, it must start with \"sip:\" followed by a hostname."
+msgstr "L'addresse SIP du proxy est invalide. Elle doit commencer par \"sip:\" suivie par un nom de domaine."
 
 #: ../coreapi/proxy.c:210
 msgid ""
@@ -1582,8 +1575,7 @@ msgid ""
 "It should look like sip:username@proxydomain, such as sip:alice@example.net"
 msgstr ""
 "L'identité SIP que vous avez fourni est invalide.\n"
-"Elle doit être de la forme sip:username@domain, comme par example sip:"
-"alice@example.net"
+"Elle doit être de la forme sip:username@domain, comme par example sip:alice@example.net"
 
 #: ../coreapi/proxy.c:1053
 #, c-format