[california/wip/731543-attendees] Further refinements



commit 0d6159d68965fee0ca01b4e31a6286374a65a0fc
Author: Jim Nelson <jim yorba org>
Date:   Fri Nov 7 19:10:31 2014 -0800

    Further refinements

 src/host/host-attendees-editor.vala    |   25 +++++++++++++++++++++++++
 src/host/host-create-update-event.vala |    8 +++++++-
 src/rc/attendees-editor.ui             |   23 ++++++++---------------
 src/rc/create-update-event.ui          |    1 +
 4 files changed, 41 insertions(+), 16 deletions(-)
---
diff --git a/src/host/host-attendees-editor.vala b/src/host/host-attendees-editor.vala
index 79c472a..c00b274 100644
--- a/src/host/host-attendees-editor.vala
+++ b/src/host/host-attendees-editor.vala
@@ -22,12 +22,37 @@ public class AttendeesEditor : Gtk.Box, Toolkit.Card {
     private Gtk.Entry add_guest_entry;
     
     [GtkChild]
+    private Gtk.ListBox guest_listbox;
+    
+    [GtkChild]
     private Gtk.Button accept_button;
     
+    private new Component.Event? event = null;
+    private Toolkit.ListBoxModel guest_model;
+    
     public AttendeesEditor() {
+        guest_model = new Toolkit.ListBoxModel<Component.Person>(guest_listbox, model_presentation);
     }
     
     public void jumped_to(Toolkit.Card? from, Toolkit.Card.Jump reason, Value? message) {
+        event = message as Component.Event;
+        if (event == null)
+            return;
+        
+        guest_model.clear();
+        guest_model.add_many(event.attendees);
+    }
+    
+    [GtkCallback]
+    private void on_cancel_button_clicked() {
+        jump_home();
+    }
+    
+    private Gtk.Widget model_presentation(Component.Person person) {
+        Gtk.Label label = new Gtk.Label(person.full_mailbox);
+        label.xalign = 0.0f;
+        
+        return label;
     }
 }
 
diff --git a/src/host/host-create-update-event.vala b/src/host/host-create-update-event.vala
index 2442771..1b781cd 100644
--- a/src/host/host-create-update-event.vala
+++ b/src/host/host-create-update-event.vala
@@ -158,7 +158,8 @@ public class CreateUpdateEvent : Gtk.Grid, Toolkit.Card {
         location_entry.text = event.location ?? "";
         description_textview.buffer.text = event.description ?? "";
         attendees_text.label = traverse<Component.Person>(event.attendees)
-            .to_string((person, on_first, on_last) => person.full_mailbox + ", ");
+            .filter(attendee => !event.organizers.contains(attendee))
+            .to_string(stringify_attendees);
         
         Component.Event master = event.is_master_instance ? event : (Component.Event) event.master;
         
@@ -179,6 +180,11 @@ public class CreateUpdateEvent : Gtk.Grid, Toolkit.Card {
         rotating_button_box.family = FAMILY_NORMAL;
     }
     
+    private string? stringify_attendees(Component.Person person, bool is_first, bool is_last) {
+        // Email address followed by common separator, i.e. "alice example com, bob example com"
+        return !is_last ? _("%s, ").printf(person.full_mailbox) : person.full_mailbox;
+    }
+    
     private void on_update_time_summary() {
         // use the Message, not the Event, to load this up
         time_summary_label.visible = true;
diff --git a/src/rc/attendees-editor.ui b/src/rc/attendees-editor.ui
index e2b3143..3296111 100644
--- a/src/rc/attendees-editor.ui
+++ b/src/rc/attendees-editor.ui
@@ -43,17 +43,12 @@
         </child>
         <child>
           <object class="GtkButton" id="add_guest_button">
+            <property name="label" translatable="yes">A_dd Guest</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
             <property name="xalign">0.60000002384185791</property>
-            <child>
-              <object class="GtkImage" id="image1">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="icon_name">list-add-symbolic</property>
-              </object>
-            </child>
           </object>
           <packing>
             <property name="expand">False</property>
@@ -73,27 +68,24 @@
       <object class="GtkListBox" id="guest_listbox">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <property name="activate_on_single_click">False</property>
       </object>
       <packing>
-        <property name="expand">True</property>
+        <property name="expand">False</property>
         <property name="fill">True</property>
         <property name="position">2</property>
       </packing>
     </child>
     <child>
       <object class="GtkButton" id="remove_guest_button">
+        <property name="label" translatable="yes">_Remove Guest</property>
         <property name="visible">True</property>
         <property name="can_focus">True</property>
         <property name="receives_default">True</property>
         <property name="halign">end</property>
-        <child>
-          <object class="GtkImage" id="image2">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="icon_name">list-remove-symbolic</property>
-          </object>
-        </child>
+        <property name="use_underline">True</property>
       </object>
       <packing>
         <property name="expand">False</property>
@@ -117,6 +109,7 @@
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
             <property name="use_underline">True</property>
+            <signal name="clicked" handler="on_cancel_button_clicked" object="CaliforniaHostAttendeesEditor" 
swapped="no"/>
           </object>
           <packing>
             <property name="expand">True</property>
diff --git a/src/rc/create-update-event.ui b/src/rc/create-update-event.ui
index c2a4a74..d3969a6 100644
--- a/src/rc/create-update-event.ui
+++ b/src/rc/create-update-event.ui
@@ -335,6 +335,7 @@
             <property name="xalign">0</property>
             <property name="label">(none)</property>
             <property name="ellipsize">end</property>
+            <property name="max_width_chars">64</property>
           </object>
           <packing>
             <property name="expand">False</property>


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