[california/wip/726809-rename: 3/3] Re-sort calendar list when title changes (from user or remotely)



commit 603442e0d7193f2d0af2f0459abd124cef2b4519
Author: Jim Nelson <jim yorba org>
Date:   Wed Apr 30 21:12:58 2014 -0700

    Re-sort calendar list when title changes (from user or remotely)

 src/manager/manager-calendar-list-item.vala |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)
---
diff --git a/src/manager/manager-calendar-list-item.vala b/src/manager/manager-calendar-list-item.vala
index 0478dcd..fd62bde 100644
--- a/src/manager/manager-calendar-list-item.vala
+++ b/src/manager/manager-calendar-list-item.vala
@@ -11,7 +11,7 @@ namespace California.Manager {
  */
 
 [GtkTemplate (ui = "/org/yorba/california/rc/calendar-manager-list-item.ui")]
-internal class CalendarListItem : Gtk.Grid {
+internal class CalendarListItem : Gtk.Grid, Toolkit.MutableWidget {
     private const int COLOR_DIM = 16;
     
     public Backing.CalendarSource source { get; private set; }
@@ -43,6 +43,8 @@ internal class CalendarListItem : Gtk.Grid {
         
         has_tooltip = true;
         
+        source.notify[Backing.Source.PROP_TITLE].connect(on_title_changed);
+        
         source.bind_property(Backing.Source.PROP_TITLE, title_label, "label",
             BindingFlags.SYNC_CREATE);
         source.bind_property(Backing.Source.PROP_VISIBLE, visible_check_button, "active",
@@ -57,6 +59,15 @@ internal class CalendarListItem : Gtk.Grid {
         title_eventbox.button_release_event.connect(on_title_button_release);
     }
     
+    ~CalendarListItem() {
+        source.notify[Backing.Source.PROP_TITLE].disconnect(on_title_changed);
+    }
+    
+    private void on_title_changed() {
+        // title determines sort order, so this is important
+        mutated();
+    }
+    
     public override bool query_tooltip(int x, int y, bool keyboard_mode, Gtk.Tooltip tooltip) {
         // no tooltip if text is entirely shown
         if (!title_label.get_layout().is_ellipsized())


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