~ubuntu-branches/ubuntu/oneiric/gwibber/oneiric

« back to all changes in this revision

Viewing changes to libgwibber-gtk/stream-view.vala

  • Committer: Bazaar Package Importer
  • Author(s): Ken VanDine
  • Date: 2011-08-25 15:36:16 UTC
  • mfrom: (1.1.59 upstream)
  • Revision ID: james.westby@ubuntu.com-20110825153616-sd8yqbkdytwh0gi5
Tags: 3.1.6-0ubuntu1
* New upstream release
  - async loading of all images
  - display thumbnails for images and videos
  - display facebook comments inline
  - round the corners of avatars and thumbnails
  - significant performance improvements for rendering the stream views
* debian/libgwibber-gtk2.symbols
  - added symbols

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
    private bool _showing = false;
67
67
    private bool _show_fullname;
68
68
    public Gwibber.Utils utils;
 
69
    public Gwibber.Service service;
69
70
    private GLib.Settings settings;
70
71
 
71
72
    public Dee.Model model {
173
174
        if (_showing)
174
175
        {
175
176
          adjustment.set_upper ((double)(_stream_filter_model.get_n_rows ()));
176
 
          var service = new Gwibber.Service ();
177
177
          service.update_indicators (stream);
178
178
          refresh ();
179
179
        }
200
200
    {
201
201
      Intl.setlocale(LocaleCategory.COLLATE, "C");
202
202
      utils = new Gwibber.Utils ();
 
203
      service = new Gwibber.Service ();
203
204
      settings = new GLib.Settings ("org.gwibber.preferences");
204
205
 
205
206
      show_fullname = settings.get_boolean("show-fullname");
277
278
      });
278
279
 
279
280
 
280
 
      for (int i = 0; i < 15; i++)
 
281
      for (int i = 0; i < 2; i++)
281
282
        {
282
 
          var tile = new StreamViewTile (utils, show_fullname);
 
283
          var tile = new StreamViewTile (utils, service, show_fullname);
283
284
          tile.show_all ();
284
285
          view_box.pack_start (tile, false, false, 0);
285
286
          tiles.append (tile);
317
318
     */
318
319
    private void refresh ()
319
320
    {
320
 
      if (refresh_id == 0)
 
321
      if (refresh_id == 0 && showing)
321
322
      {
322
323
        refresh_id = Idle.add (() => {
323
324
          do_refresh ();
334
335
    {
335
336
      int i = 0;
336
337
 
337
 
      fill_up_remaining_space ();
338
338
      if (!(stream_filter_model is Dee.FilterModel))
339
339
      {
340
340
        stream_filter_model = model;
341
341
      }
342
342
      uint n_rows = stream_filter_model.get_n_rows ();
343
343
 
 
344
      fill_up_remaining_space ();
 
345
 
344
346
      unowned Dee.ModelIter? iter;
345
347
      iter = stream_filter_model.get_iter_at_row (position);
346
348
      
376
378
                            stream_filter_model.get_string (iter, StreamModelColumn.IMG_URL),
377
379
                            stream_filter_model.get_string (iter, StreamModelColumn.IMG_SRC),
378
380
                            stream_filter_model.get_string (iter, StreamModelColumn.IMG_THUMB),
379
 
                            stream_filter_model.get_string (iter, StreamModelColumn.IMG_NAME));
 
381
                            stream_filter_model.get_string (iter, StreamModelColumn.IMG_NAME),
 
382
                            stream_filter_model.get_string (iter, StreamModelColumn.VIDEO_PIC),
 
383
                            stream_filter_model.get_string (iter, StreamModelColumn.VIDEO_SRC),
 
384
                            stream_filter_model.get_string (iter, StreamModelColumn.VIDEO_URL),
 
385
                            stream_filter_model.get_string (iter, StreamModelColumn.VIDEO_NAME),
 
386
                            stream_filter_model.get_string (iter, StreamModelColumn.COMMENTS));
380
387
            tiles_visible = i + 1;
381
388
        }
382
389
        else
390
397
        else
391
398
          iter = stream_filter_model.get_iter_at_row (position + i);
392
399
      }
393
 
 
 
400
 
 
401
      /* FIXME
394
402
      Idle.add (()=>{
395
403
        queue_draw ();
396
404
        return false;
397
405
      });
 
406
      */
398
407
      prepared = true;
399
408
    }
400
409
 
402
411
    {
403
412
      Gtk.Allocation alloc;
404
413
      int overall_height = 0;
 
414
      int largest_tile = 0;
405
415
      bool one_was_hidden = false;
406
416
 
407
417
      view_box.get_allocation (out alloc);
414
424
        {
415
425
            tile.get_allocation (out a);
416
426
            overall_height += a.height;
 
427
            if (a.height > largest_tile)
 
428
              largest_tile = a.height;
417
429
        }
418
430
        else
419
431
        {
423
435
 
424
436
      if (alloc.height > overall_height && !one_was_hidden)
425
437
      {
426
 
          var tile = new StreamViewTile (utils, show_fullname);
 
438
          var tile = new StreamViewTile (utils, service, show_fullname);
427
439
          tile.show_all ();
428
440
          view_box.pack_start (tile, false, false, 0);
429
441
          tiles.append (tile);
430
442
          tile.reply.connect((mid, account, sender) => {
431
443
            reply (mid, account, sender);
432
 
            });
433
 
          refresh();
434
 
      }
435
 
 
 
444
          });
 
445
          Idle.add (()=>{
 
446
            queue_draw ();
 
447
            do_refresh ();
 
448
            return false;
 
449
          });
 
450
          return;
 
451
      }
 
452
 
 
453
      if (alloc.height < (overall_height - (largest_tile * 3)))
 
454
      {
 
455
        var last_tile = tiles.nth_data (tiles.length () - 1);
 
456
        last_tile.reset ();
 
457
        last_tile.destroy ();
 
458
        tiles.remove (last_tile);
 
459
        Idle.add (()=>{
 
460
          queue_draw ();
 
461
          do_refresh ();
 
462
          return false;
 
463
        });
 
464
        return;
 
465
      }
 
466
 
 
467
      /* FIXME
436
468
      Idle.add (()=>{
437
469
        queue_draw ();
438
470
        return false;
439
471
      });
 
472
      return;
 
473
      */
440
474
    }
441
475
 
442
476
    [Signal (action=true)]