[glade3] * plugins/gtk+/glade-model-data.c: Removed sequential editing mode, avoid crashers when focus/star
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade3] * plugins/gtk+/glade-model-data.c: Removed sequential editing mode, avoid crashers when focus/star
- Date: Fri, 7 Jan 2011 11:55:20 +0000 (UTC)
commit 1d9c699bf8e2d552b6ae435608d8d0fe79dca2ea
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Fri Jan 7 21:01:44 2011 +0900
* plugins/gtk+/glade-model-data.c: Removed sequential editing mode, avoid
crashers when focus/start-editing next cell.
ChangeLog | 3 +
plugins/gtk+/glade-model-data.c | 130 +++------------------------------------
2 files changed, 11 insertions(+), 122 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 07e990c..be669e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,9 @@
* gladeui/glade-inspector.c: Updated to use GtkStyleContext to set the italic &
insensitive color for the < search widgets > entry.
+ * plugins/gtk+/glade-model-data.c: Removed sequential editing mode, avoid
+ crashers when focus/start-editing next cell.
+
2011-01-06 Tristan Van Berkom <tristanvb openismus com>
* gladeui/glade-signal.c: Fixed glade_signal_load() careless mistake after GObjectifying.
diff --git a/plugins/gtk+/glade-model-data.c b/plugins/gtk+/glade-model-data.c
index 59e6869..3e2f529 100644
--- a/plugins/gtk+/glade-model-data.c
+++ b/plugins/gtk+/glade-model-data.c
@@ -239,13 +239,6 @@ enum
NUM_COLUMNS
};
-typedef enum
-{
- SEQ_NONE,
- SEQ_HORIZONTAL,
- SEQ_VERTICAL
-} EditSequence;
-
typedef struct
{
GladeEditorProperty parent_instance;
@@ -255,17 +248,12 @@ typedef struct
GtkTreeSelection *selection;
GNode *pending_data_tree;
- EditSequence sequence;
-
/* Used for setting focus on newly added rows */
gboolean adding_row;
gboolean want_focus;
- gboolean want_next_focus;
gboolean setting_focus;
gint editing_row;
gint editing_column;
-
- guint next_focus_idle;
} GladeEPropModelData;
GLADE_MAKE_EPROP (GladeEPropModelData, glade_eprop_model_data)
@@ -274,10 +262,10 @@ GLADE_MAKE_EPROP (GladeEPropModelData, glade_eprop_model_data)
#define GLADE_IS_EPROP_MODEL_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_MODEL_DATA))
#define GLADE_IS_EPROP_MODEL_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_MODEL_DATA))
#define GLADE_EPROP_MODEL_DATA_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_MODEL_DATA, GladeEPropModelDataClass))
- static void eprop_data_focus_editing_cell (GladeEPropModelData *
- eprop_data);
- static void append_row (GNode * node, GList * columns)
+static void eprop_data_focus_editing_cell (GladeEPropModelData *eprop_data);
+
+static void append_row (GNode * node, GList * columns)
{
GladeModelData *data;
GladeColumnType *column;
@@ -336,35 +324,14 @@ update_and_focus_data_tree_idle (GladeEditorProperty * eprop)
GladeProperty *property = glade_editor_property_get_property (eprop);
eprop_data->want_focus = TRUE;
- eprop_data->want_next_focus = TRUE;
update_data_tree_idle (eprop);
/* XXX Have to load it regardless if it changed, this is a slow and redundant way... */
glade_editor_property_load (eprop, property);
- eprop_data->want_next_focus = FALSE;
- eprop_data->want_focus = FALSE;
-
- return FALSE;
-}
-
-
-static gboolean
-focus_next_data_tree_idle (GladeEditorProperty * eprop)
-{
- GladeEPropModelData *eprop_data = GLADE_EPROP_MODEL_DATA (eprop);
-
- eprop_data->want_focus = TRUE;
- eprop_data->want_next_focus = TRUE;
-
- eprop_data_focus_editing_cell (eprop_data);
-
- eprop_data->want_next_focus = FALSE;
eprop_data->want_focus = FALSE;
- eprop_data->next_focus_idle = 0;
-
return FALSE;
}
@@ -462,15 +429,6 @@ glade_eprop_model_data_delete_clicked (GtkWidget * button,
glade_eprop_model_data_delete_selected (eprop);
}
-static void
-glade_eprop_model_sequence_changed (GtkWidget * combo,
- GladeEditorProperty * eprop)
-{
- GladeEPropModelData *eprop_data = GLADE_EPROP_MODEL_DATA (eprop);
-
- eprop_data->sequence = gtk_combo_box_get_active (GTK_COMBO_BOX (combo));
-}
-
static gboolean
eprop_treeview_key_press (GtkWidget * treeview,
GdkEventKey * event, GladeEditorProperty * eprop)
@@ -1036,19 +994,14 @@ eprop_data_focus_new (GladeEPropModelData * eprop_data)
&iter, NULL, n_children - 1))
{
- GType *column_type =
- g_object_get_data (G_OBJECT (column), "column-type");
-
new_item_path =
- gtk_tree_model_get_path (GTK_TREE_MODEL (eprop_data->store),
- &iter);
+ gtk_tree_model_get_path (GTK_TREE_MODEL (eprop_data->store), &iter);
eprop_data->setting_focus = TRUE;
gtk_widget_grab_focus (GTK_WIDGET (eprop_data->view));
gtk_tree_view_expand_to_path (eprop_data->view, new_item_path);
- gtk_tree_view_set_cursor (eprop_data->view, new_item_path,
- column, *column_type != G_TYPE_BOOLEAN);
+ gtk_tree_view_set_cursor (eprop_data->view, new_item_path, column, FALSE);
eprop_data->setting_focus = FALSE;
@@ -1081,39 +1034,10 @@ eprop_data_focus_editing_cell (GladeEPropModelData * eprop_data)
col = eprop_data->editing_column;
row = eprop_data->editing_row;
- if (eprop_data->want_next_focus)
- {
- switch (eprop_data->sequence)
- {
- case SEQ_HORIZONTAL:
- if (++col >= cols)
- {
- col = 0;
- if (++row >= rows)
- row = 0;
- }
- break;
- case SEQ_VERTICAL:
- if (++row >= rows)
- {
- row = 0;
- if (++col >= cols)
- col = 0;
- }
- break;
- case SEQ_NONE:
- default:
- break;
- }
- }
-
if ((column = gtk_tree_view_get_column (eprop_data->view, col)) != NULL &&
gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (eprop_data->store),
&iter, NULL, row))
{
- GType *column_type =
- g_object_get_data (G_OBJECT (column), "column-type");
-
item_path =
gtk_tree_model_get_path (GTK_TREE_MODEL (eprop_data->store),
&iter);
@@ -1122,10 +1046,7 @@ eprop_data_focus_editing_cell (GladeEPropModelData * eprop_data)
gtk_widget_grab_focus (GTK_WIDGET (eprop_data->view));
gtk_tree_view_expand_to_path (eprop_data->view, item_path);
- gtk_tree_view_set_cursor (eprop_data->view, item_path, column,
- eprop_data->want_next_focus &&
- eprop_data->sequence != SEQ_NONE &&
- *column_type != G_TYPE_BOOLEAN);
+ gtk_tree_view_set_cursor (eprop_data->view, item_path, column, FALSE);
gtk_tree_path_free (item_path);
@@ -1174,13 +1095,7 @@ glade_eprop_model_data_load (GladeEditorProperty * eprop,
eprop_data_focus_new (eprop_data);
else if (eprop_data->want_focus &&
eprop_data->editing_row >= 0 && eprop_data->editing_column >= 0)
- {
- if (eprop_data->want_next_focus && eprop_data->next_focus_idle == 0)
- eprop_data->next_focus_idle =
- g_idle_add ((GSourceFunc) focus_next_data_tree_idle, eprop);
- else
- eprop_data_focus_editing_cell (eprop_data);
- }
+ eprop_data_focus_editing_cell (eprop_data);
}
}
@@ -1188,15 +1103,13 @@ static GtkWidget *
glade_eprop_model_data_create_input (GladeEditorProperty * eprop)
{
GladeEPropModelData *eprop_data = GLADE_EPROP_MODEL_DATA (eprop);
- GtkWidget *vbox, *hbox, *button, *swin, *label, *combo;
+ GtkWidget *vbox, *hbox, *button, *swin, *label;
gchar *string;
vbox = gtk_vbox_new (FALSE, 2);
hbox = gtk_hbox_new (FALSE, 4);
- eprop_data->sequence = SEQ_NONE;
-
/* hbox with add/remove row buttons on the right... */
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
@@ -1228,33 +1141,6 @@ glade_eprop_model_data_create_input (GladeEditorProperty * eprop)
G_CALLBACK (glade_eprop_model_data_delete_clicked),
eprop_data);
- /* separator... */
- label = gtk_label_new ("");
- gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
-
- string = g_strdup_printf ("<b>%s</b>", _("Sequential editing:"));
- label = gtk_label_new (string);
- g_free (string);
- gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- gtk_misc_set_padding (GTK_MISC (label), 2, 0);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- combo = gtk_combo_box_text_new ();
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Off"));
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Horizontal"));
- gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo), _("Vertical"));
-
-
- gtk_combo_box_set_active (GTK_COMBO_BOX (combo), eprop_data->sequence);
-
- gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0);
-
- g_signal_connect (G_OBJECT (combo), "changed",
- G_CALLBACK (glade_eprop_model_sequence_changed),
- eprop_data);
-
-
/* Pack treeview/swindow on the left... */
swin = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swin),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]