summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2003-10-06 22:22:56 +0000
committerMarco Pesenti Gritti <marco@src.gnome.org>2003-10-06 22:22:56 +0000
commitffa7a2815e632ca51da8593635256c58ce907f0e (patch)
tree9a052e011a14346d8f5d1124386935cde3b6c8f4
parent8e0b5f030dadf3898a6e44d1dd4f4178b8f2b240 (diff)
downloadepiphany-new-completion.tar.gz
Add stamp.new-completion
2003-10-07 Marco Pesenti Gritti <marco@gnome.org> * src/ephy-completion-model.c: (node_iter_from_node), (ephy_completion_model_init), (ephy_completion_model_get_value), (ephy_completion_model_get_iter), (ephy_completion_model_get_path), (ephy_completion_model_iter_next), (ephy_completion_model_iter_children), (ephy_completion_model_iter_n_children), (ephy_completion_model_iter_nth_child): Add stamp.
-rw-r--r--ChangeLog12
-rw-r--r--src/ephy-completion-model.c19
2 files changed, 25 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 90cf0c6bd..ad70a56eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2003-10-07 Marco Pesenti Gritti <marco@gnome.org>
+
+ * src/ephy-completion-model.c: (node_iter_from_node),
+ (ephy_completion_model_init), (ephy_completion_model_get_value),
+ (ephy_completion_model_get_iter), (ephy_completion_model_get_path),
+ (ephy_completion_model_iter_next),
+ (ephy_completion_model_iter_children),
+ (ephy_completion_model_iter_n_children),
+ (ephy_completion_model_iter_nth_child):
+
+ Add stamp.
+
2003-10-06 Marco Pesenti Gritti <marco@gnome.org>
* lib/widgets/ephy-location-entry.c: (completion_func),
diff --git a/src/ephy-completion-model.c b/src/ephy-completion-model.c
index 5a46ecd7a..95bfe0e69 100644
--- a/src/ephy-completion-model.c
+++ b/src/ephy-completion-model.c
@@ -34,6 +34,7 @@ struct EphyCompletionModelPrivate
{
EphyNode *history;
EphyNode *bookmarks;
+ int stamp;
};
enum
@@ -121,7 +122,7 @@ node_iter_from_node (EphyCompletionModel *model,
EphyNode *node,
GtkTreeIter *iter)
{
- iter->stamp = 0;
+ iter->stamp = model->priv->stamp;
iter->user_data = node;
}
@@ -201,6 +202,7 @@ ephy_completion_model_init (EphyCompletionModel *model)
EphyHistory *history;
model->priv = EPHY_COMPLETION_MODEL_GET_PRIVATE (model);
+ model->priv->stamp = g_random_int ();
history = ephy_embed_shell_get_global_history
(EPHY_EMBED_SHELL (ephy_shell));
@@ -396,6 +398,7 @@ ephy_completion_model_get_value (GtkTreeModel *tree_model,
g_return_if_fail (EPHY_IS_COMPLETION_MODEL (tree_model));
g_return_if_fail (iter != NULL);
+ g_return_if_fail (iter->stamp == model->priv->stamp);
node = iter->user_data;
group = get_node_group (model, node);
@@ -429,8 +432,8 @@ ephy_completion_model_get_flags (GtkTreeModel *tree_model)
static gboolean
ephy_completion_model_get_iter (GtkTreeModel *tree_model,
- GtkTreeIter *iter,
- GtkTreePath *path)
+ GtkTreeIter *iter,
+ GtkTreePath *path)
{
EphyCompletionModel *model = EPHY_COMPLETION_MODEL (tree_model);
EphyNode *root;
@@ -441,7 +444,7 @@ ephy_completion_model_get_iter (GtkTreeModel *tree_model,
i = gtk_tree_path_get_indices (path)[0];
- iter->stamp = 0;
+ iter->stamp = model->priv->stamp;
root = get_index_root (model, &i);
iter->user_data = ephy_node_get_nth_child (root, i);
@@ -465,6 +468,7 @@ ephy_completion_model_get_path (GtkTreeModel *tree_model,
g_return_val_if_fail (EPHY_IS_COMPLETION_MODEL (tree_model), NULL);
g_return_val_if_fail (iter != NULL, NULL);
g_return_val_if_fail (iter->user_data != NULL, NULL);
+ g_return_val_if_fail (iter->stamp == model->priv->stamp, NULL);
node = iter->user_data;
@@ -483,6 +487,7 @@ ephy_completion_model_iter_next (GtkTreeModel *tree_model,
g_return_val_if_fail (iter != NULL, FALSE);
g_return_val_if_fail (iter->user_data != NULL, FALSE);
+ g_return_val_if_fail (iter->stamp == model->priv->stamp, FALSE);
node = iter->user_data;
@@ -511,7 +516,7 @@ ephy_completion_model_iter_children (GtkTreeModel *tree_model,
if (parent != NULL)
return FALSE;
- iter->stamp = 0;
+ iter->stamp = model->priv->stamp;
iter->user_data = model->priv->history;
return TRUE;
@@ -538,6 +543,8 @@ ephy_completion_model_iter_n_children (GtkTreeModel *tree_model,
ephy_node_get_n_children (model->priv->bookmarks);
}
+ g_return_val_if_fail (model->priv->stamp == iter->stamp, -1);
+
return 0;
}
@@ -560,7 +567,7 @@ ephy_completion_model_iter_nth_child (GtkTreeModel *tree_model,
if (node != NULL)
{
- iter->stamp = 0;
+ iter->stamp = model->priv->stamp;
iter->user_data = node;
return TRUE;
}