Skip to content
Snippets Groups Projects
Commit 12d9a9de authored by Pierre-Luc Beaudoin's avatar Pierre-Luc Beaudoin
Browse files

Working hang up when dialing

parent b7b7cdbd
Branches
Tags
No related merge requests found
...@@ -201,7 +201,7 @@ sflphone_keypad( guint keyval, gchar * key) ...@@ -201,7 +201,7 @@ sflphone_keypad( guint keyval, gchar * key)
sflphone_place_call(c); sflphone_place_call(c);
break; break;
case 65307: /* ESCAPE */ case 65307: /* ESCAPE */
sflphone_hang_up(c); dbus_hang_up(c);
break; break;
case 65288: /* BACKSPACE */ case 65288: /* BACKSPACE */
{ /* Brackets mandatory because of local vars */ { /* Brackets mandatory because of local vars */
...@@ -214,11 +214,11 @@ sflphone_keypad( guint keyval, gchar * key) ...@@ -214,11 +214,11 @@ sflphone_keypad( guint keyval, gchar * key)
g_free(c->from); g_free(c->from);
c->from = g_strconcat("\"\" <", c->to, ">", NULL); c->from = g_strconcat("\"\" <", c->to, ">", NULL);
screen_set_call(c); screen_set_call(c);
update_call_tree(); update_call_tree(c);
} }
else if(strlen(c->to) == 1) else if(strlen(c->to) == 1)
{ {
sflphone_hang_up(c); dbus_hang_up(c);
} }
} }
...@@ -241,7 +241,7 @@ sflphone_keypad( guint keyval, gchar * key) ...@@ -241,7 +241,7 @@ sflphone_keypad( guint keyval, gchar * key)
g_free(c->from); g_free(c->from);
c->from = g_strconcat("\"\" <", c->to, ">", NULL); c->from = g_strconcat("\"\" <", c->to, ">", NULL);
screen_set_call(c); screen_set_call(c);
update_call_tree(); update_call_tree(c);
} }
break; break;
} }
...@@ -254,12 +254,24 @@ sflphone_keypad( guint keyval, gchar * key) ...@@ -254,12 +254,24 @@ sflphone_keypad( guint keyval, gchar * key)
switch (keyval) switch (keyval)
{ {
case 65307: /* ESCAPE */ case 65307: /* ESCAPE */
sflphone_hang_up(c); dbus_hang_up(c);
break; break;
} }
} }
else // Not in a call, not dialing, create a new call else
{
call_t * c = (call_t*) call_list_get_by_state (CALL_STATE_RINGING);
if(c) // Currently ring => edit number
{ {
switch (keyval)
{
case 65307: /* ESCAPE */
dbus_hang_up(c);
break;
}
}
else
{ // Not in a call, not dialing, create a new call
if (keyval < 255 || (keyval >65453 && keyval < 65466)) if (keyval < 255 || (keyval >65453 && keyval < 65466))
{ {
/* Brackets mandatory because of local vars */ /* Brackets mandatory because of local vars */
...@@ -270,7 +282,8 @@ sflphone_keypad( guint keyval, gchar * key) ...@@ -270,7 +282,8 @@ sflphone_keypad( guint keyval, gchar * key)
c->to = g_strdup(key); c->to = g_strdup(key);
call_list_add(c); call_list_add(c);
screen_set_call(c); screen_set_call(c);
update_call_tree(); update_call_tree_add(c);
}
} }
} }
} }
......
...@@ -404,7 +404,7 @@ update_call_tree (call_t * c) ...@@ -404,7 +404,7 @@ update_call_tree (call_t * c)
{ {
pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/hold.svg", NULL); pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/hold.svg", NULL);
} }
else if (c->state == CALL_STATE_RINGING) else if (c->state == CALL_STATE_INCOMING || c->state == CALL_STATE_RINGING)
{ {
pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/ring.svg", NULL); pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/ring.svg", NULL);
} }
...@@ -412,6 +412,10 @@ update_call_tree (call_t * c) ...@@ -412,6 +412,10 @@ update_call_tree (call_t * c)
{ {
pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/current.svg", NULL); pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/current.svg", NULL);
} }
else if (c->state == CALL_STATE_DIALING)
{
pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/dial.svg", NULL);
}
//Resize it //Resize it
if(pixbuf) if(pixbuf)
{ {
...@@ -446,17 +450,35 @@ update_call_tree_add (call_t * c) ...@@ -446,17 +450,35 @@ update_call_tree_add (call_t * c)
// New call in the list // New call in the list
gchar * markup; gchar * markup;
if (c->state == CALL_STATE_CURRENT)
{
markup = g_markup_printf_escaped("<big><b>%s</b></big>\n"
"%s",
call_get_name(c),
call_get_number(c));
}
else
{
markup = g_markup_printf_escaped("<b>%s</b>\n" markup = g_markup_printf_escaped("<b>%s</b>\n"
"%s", "%s",
call_get_name(c), call_get_name(c),
call_get_number(c)); call_get_number(c));
}
gtk_list_store_append (store, &iter); gtk_list_store_append (store, &iter);
if (c->state == CALL_STATE_INCOMING) if (c->state == CALL_STATE_HOLD)
{
pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/hold.svg", NULL);
}
else if (c->state == CALL_STATE_INCOMING || c->state == CALL_STATE_RINGING)
{ {
pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/ring.svg", NULL); pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/ring.svg", NULL);
} }
else if (c->state == CALL_STATE_CURRENT)
{
pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/current.svg", NULL);
}
else if (c->state == CALL_STATE_DIALING) else if (c->state == CALL_STATE_DIALING)
{ {
pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/dial.svg", NULL); pixbuf = gdk_pixbuf_new_from_file(PIXMAPS_DIR "/dial.svg", NULL);
...@@ -480,5 +502,7 @@ update_call_tree_add (call_t * c) ...@@ -480,5 +502,7 @@ update_call_tree_add (call_t * c)
//g_free(markup); //g_free(markup);
update_buttons(); update_buttons();
//return row_ref;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment