diff --git a/src/phone.c b/src/phone.c index fb8d22b..ebe64e5 100644 --- a/src/phone.c +++ b/src/phone.c @@ -739,21 +739,23 @@ void phone_code_clear(Phone * phone) /* contacts */ /* phone_contacts_call_selected */ -void phone_contacts_call_selected(Phone * phone) +int phone_contacts_call_selected(Phone * phone) { + int ret; GtkTreeSelection * treesel; GtkTreeIter iter; gchar * number; if((treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW( phone->co_view))) == NULL) - return; + return -1; if(gtk_tree_selection_get_selected(treesel, NULL, &iter) != TRUE) - return; + return -1; gtk_tree_model_get(GTK_TREE_MODEL(phone->co_store), &iter, PHONE_CONTACT_COLUMN_NUMBER, &number, -1); - _phone_call_number(phone, number); + ret = _phone_call_number(phone, number); g_free(number); + return ret; } @@ -910,12 +912,16 @@ int phone_dialer_append(Phone * phone, char character) /* phone_dialer_call */ -void phone_dialer_call(Phone * phone, char const * number) +int phone_dialer_call(Phone * phone, char const * number) { /* FIXME check if it's either a name or number */ if(number == NULL) + { + if(phone->di_window == NULL) + return -1; number = gtk_entry_get_text(GTK_ENTRY(phone->di_entry)); - _phone_call_number(phone, number); + } + return _phone_call_number(phone, number); } @@ -1202,24 +1208,26 @@ void phone_logs_append(Phone * phone, PhoneCallType type, char const * number) /* phone_logs_call_selected */ -void phone_logs_call_selected(Phone * phone) +int phone_logs_call_selected(Phone * phone) /* XXX code duplication */ { + int ret; GtkTreeSelection * treesel; GtkTreeIter iter; gchar * number = NULL; if((treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW( phone->lo_view))) == NULL) - return; + return -1; if(gtk_tree_selection_get_selected(treesel, NULL, &iter) != TRUE) - return; + return -1; gtk_tree_model_get(GTK_TREE_MODEL(phone->lo_store), &iter, PHONE_LOGS_COLUMN_NUMBER, &number, -1); if(number == NULL) - return; - _phone_call_number(phone, number); + return -1; + ret = _phone_call_number(phone, number); g_free(number); + return ret; } @@ -1253,8 +1261,9 @@ void phone_logs_write_selected(Phone * phone) /* messages */ /* phone_messages_call_selected */ -void phone_messages_call_selected(Phone * phone) +int phone_messages_call_selected(Phone * phone) { + int ret; GtkWidget * view; GtkTreeSelection * treesel; GtkTreeIter iter; @@ -1262,16 +1271,17 @@ void phone_messages_call_selected(Phone * phone) view = _phone_messages_get_view(phone); if((treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(view))) == NULL) - return; + return -1; if(gtk_tree_selection_get_selected(treesel, NULL, &iter) != TRUE) - return; + return -1; _phone_messages_get_iter(phone, view, &iter); gtk_tree_model_get(GTK_TREE_MODEL(phone->me_store), &iter, PHONE_MESSAGE_COLUMN_NUMBER, &number, -1); if(number == NULL) - return; - _phone_call_number(phone, number); + return -1; + ret = _phone_call_number(phone, number); g_free(number); + return ret; } @@ -1442,15 +1452,15 @@ void phone_messages_write(Phone * phone, char const * number, char const * text) /* read */ /* phone_read_call */ -void phone_read_call(Phone * phone) +int phone_read_call(Phone * phone) { char const * number; if(phone->re_window == NULL) - return; + return -1; if((number = gtk_label_get_text(GTK_LABEL(phone->re_number))) == NULL) - return; - _phone_call_number(phone, number); + return -1; + return _phone_call_number(phone, number); } @@ -3439,8 +3449,9 @@ static int _phone_call_number(Phone * phone, char const * number) { if(number == NULL) return -1; - modem_request_type(phone->modem, MODEM_REQUEST_CALL, - MODEM_CALL_TYPE_VOICE, number, 0); + if(modem_request_type(phone->modem, MODEM_REQUEST_CALL, + MODEM_CALL_TYPE_VOICE, number, 0) != 0) + return -1; /* add a log entry */ phone_logs_append(phone, PHONE_CALL_TYPE_OUTGOING, number); return 0; diff --git a/src/phone.h b/src/phone.h index 85ac698..cf8041c 100644 --- a/src/phone.h +++ b/src/phone.h @@ -55,7 +55,7 @@ void phone_code_clear(Phone * phone); void phone_code_enter(Phone * phone); /* contacts */ -void phone_contacts_call_selected(Phone * phone); +int phone_contacts_call_selected(Phone * phone); void phone_contacts_delete_selected(Phone * phone); void phone_contacts_edit_selected(Phone * phone); void phone_contacts_new(Phone * phone); @@ -66,7 +66,7 @@ void phone_contacts_write_selected(Phone * phone); /* dialer */ int phone_dialer_append(Phone * phone, char character); -void phone_dialer_call(Phone * phone, char const * number); +int phone_dialer_call(Phone * phone, char const * number); void phone_dialer_clear(Phone * phone); void phone_dialer_hangup(Phone * phone); @@ -93,12 +93,12 @@ void phone_show_write(Phone * phone, gboolean show, ...); /* logs */ void phone_logs_append(Phone * phone, PhoneCallType type, char const * number); -void phone_logs_call_selected(Phone * phone); +int phone_logs_call_selected(Phone * phone); void phone_logs_clear(Phone * phone); void phone_logs_write_selected(Phone * phone); /* messages */ -void phone_messages_call_selected(Phone * phone); +int phone_messages_call_selected(Phone * phone); void phone_messages_delete_selected(Phone * phone); void phone_messages_read_selected(Phone * phone); void phone_messages_set(Phone * phone, unsigned int index, char const * number, @@ -113,7 +113,7 @@ int phone_unload(Phone * phone, char const * plugin); void phone_unload_all(Phone * phone); /* read */ -void phone_read_call(Phone * phone); +int phone_read_call(Phone * phone); void phone_read_delete(Phone * phone); void phone_read_forward(Phone * phone); void phone_read_reply(Phone * phone);