[epiphany/wip/search-engine-dialog: 2/4] Filter smart bookmarks out of bookmarks popover
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/wip/search-engine-dialog: 2/4] Filter smart bookmarks out of bookmarks popover
- Date: Mon, 31 Oct 2016 21:58:09 +0000 (UTC)
commit 7ca661dbe8db4709d65b54fb67a188cfcdca15d7
Author: Michael Catanzaro <mcatanzaro gnome org>
Date: Mon Oct 31 16:23:02 2016 -0500
Filter smart bookmarks out of bookmarks popover
src/bookmarks/ephy-bookmarks-manager.c | 28 ++++++++++++++++++++++------
src/bookmarks/ephy-bookmarks-popover.c | 12 ++++++++++++
2 files changed, 34 insertions(+), 6 deletions(-)
---
diff --git a/src/bookmarks/ephy-bookmarks-manager.c b/src/bookmarks/ephy-bookmarks-manager.c
index c2a503e..161142e 100644
--- a/src/bookmarks/ephy-bookmarks-manager.c
+++ b/src/bookmarks/ephy-bookmarks-manager.c
@@ -216,8 +216,17 @@ static guint
ephy_bookmarks_manager_list_model_get_n_items (GListModel *model)
{
EphyBookmarksManager *self = EPHY_BOOKMARKS_MANAGER (model);
+ int count = 0;
- return g_sequence_get_length (self->bookmarks);
+ for (GSequenceIter *iter = g_sequence_get_begin_iter (self->bookmarks);
+ !g_sequence_iter_is_end (iter);
+ iter = g_sequence_iter_next (iter)) {
+ EphyBookmark *bookmark = g_sequence_get (iter);
+ if (!ephy_bookmark_is_smart (bookmark))
+ count++;
+ }
+
+ return count;
}
static gpointer
@@ -225,11 +234,18 @@ ephy_bookmarks_manager_list_model_get_item (GListModel *model,
guint position)
{
EphyBookmarksManager *self = EPHY_BOOKMARKS_MANAGER (model);
- GSequenceIter *iter;
-
- iter = g_sequence_get_iter_at_pos (self->bookmarks, position);
-
- return g_object_ref (g_sequence_get (iter));
+ GSequenceIter *iter = g_sequence_get_begin_iter (self->bookmarks);
+ EphyBookmark *bookmark = NULL;
+ guint i = 0;
+
+ do {
+ bookmark = g_sequence_get (iter);
+ if (!ephy_bookmark_is_smart (bookmark))
+ i++;
+ iter = g_sequence_iter_next (iter);
+ } while (i <= position);
+
+ return bookmark ? g_object_ref (bookmark) : NULL;
}
static void
diff --git a/src/bookmarks/ephy-bookmarks-popover.c b/src/bookmarks/ephy-bookmarks-popover.c
index 62f6dbb..bf96aad 100644
--- a/src/bookmarks/ephy-bookmarks-popover.c
+++ b/src/bookmarks/ephy-bookmarks-popover.c
@@ -154,6 +154,8 @@ create_bookmark_row (gpointer item,
EphyBookmark *bookmark = EPHY_BOOKMARK (item);
GtkWidget *row;
+ g_assert (!ephy_bookmark_is_smart (bookmark));
+
row = ephy_bookmark_row_new (bookmark);
g_object_set_data_full (G_OBJECT (row), "type",
g_strdup (EPHY_LIST_BOX_ROW_TYPE_BOOKMARK),
@@ -221,6 +223,9 @@ ephy_bookmarks_popover_bookmark_added_cb (EphyBookmarksPopover *self,
g_assert (EPHY_IS_BOOKMARK (bookmark));
g_assert (EPHY_IS_BOOKMARKS_MANAGER (manager));
+ if (ephy_bookmark_is_smart (bookmark))
+ return;
+
if (g_sequence_is_empty (ephy_bookmark_get_tags (bookmark))) {
row = create_bookmark_row (bookmark, self);
gtk_container_add (GTK_CONTAINER (self->tags_list_box), row);
@@ -240,6 +245,9 @@ ephy_bookmarks_popover_bookmark_removed_cb (EphyBookmarksPopover *self,
g_assert (EPHY_IS_BOOKMARK (bookmark));
g_assert (EPHY_IS_BOOKMARKS_MANAGER (manager));
+ if (ephy_bookmark_is_smart (bookmark))
+ return;
+
children = gtk_container_get_children (GTK_CONTAINER (self->tags_list_box));
for (l = children; l != NULL; l = l->next) {
const char *type;
@@ -358,6 +366,8 @@ ephy_bookmarks_popover_show_tag_detail (EphyBookmarksPopover *self,
EphyBookmark *bookmark = g_sequence_get (iter);
GtkWidget *row;
+ if (ephy_bookmark_is_smart (bookmark))
+ continue;
row = create_bookmark_row (bookmark, self);
gtk_container_add (GTK_CONTAINER (self->tag_detail_list_box), row);
}
@@ -496,6 +506,8 @@ ephy_bookmarks_popover_init (EphyBookmarksPopover *self)
EphyBookmark *bookmark = g_sequence_get (iter);
GtkWidget *bookmark_row;
+ if (ephy_bookmark_is_smart (bookmark))
+ continue;
bookmark_row = create_bookmark_row (bookmark, self);
gtk_widget_show_all (bookmark_row);
gtk_container_add (GTK_CONTAINER (self->tags_list_box), bookmark_row);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]