[epiphany/overview] ephy-overview-store: add ephy_overview_store_needs_snapshot()



commit e95f171440926dc00a35468d1dadcb7d08e11939
Author: Claudio Saavedra <csaavedra igalia com>
Date:   Mon Aug 13 11:17:10 2012 +0300

    ephy-overview-store: add ephy_overview_store_needs_snapshot()
    
    This method will return TRUE if no snapshot is set nor scheduled to be
    loaded already.

 lib/widgets/ephy-overview-store.c |   27 +++++++++++++++++++++++++++
 lib/widgets/ephy-overview-store.h |   19 +++++++++++--------
 2 files changed, 38 insertions(+), 8 deletions(-)
---
diff --git a/lib/widgets/ephy-overview-store.c b/lib/widgets/ephy-overview-store.c
index b395e86..5e425a1 100644
--- a/lib/widgets/ephy-overview-store.c
+++ b/lib/widgets/ephy-overview-store.c
@@ -428,6 +428,33 @@ ephy_overview_store_set_default_icon (EphyOverviewStore *store,
 }
 
 gboolean
+ephy_overview_store_needs_snapshot (EphyOverviewStore *store,
+                                    GtkTreeIter *iter)
+{
+  GdkPixbuf *icon;
+  GCancellable *cancellable;
+  gboolean needs_snapshot;
+
+  g_return_val_if_fail (EPHY_IS_OVERVIEW_STORE (store), FALSE);
+  g_return_val_if_fail (iter != NULL, FALSE);
+
+  gtk_tree_model_get (GTK_TREE_MODEL (store), iter,
+                      EPHY_OVERVIEW_STORE_SNAPSHOT, &icon,
+                      EPHY_OVERVIEW_STORE_SNAPSHOT_CANCELLABLE, &cancellable,
+                      -1);
+
+  /* If the thumbnail is the default icon and there is no cancellable
+     in the row, then this row needs a snapshot. */
+  needs_snapshot = (icon == store->priv->default_icon && cancellable == NULL);
+
+  g_object_unref (icon);
+  if (cancellable)
+    g_object_unref (cancellable);
+
+  return needs_snapshot;
+}
+
+gboolean
 ephy_overview_store_remove (EphyOverviewStore *store,
                             GtkTreeIter *iter)
 {
diff --git a/lib/widgets/ephy-overview-store.h b/lib/widgets/ephy-overview-store.h
index 22b363a..7ea0dd1 100644
--- a/lib/widgets/ephy-overview-store.h
+++ b/lib/widgets/ephy-overview-store.h
@@ -66,17 +66,20 @@ enum {
   EPHY_OVERVIEW_STORE_NCOLS
 };
 
-GType ephy_overview_store_get_type (void) G_GNUC_CONST;
+GType    ephy_overview_store_get_type             (void) G_GNUC_CONST;
 
-void ephy_overview_store_peek_snapshot (EphyOverviewStore *self,
-                                        WebKitWebView *webview,
-                                        GtkTreeIter *iter);
+void     ephy_overview_store_peek_snapshot        (EphyOverviewStore *self,
+                                                   WebKitWebView *webview,
+                                                   GtkTreeIter *iter);
 
-void ephy_overview_store_set_default_icon (EphyOverviewStore *store,
-                                           GdkPixbuf *default_icon);
+void     ephy_overview_store_set_default_icon     (EphyOverviewStore *store,
+                                                   GdkPixbuf         *default_icon);
 
-gboolean ephy_overview_store_remove       (EphyOverviewStore *store,
-                                           GtkTreeIter       *iter);
+gboolean ephy_overview_store_needs_snapshot       (EphyOverviewStore *store,
+                                                   GtkTreeIter       *iter);
+
+gboolean ephy_overview_store_remove               (EphyOverviewStore *store,
+                                                   GtkTreeIter       *iter);
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]