Skip to content
Snippets Groups Projects
Commit 26939113 authored by Alexandre Savard's avatar Alexandre Savard
Browse files

[#2006] Make calltree_remove_call recursive (for GtkTreeStore)

parent 95bff449
No related branches found
No related tags found
No related merge requests found
......@@ -139,7 +139,7 @@ sflphone_ringing(callable_obj_t * c )
sflphone_hung_up( callable_obj_t * c)
{
calllist_remove( current_calls, c->_callID);
calltree_remove_call(current_calls, c);
calltree_remove_call(current_calls, c, NULL);
c->_state = CALL_STATE_DIALING;
update_menus();
#if GTK_CHECK_VERSION(2,10,0)
......
......@@ -112,7 +112,7 @@ calllist_clean_history( void )
callable_obj_t* c = calllist_get_nth( history , i );
// Delete the call from the call tree
DEBUG("Delete calls");
calltree_remove_call(history , c);
calltree_remove_call(history, c, NULL);
}
calllist_reset( history );
}
......@@ -122,7 +122,7 @@ void
calllist_remove_from_history( callable_obj_t* c )
{
calllist_remove( history, c->_callID );
calltree_remove_call( history, c );
calltree_remove_call(history, c, NULL);
DEBUG("Size of history = %i" , calllist_get_size( history ));
}
......
......@@ -314,19 +314,24 @@ calltree_create (calltab_t* tab, gboolean searchbar_type)
}
void
calltree_remove_call (calltab_t* tab, callable_obj_t * c)
calltree_remove_call (calltab_t* tab, callable_obj_t * c, GtkTreeIter *parent)
{
GtkTreeIter iter;
GValue val;
callable_obj_t * iterCall;
GtkTreeStore* store = tab->store;
int nbChild = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL);
int nbChild = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), parent);
int i;
for( i = 0; i < nbChild; i++)
{
if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, NULL, i))
if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter, parent, i))
{
if(gtk_tree_model_iter_has_child(GTK_TREE_MODEL(store), &iter))
{
calltree_remove_call (tab, c, &iter);
}
val.g_type = 0;
gtk_tree_model_get_value (GTK_TREE_MODEL(store), &iter, 2, &val);
......@@ -700,7 +705,7 @@ void calltree_add_conference (calltab_t* tab, const conference_obj_t* conf)
call = calllist_get (tab, call_id);
// create_new_call_from_details (conf_id, conference_details, &c);
calltree_remove_call(tab, call);
calltree_remove_call(tab, call, NULL);
calltree_add_call (tab, call, &iter);
}
}
......@@ -739,8 +744,7 @@ void calltree_remove_conference (calltab_t* tab, const conference_obj_t* conf)
int nbParticipant;
int i;
int j;
int i, j;
for( i = 0; i < nbChild; i++)
{
if(gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(store), &iter_parent, NULL, i))
......
......@@ -54,7 +54,7 @@ calltree_update_call (calltab_t* ct, callable_obj_t * c, GtkTreeIter *parent);
* @param c The call to remove
*/
void
calltree_remove_call (calltab_t* ct, callable_obj_t * c);
calltree_remove_call (calltab_t* ct, callable_obj_t * c, GtkTreeIter *parent);
void
calltree_add_conference (calltab_t* tab, const conference_obj_t* conf);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment