From dd200e856768e306c30828284524994656e31533 Mon Sep 17 00:00:00 2001 From: Vivek Jain Date: Fri, 22 Jul 2005 08:42:58 +0000 Subject: Put back the fix I committed on 2005-03-31, not sure when it got reverted. 2005-07-22 Vivek Jain * share-folder.c : Put back the fix I committed on 2005-03-31, not sure when it got reverted. **Fixes #311217 svn path=/trunk/; revision=29843 --- plugins/groupwise-features/ChangeLog | 6 ++++ plugins/groupwise-features/share-folder.c | 54 +++++++++++++++++++++++-------- 2 files changed, 46 insertions(+), 14 deletions(-) (limited to 'plugins') diff --git a/plugins/groupwise-features/ChangeLog b/plugins/groupwise-features/ChangeLog index c192e841f7..25de91c0ac 100644 --- a/plugins/groupwise-features/ChangeLog +++ b/plugins/groupwise-features/ChangeLog @@ -1,3 +1,9 @@ +2005-07-22 Vivek Jain + + * share-folder.c : Put back the fix I committed on + 2005-03-31, not sure when it got reverted. + **Fixes #311217 + 2005-07-20 Shreyas Srinivasan * proxy.c: Fix #310710. Make code little smart. Stop diff --git a/plugins/groupwise-features/share-folder.c b/plugins/groupwise-features/share-folder.c index 1d43b2b001..b76ed73c2d 100644 --- a/plugins/groupwise-features/share-folder.c +++ b/plugins/groupwise-features/share-folder.c @@ -561,7 +561,6 @@ user_selected(GtkTreeSelection *selection, ShareFolder *sf) } } - static void add_right_clicked (GtkCellRenderer *renderer, gchar *arg1, ShareFolder *sf ) { @@ -569,14 +568,19 @@ add_right_clicked (GtkCellRenderer *renderer, gchar *arg1, ShareFolder *sf ) SharedUser *usr = NULL; EShUsers *user = NULL; char *email = NULL; - GtkTreeSelection *selection = NULL; - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW (sf->user_list)); - gtk_tree_selection_set_mode(selection, GTK_SELECTION_SINGLE); - if (! gtk_tree_selection_get_selected (selection, &(sf->model), &(sf->iter))); + GtkTreePath *path = NULL; + + path = gtk_tree_path_new_from_string (arg1); + if (!gtk_tree_model_get_iter ((GtkTreeModel *) sf->model, &(sf->iter), path)){ + gtk_tree_path_free (path); + return ; + } gtk_tree_model_get ((GtkTreeModel *) sf->model, &(sf->iter), 0, &email, 1, &right , -1); usr = find_node(sf->users_list, email); - if (!usr) - return ; + if (!usr) { + gtk_tree_path_free (path); + return; + } if(! usr->flag) /* if user was already existing one change the flag to update*/ usr->flag = usr->flag | 0x2; user = usr->user_node; @@ -587,18 +591,29 @@ add_right_clicked (GtkCellRenderer *renderer, gchar *arg1, ShareFolder *sf ) user->rights &= 0x6; gtk_list_store_set (GTK_LIST_STORE (sf->model), &(sf->iter), 1, FALSE, -1); } - + gtk_tree_path_free (path); } - static void +static void edit_right_clicked(GtkCellRenderer *renderer, gchar *arg1, ShareFolder *sf ) { gboolean right = FALSE; SharedUser *usr = NULL; EShUsers *user = NULL; char *email = NULL; + GtkTreePath *path = NULL; + + path = gtk_tree_path_new_from_string (arg1); + if (!gtk_tree_model_get_iter ((GtkTreeModel *) sf->model, &(sf->iter), path)) { + gtk_tree_path_free (path); + return; + } gtk_tree_model_get ((GtkTreeModel *) sf->model, &(sf->iter), 0, &email, 2, &right , -1); usr = find_node(sf->users_list, email); + if (!usr) { + gtk_tree_path_free (path); + return; + } if(! usr->flag) /* if user was already existing one change the flag to update*/ usr->flag = usr->flag | 0x2; user = usr->user_node; @@ -610,29 +625,40 @@ edit_right_clicked(GtkCellRenderer *renderer, gchar *arg1, ShareFolder *sf ) user->rights &= 0x5; gtk_list_store_set (GTK_LIST_STORE (sf->model), &(sf->iter), 2, FALSE, -1); } - + gtk_tree_path_free (path); } - static void +static void delete_right_clicked(GtkCellRenderer *renderer, gchar *arg1, ShareFolder *sf ) { gboolean right = FALSE; SharedUser *usr = NULL; EShUsers *user = NULL; char *email = NULL; + GtkTreePath *path = NULL; + + path = gtk_tree_path_new_from_string (arg1); + if (!gtk_tree_model_get_iter ((GtkTreeModel *) sf->model, &(sf->iter), path)) { + gtk_tree_path_free (path); + return; + } gtk_tree_model_get ((GtkTreeModel *) sf->model, &(sf->iter), 0, &email, 3, &right , -1); usr = find_node(sf->users_list, email); + if (!usr) { + gtk_tree_path_free (path); + return; + } if(! usr->flag) /* if user was already existing one change the flag to update*/ usr->flag = usr->flag | 0x2; user = usr->user_node; if (!right) { - user->rights |= 0x4; - gtk_list_store_set (GTK_LIST_STORE (sf->model), &(sf->iter), 3, TRUE, -1); + user->rights |= 0x4; + gtk_list_store_set (GTK_LIST_STORE (sf->model), &(sf->iter), 3, TRUE, -1); } else { user->rights &= 0x3; gtk_list_store_set (GTK_LIST_STORE (sf->model), &(sf->iter), 3, FALSE, -1); } - + gtk_tree_path_free (path); } static void -- cgit v1.2.3