[california] Retain selected calendar inside event editor



commit 96889e6e7965ba526ff09daa65dcb097057336d3
Author: Jim Nelson <jim yorba org>
Date:   Mon Dec 22 15:40:50 2014 -0800

    Retain selected calendar inside event editor
    
    Like prior commit, the selected calendar could be reset from the
    initial one when making changes on other cards (time, recurring,
    guests, etc.)  This change ensures the selected calendar is not reset
    between switches to other cards.

 src/event-editor/event-editor-main-card.vala |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)
---
diff --git a/src/event-editor/event-editor-main-card.vala b/src/event-editor/event-editor-main-card.vala
index 9d91417..6bf8876 100644
--- a/src/event-editor/event-editor-main-card.vala
+++ b/src/event-editor/event-editor-main-card.vala
@@ -65,6 +65,7 @@ public class MainCard : Gtk.Grid, Toolkit.Card {
     private new Component.Event event = new Component.Event.blank();
     private DateTimeCard.Message? dt = null;
     private Toolkit.ComboBoxTextModel<Backing.CalendarSource> calendar_model;
+    private bool first_message = true;
     
     private Toolkit.RotatingButtonBox rotating_button_box = new Toolkit.RotatingButtonBox();
     private Toolkit.EntryClearTextConnector clear_text_connector = new Toolkit.EntryClearTextConnector();
@@ -154,6 +155,20 @@ public class MainCard : Gtk.Grid, Toolkit.Card {
                 dt = new DateTimeCard.Message.from_event(event);
         }
         
+        // set combo to event's calendar, but only if first (initial) message; since the selected
+        // calendar is maintained outside of the event and only applied when Save/Create is pressed,
+        // don't want to update it every time this card is brought to the top
+        if (first_message) {
+            if (event.calendar_source != null) {
+                calendar_model.set_item_active(event.calendar_source);
+            } else {
+                calendar_model.set_item_default_active();
+                is_update = false;
+            }
+            
+            first_message = false;
+        }
+        
         update_controls();
     }
     
@@ -165,14 +180,6 @@ public class MainCard : Gtk.Grid, Toolkit.Card {
         
         on_update_time_summary();
         
-        // set combo to event's calendar
-        if (event.calendar_source != null) {
-            calendar_model.set_item_active(event.calendar_source);
-        } else {
-            calendar_model.set_item_default_active();
-            is_update = false;
-        }
-        
         location_entry.text = event.location ?? "";
         description_textview.buffer.text = event.description ?? "";
         


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