[gnome-system-tools] Fix groups model
- From: Milan Bouchet-Valat <milanbv src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-system-tools] Fix groups model
- Date: Mon, 11 Jan 2010 20:35:23 +0000 (UTC)
commit 91efbabfe9ef59547f846cfe37c9c697189c4c9c
Author: Milan Bouchet-Valat <nalimilan club fr>
Date: Tue Jan 5 16:52:24 2010 +0100
Fix groups model
Now that the groups list is using a plain GtkTreeModel, table_get_row_references() should'nt call gtk_tree_model_filter_convert_path_to_child_path() on it.
src/users/callbacks.c | 6 ++----
src/users/table.c | 29 ++++++++++++++++++++---------
2 files changed, 22 insertions(+), 13 deletions(-)
---
diff --git a/src/users/callbacks.c b/src/users/callbacks.c
index f7b5e83..101b293 100644
--- a/src/users/callbacks.c
+++ b/src/users/callbacks.c
@@ -316,7 +316,7 @@ on_group_settings_clicked (GtkButton *button, gpointer user_data)
GtkWidget *table, *dialog, *parent_dialog;
GtkTreePath *path;
GtkTreeModel *model;
- GtkTreeIter filter_iter, iter;
+ GtkTreeIter iter;
OobsGroup *group;
gint response;
@@ -340,10 +340,8 @@ on_group_settings_clicked (GtkButton *button, gpointer user_data)
response = group_settings_dialog_run (dialog, group);
if (response == GTK_RESPONSE_OK) {
- gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model),
- &filter_iter, &iter);
group_settings_dialog_get_data (group);
- groups_table_set_group (group, &filter_iter);
+ groups_table_set_group (group, &iter);
gst_tool_commit (tool, GST_USERS_TOOL (tool)->groups_config);
}
diff --git a/src/users/table.c b/src/users/table.c
index c44bc05..000660e 100644
--- a/src/users/table.c
+++ b/src/users/table.c
@@ -227,24 +227,35 @@ GList*
table_get_row_references (gint table, GtkTreeModel **model)
{
GtkTreeSelection *selection;
- GtkTreeModel *filter_model;
+ GtkTreeModel *table_model;
GtkTreePath *child_path;
GList *paths, *elem, *list = NULL;
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (get_table (table)));
- paths = elem = gtk_tree_selection_get_selected_rows (selection, &filter_model);
- *model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (filter_model));
+ paths = elem = gtk_tree_selection_get_selected_rows (selection, &table_model);
+ if (table == TABLE_USERS)
+ *model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (table_model));
+ else
+ *model = table_model;
if (!paths)
return NULL;
- while (elem) {
- child_path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (filter_model),
- (GtkTreePath *) elem->data);
+ if (table == TABLE_USERS) {
+ while (elem) {
+ child_path = gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (table_model),
+ (GtkTreePath *) elem->data);
- list = g_list_prepend (list, gtk_tree_row_reference_new (*model, child_path));
- gtk_tree_path_free (child_path);
- elem = elem->next;
+ list = g_list_prepend (list, gtk_tree_row_reference_new (*model, child_path));
+ gtk_tree_path_free (child_path);
+ elem = elem->next;
+ }
+ }
+ else {
+ while (elem) {
+ list = g_list_prepend (list, gtk_tree_row_reference_new (*model, (GtkTreePath *) elem->data));
+ elem = elem->next;
+ }
}
list = g_list_reverse (list);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]