Scroll to the newly added row. (rule_delete): Scroll to the selected row.
2003-01-03 Jeffrey Stedfast <fejj@ximian.com> * rule-editor.c (add_editor_response): Scroll to the newly added row. (rule_delete): Scroll to the selected row. (rule_move): After moving the row, re-select it and then scroll to make sure that it is still visible. svn path=/trunk/; revision=19226
This commit is contained in:

committed by
Jeffrey Stedfast

parent
589d5c074b
commit
4aa0c65063
@ -1,3 +1,11 @@
|
|||||||
|
2003-01-03 Jeffrey Stedfast <fejj@ximian.com>
|
||||||
|
|
||||||
|
* rule-editor.c (add_editor_response): Scroll to the newly added
|
||||||
|
row.
|
||||||
|
(rule_delete): Scroll to the selected row.
|
||||||
|
(rule_move): After moving the row, re-select it and then scroll to
|
||||||
|
make sure that it is still visible.
|
||||||
|
|
||||||
2003-01-02 Jeffrey Stedfast <fejj@ximian.com>
|
2003-01-02 Jeffrey Stedfast <fejj@ximian.com>
|
||||||
|
|
||||||
Fixed to build with -DG_DISABLE_DEPRECATED and
|
Fixed to build with -DG_DISABLE_DEPRECATED and
|
||||||
|
@ -254,6 +254,11 @@ add_editor_response (GtkWidget *dialog, int button, RuleEditor *re)
|
|||||||
selection = gtk_tree_view_get_selection (re->list);
|
selection = gtk_tree_view_get_selection (re->list);
|
||||||
gtk_tree_selection_select_iter (selection, &iter);
|
gtk_tree_selection_select_iter (selection, &iter);
|
||||||
|
|
||||||
|
/* scroll to the newly added row */
|
||||||
|
path = gtk_tree_model_get_path ((GtkTreeModel *) re->model, &iter);
|
||||||
|
gtk_tree_view_scroll_to_cell (re->list, path, NULL, TRUE, 1.0, 0.0);
|
||||||
|
gtk_tree_path_free (path);
|
||||||
|
|
||||||
re->current = re->edit;
|
re->current = re->edit;
|
||||||
rule_context_add_rule (re->context, re->current);
|
rule_context_add_rule (re->context, re->current);
|
||||||
|
|
||||||
@ -284,12 +289,12 @@ rule_add (GtkWidget *widget, RuleEditor *re)
|
|||||||
gtk_window_set_title ((GtkWindow *) re->dialog, _("Add Rule"));
|
gtk_window_set_title ((GtkWindow *) re->dialog, _("Add Rule"));
|
||||||
gtk_window_set_default_size (GTK_WINDOW (re->dialog), 650, 400);
|
gtk_window_set_default_size (GTK_WINDOW (re->dialog), 650, 400);
|
||||||
gtk_window_set_policy (GTK_WINDOW (re->dialog), FALSE, TRUE, FALSE);
|
gtk_window_set_policy (GTK_WINDOW (re->dialog), FALSE, TRUE, FALSE);
|
||||||
gtk_window_set_transient_for((GtkWindow *)re->dialog, (GtkWindow *)re);
|
gtk_window_set_transient_for ((GtkWindow *) re->dialog, (GtkWindow *) re);
|
||||||
|
|
||||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (re->dialog)->vbox), rules, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (re->dialog)->vbox), rules, TRUE, TRUE, 0);
|
||||||
|
|
||||||
g_signal_connect (re->dialog, "response", G_CALLBACK (add_editor_response), re);
|
g_signal_connect (re->dialog, "response", G_CALLBACK (add_editor_response), re);
|
||||||
g_object_weak_ref ((GObject *)re->dialog, (GWeakNotify) editor_destroy, re);
|
g_object_weak_ref ((GObject *) re->dialog, (GWeakNotify) editor_destroy, re);
|
||||||
|
|
||||||
gtk_widget_set_sensitive (GTK_WIDGET (re), FALSE);
|
gtk_widget_set_sensitive (GTK_WIDGET (re), FALSE);
|
||||||
|
|
||||||
@ -368,7 +373,7 @@ rule_edit (GtkWidget *widget, RuleEditor *re)
|
|||||||
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (re->dialog)->vbox), rules, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (re->dialog)->vbox), rules, TRUE, TRUE, 0);
|
||||||
|
|
||||||
g_signal_connect (re->dialog, "response", G_CALLBACK (edit_editor_response), re);
|
g_signal_connect (re->dialog, "response", G_CALLBACK (edit_editor_response), re);
|
||||||
g_object_weak_ref ((GObject *)re->dialog, (GWeakNotify) editor_destroy, re);
|
g_object_weak_ref ((GObject *) re->dialog, (GWeakNotify) editor_destroy, re);
|
||||||
|
|
||||||
gtk_widget_set_sensitive (GTK_WIDGET (re), FALSE);
|
gtk_widget_set_sensitive (GTK_WIDGET (re), FALSE);
|
||||||
|
|
||||||
@ -405,13 +410,20 @@ rule_delete (GtkWidget *widget, RuleEditor *re)
|
|||||||
len = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (re->model), NULL);
|
len = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (re->model), NULL);
|
||||||
pos = pos >= len ? len - 1 : pos;
|
pos = pos >= len ? len - 1 : pos;
|
||||||
|
|
||||||
path = gtk_tree_path_new ();
|
if (pos >= 0) {
|
||||||
gtk_tree_path_append_index (path, pos);
|
path = gtk_tree_path_new ();
|
||||||
gtk_tree_model_get_iter (GTK_TREE_MODEL (re->model), &iter, path);
|
gtk_tree_path_append_index (path, pos);
|
||||||
gtk_tree_path_free (path);
|
gtk_tree_model_get_iter (GTK_TREE_MODEL (re->model), &iter, path);
|
||||||
|
gtk_tree_path_free (path);
|
||||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (re->list));
|
|
||||||
gtk_tree_selection_select_iter (selection, &iter);
|
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (re->list));
|
||||||
|
gtk_tree_selection_select_iter (selection, &iter);
|
||||||
|
|
||||||
|
/* scroll to the selected row */
|
||||||
|
path = gtk_tree_model_get_path ((GtkTreeModel *) re->model, &iter);
|
||||||
|
gtk_tree_view_scroll_to_cell (re->list, path, NULL, FALSE, 0.0, 0.0);
|
||||||
|
gtk_tree_path_free (path);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rule_editor_set_sensitive (re);
|
rule_editor_set_sensitive (re);
|
||||||
@ -440,11 +452,22 @@ rule_move (RuleEditor *re, int from, int to)
|
|||||||
gtk_tree_model_get (GTK_TREE_MODEL (re->model), &iter, 1, &rule, -1);
|
gtk_tree_model_get (GTK_TREE_MODEL (re->model), &iter, 1, &rule, -1);
|
||||||
g_assert (rule != NULL);
|
g_assert (rule != NULL);
|
||||||
|
|
||||||
|
/* remove and then re-insert the row at the new location */
|
||||||
gtk_list_store_remove (re->model, &iter);
|
gtk_list_store_remove (re->model, &iter);
|
||||||
gtk_list_store_insert (re->model, &iter, to);
|
gtk_list_store_insert (re->model, &iter, to);
|
||||||
|
|
||||||
|
/* set the data on the row */
|
||||||
gtk_list_store_set (re->model, &iter, 0, rule->name, 1, rule, -1);
|
gtk_list_store_set (re->model, &iter, 0, rule->name, 1, rule, -1);
|
||||||
|
|
||||||
|
/* select the row */
|
||||||
|
selection = gtk_tree_view_get_selection (re->list);
|
||||||
|
gtk_tree_selection_select_iter (selection, &iter);
|
||||||
|
|
||||||
|
/* scroll to the selected row */
|
||||||
|
path = gtk_tree_model_get_path ((GtkTreeModel *) re->model, &iter);
|
||||||
|
gtk_tree_view_scroll_to_cell (re->list, path, NULL, FALSE, 0.0, 0.0);
|
||||||
|
gtk_tree_path_free (path);
|
||||||
|
|
||||||
rule_editor_set_sensitive (re);
|
rule_editor_set_sensitive (re);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user