~ubuntu-branches/ubuntu/quantal/linphone/quantal

« back to all changes in this revision

Viewing changes to gtk-glade/friendlist.c

  • Committer: Bazaar Package Importer
  • Author(s): Lionel Elie Mamane, Kilian Krause, Lionel Elie Mamane
  • Date: 2009-05-27 11:39:51 UTC
  • mfrom: (5.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20090527113951-jd525e5rlwluh617
[ Kilian Krause ]
* Remove -N from wget args in get-orig-source target as -O is already
  used.

[ Lionel Elie Mamane ]
* linphone: Fix file conflict with linphone-common (<= 3.1.2-1)
  (Closes: #528076)

Show diffs side-by-side

added added

removed removed

Lines of Context:
120
120
                                    GtkTreeViewColumn *column,
121
121
                                        gpointer         user_data)
122
122
{
 
123
        linphone_gtk_call_selected(treeview);
 
124
}
 
125
 
 
126
void linphone_gtk_contact_clicked(GtkTreeView     *treeview){
123
127
        linphone_gtk_set_selection_to_uri_bar(treeview);
124
128
}
125
129
 
195
199
        gtk_tree_view_column_set_min_width (column, 29);
196
200
        gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
197
201
 
 
202
        gtk_tree_view_column_set_visible(column,linphone_gtk_get_ui_config_int("friendlist_icon",1));
 
203
 
198
204
        renderer = gtk_cell_renderer_text_new ();
199
205
        column = gtk_tree_view_column_new_with_attributes (_("Name"),
200
206
                                                   renderer,
209
215
                                                   NULL);
210
216
        g_object_set (G_OBJECT(column), "resizable", TRUE, NULL);
211
217
        gtk_tree_view_append_column (GTK_TREE_VIEW (friendlist), column);
 
218
        gtk_tree_view_column_set_visible(column,linphone_gtk_get_ui_config_int("friendlist_status",1));
212
219
        
213
220
        select = gtk_tree_view_get_selection (GTK_TREE_VIEW (friendlist));
214
221
        gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE);
356
363
void linphone_gtk_contact_ok(GtkWidget *button){
357
364
        GtkWidget *w=gtk_widget_get_toplevel(button);
358
365
        LinphoneFriend *lf=(LinphoneFriend*)g_object_get_data(G_OBJECT(w),"friend_ref");
359
 
        gboolean editing=FALSE,show_presence,allow_presence;
 
366
        char *fixed_uri=NULL;
 
367
        gboolean show_presence,allow_presence;
360
368
        const gchar *name,*uri;
361
369
        if (lf==NULL){
362
370
                lf=linphone_friend_new();
363
 
        }else{
364
 
                editing=TRUE;
365
371
        }
366
372
        name=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"name")));
367
373
        uri=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(w,"sip_address")));
368
374
        show_presence=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"show_presence")));
369
375
        allow_presence=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(w,"allow_presence")));
370
 
        linphone_friend_set_sip_addr(lf,uri);
 
376
        linphone_core_interpret_friend_uri(linphone_gtk_get_core(),uri,&fixed_uri);
 
377
        if (fixed_uri==NULL){
 
378
                linphone_gtk_display_something(GTK_MESSAGE_WARNING,_("Invalid sip contact !"));
 
379
                return ;
 
380
        }
 
381
        linphone_friend_set_sip_addr(lf,fixed_uri);
 
382
        ms_free(fixed_uri);
371
383
        linphone_friend_set_name(lf,name);
372
384
        linphone_friend_send_subscribe(lf,show_presence);
373
385
        linphone_friend_set_inc_subscribe_policy(lf,allow_presence==TRUE ? LinphoneSPAccept : LinphoneSPDeny);
374
 
        if (editing){
 
386
        if (linphone_friend_in_list(lf)) {
375
387
                linphone_friend_done(lf);
376
388
        }else{
377
389
                linphone_core_add_friend(linphone_gtk_get_core(),lf);
385
397
        GtkWidget *menu_item;
386
398
        gchar *call_label=NULL;
387
399
        gchar *text_label=NULL;
 
400
        gchar *edit_label=NULL;
 
401
        gchar *delete_label=NULL;
388
402
        gchar *name=NULL;
389
403
        GtkTreeSelection *select;
390
404
        GtkTreeIter iter;
391
405
        GtkTreeModel *model;
392
406
        GtkWidget *image;
 
407
        LinphoneCore *lc=linphone_gtk_get_core();
 
408
        LinphoneProxyConfig *cfg=NULL;
 
409
        SipSetupContext * ssc=NULL;
 
410
 
 
411
        linphone_core_get_default_proxy(lc,&cfg);
 
412
        if (cfg){
 
413
                ssc=linphone_proxy_config_get_sip_setup_context(cfg);
 
414
        }
 
415
 
393
416
        g_signal_connect(G_OBJECT(menu), "selection-done", G_CALLBACK (gtk_widget_destroy), NULL);
394
417
        select = gtk_tree_view_get_selection(GTK_TREE_VIEW(contact_list));
395
418
        if (gtk_tree_selection_get_selected (select, &model, &iter)){
396
419
                gtk_tree_model_get(model, &iter,FRIEND_NAME , &name, -1);
397
420
                call_label=g_strdup_printf(_("Call %s"),name);
398
421
                text_label=g_strdup_printf(_("Send text to %s"),name);
 
422
                edit_label=g_strdup_printf(_("Edit contact '%s'"),name);
 
423
                delete_label=g_strdup_printf(_("Delete contact '%s'"),name);
399
424
                g_free(name);
400
 
        }else g_warning("No selection");
 
425
        }
401
426
        if (call_label){
402
427
                menu_item=gtk_image_menu_item_new_with_label(call_label);
403
428
                image=gtk_image_new_from_stock(GTK_STOCK_NETWORK,GTK_ICON_SIZE_MENU);
416
441
                gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
417
442
                g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_chat_selected,contact_list);
418
443
        }
419
 
        menu_item=gtk_image_menu_item_new_from_stock(GTK_STOCK_EDIT,NULL);
420
 
        gtk_widget_show(menu_item);
421
 
        gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
422
 
        g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_edit_contact,contact_list);
423
 
        menu_item=gtk_image_menu_item_new_from_stock(GTK_STOCK_DELETE,NULL);
424
 
        gtk_widget_show(menu_item);
425
 
        gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
426
 
        g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_remove_contact,contact_list);
 
444
        if (edit_label){
 
445
                menu_item=gtk_image_menu_item_new_with_label(edit_label);
 
446
                image=gtk_image_new_from_stock(GTK_STOCK_EDIT,GTK_ICON_SIZE_MENU);
 
447
                gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
 
448
                gtk_widget_show(image);
 
449
                gtk_widget_show(menu_item);
 
450
                gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
 
451
                g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_edit_contact,contact_list);
 
452
        }
 
453
        if (delete_label){
 
454
                menu_item=gtk_image_menu_item_new_with_label(delete_label);
 
455
                image=gtk_image_new_from_stock(GTK_STOCK_DELETE,GTK_ICON_SIZE_MENU);
 
456
                gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
 
457
                gtk_widget_show(image);
 
458
                gtk_widget_show(menu_item);
 
459
                gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
 
460
                g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_remove_contact,contact_list);
 
461
        }
 
462
        
 
463
 
 
464
        if (ssc && (sip_setup_context_get_capabilities(ssc) & SIP_SETUP_CAP_BUDDY_LOOKUP)) {
 
465
                gchar *tmp=g_strdup_printf(_("Add new contact from %s directory"),linphone_proxy_config_get_domain(cfg));
 
466
                menu_item=gtk_image_menu_item_new_with_label(tmp);
 
467
                g_free(tmp);
 
468
                image=gtk_image_new_from_stock(GTK_STOCK_ADD,GTK_ICON_SIZE_MENU);
 
469
                gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item),image);
 
470
                gtk_widget_show(image);
 
471
                gtk_widget_show(menu_item);
 
472
                gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
 
473
                g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_show_buddy_lookup_window,ssc);
 
474
                gtk_widget_show(menu);
 
475
        }
 
476
        
427
477
        menu_item=gtk_image_menu_item_new_from_stock(GTK_STOCK_ADD,NULL);
428
478
        gtk_widget_show(menu_item);
429
479
        gtk_menu_shell_append(GTK_MENU_SHELL(menu),menu_item);
430
480
        g_signal_connect_swapped(G_OBJECT(menu_item),"activate",(GCallback)linphone_gtk_add_contact,contact_list);
431
481
        gtk_widget_show(menu);
432
482
        gtk_menu_attach_to_widget (GTK_MENU (menu), contact_list, NULL);
 
483
 
433
484
        if (call_label) g_free(call_label);
434
485
        if (text_label) g_free(text_label);
 
486
        if (edit_label) g_free(edit_label);
 
487
        if (delete_label) g_free(delete_label);
435
488
        return menu;
436
489
}
437
490