paperbox r251 - in trunk: . src



Author: markoa
Date: Sun Dec 28 21:21:31 2008
New Revision: 251
URL: http://svn.gnome.org/viewvc/paperbox?rev=251&view=rev

Log:
Fetch thumbnails on show


Modified:
   trunk/ChangeLog
   trunk/src/document-tile.cc
   trunk/src/document-tile.hh

Modified: trunk/src/document-tile.cc
==============================================================================
--- trunk/src/document-tile.cc	(original)
+++ trunk/src/document-tile.cc	Sun Dec 28 21:21:31 2008
@@ -42,6 +42,7 @@
         Gtk::Util::Tile(doc->get_subject(), doc->get_author(), false),
         uri_(doc->get_uri()),
         doc_(doc),
+        thumbnailer_(&thumbnailer),
         tag_hbox_(false, 4),
         tag_labels_hbox_(false, 4),
         tag_links_hbox_(false, 4),
@@ -52,8 +53,6 @@
     {
         break_title();
 
-        connect_thumbnailer_signals(thumbnailer);
-
         Gtk::VBox& content_vbox = get_content_vbox();
 
         int page_count = doc->get_page_count();
@@ -115,14 +114,14 @@
     }
 
     void
-    DocumentTile::connect_thumbnailer_signals(Thumbnailer& thumbnailer)
+    DocumentTile::connect_thumbnailer_signals(Thumbnailer* thumbnailer)
     {
-        thumbnailer.request_thumbnail(
+        thumbnailer->request_thumbnail(
             uri_, 
             THUMBNAIL_SIZE_SMALL,
             sigc::mem_fun(*this, &DocumentTile::on_small_thumbnail_ready));
 
-        thumbnailer.request_thumbnail(
+        thumbnailer->request_thumbnail(
             uri_, 
             THUMBNAIL_SIZE_LARGE,
             sigc::mem_fun(*this, &DocumentTile::on_large_thumbnail_ready));
@@ -297,6 +296,13 @@
     }
 
     void
+    DocumentTile::on_show()
+    {
+        Tile::on_show();
+        if (! thumbnail_small_) connect_thumbnailer_signals(thumbnailer_);
+    }
+
+    void
     DocumentTile::on_selected()
     {
         Gtk::VBox& content_vbox = get_content_vbox();

Modified: trunk/src/document-tile.hh
==============================================================================
--- trunk/src/document-tile.hh	(original)
+++ trunk/src/document-tile.hh	Sun Dec 28 21:21:31 2008
@@ -70,7 +70,7 @@
         virtual void show_add_tag_dialog();
 
     protected:
-        virtual void connect_thumbnailer_signals(Thumbnailer& thumbnailer);
+        virtual void connect_thumbnailer_signals(Thumbnailer* thumbnailer);
         virtual void connect_signals();
 
         virtual Gtk::Widget* get_tag_link(const std::string& tag);
@@ -90,6 +90,9 @@
             const std::vector<Glib::ustring>& tags_added,
             const std::vector<Glib::ustring>& tags_removed);
 
+        // Gtk::Widget
+        virtual void on_show();
+
         // Tile overrides
         virtual void on_selected();
         virtual void on_unselected();
@@ -118,6 +121,8 @@
         Glib::ustring uri_;
         std::tr1::shared_ptr<Document> doc_;
 
+        Thumbnailer* thumbnailer_;
+
         SignalTagClicked signal_tag_clicked_;
 
         Glib::RefPtr<Gdk::Pixbuf> thumbnail_small_;



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