[california/wip/725783-time] Getting started
- From: Jim Nelson <jnelson src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [california/wip/725783-time] Getting started
- Date: Thu, 24 Jul 2014 02:29:06 +0000 (UTC)
commit 707bda0227e31eff67e9a1e10715ee2f4a9a3699
Author: Jim Nelson <jim yorba org>
Date: Wed Jul 23 19:28:42 2014 -0700
Getting started
src/Makefile.am | 2 +
src/california-resources.xml | 3 +
src/host/host-create-update-event.vala | 3 +-
src/host/host-event-time-settings.vala | 51 +++++
src/host/host-main-window.vala | 8 +-
src/rc/event-time-settings.ui | 314 ++++++++++++++++++++++++++++++++
src/toolkit/toolkit-card.vala | 1 -
7 files changed, 378 insertions(+), 4 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 62c334a..fdd41d1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -93,6 +93,7 @@ california_VALASOURCES = \
host/host-calendar-list-item.vala \
host/host-create-update-event.vala \
host/host-create-update-recurring.vala \
+ host/host-event-time-settings.vala \
host/host-import-calendar.vala \
host/host-main-window.vala \
host/host-quick-create-event.vala \
@@ -181,6 +182,7 @@ california_RC = \
rc/calendar-manager-list-item.ui \
rc/create-update-event.ui \
rc/create-update-recurring.ui \
+ rc/event-time-settings.ui \
rc/google-authenticating.ui \
rc/google-calendar-list.ui \
rc/google-login.ui \
diff --git a/src/california-resources.xml b/src/california-resources.xml
index edf38ea..7aac897 100644
--- a/src/california-resources.xml
+++ b/src/california-resources.xml
@@ -25,6 +25,9 @@
<file compressed="false">rc/create-update-recurring.ui</file>
</gresource>
<gresource prefix="/org/yorba/california">
+ <file compressed="false">rc/event-time-settings.ui</file>
+ </gresource>
+ <gresource prefix="/org/yorba/california">
<file compressed="true">rc/google-authenticating.ui</file>
</gresource>
<gresource prefix="/org/yorba/california">
diff --git a/src/host/host-create-update-event.vala b/src/host/host-create-update-event.vala
index e05a4c8..918eeef 100644
--- a/src/host/host-create-update-event.vala
+++ b/src/host/host-create-update-event.vala
@@ -292,7 +292,8 @@ public class CreateUpdateEvent : Gtk.Grid, Toolkit.Card {
update_component(event, true);
// send off to recurring editor
- jump_to_card_by_name(CreateUpdateRecurring.ID, event);
+ // TODO: reset to CreateUpdateRecurring.ID
+ jump_to_card_by_name(EventTimeSettings.ID, event);
}
private void on_accept_button_clicked() {
diff --git a/src/host/host-event-time-settings.vala b/src/host/host-event-time-settings.vala
new file mode 100644
index 0000000..8ff9b91
--- /dev/null
+++ b/src/host/host-event-time-settings.vala
@@ -0,0 +1,51 @@
+/* Copyright 2014 Yorba Foundation
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later). See the COPYING file in this distribution.
+ */
+
+namespace California.Host {
+
+[GtkTemplate (ui = "/org/yorba/california/rc/event-time-settings.ui")]
+public class EventTimeSettings : Gtk.Box, Toolkit.Card {
+ public const string ID = "CaliforniaHostEventTimeSettings";
+
+ [GtkChild]
+ private Gtk.Calendar from_calendar;
+
+ [GtkChild]
+ private Gtk.Entry from_hour_entry;
+
+ [GtkChild]
+ private Gtk.Entry from_minutes_entry;
+
+ [GtkChild]
+ private Gtk.Entry from_meridiem;
+
+ public string card_id { get { return ID; } }
+ public string? title { get { return null; } }
+ public Gtk.Widget? default_widget { get { return null; } }
+ public Gtk.Widget? initial_focus { get { return null; } }
+
+ private new Component.Event? event = null;
+
+ public EventTimeSettings() {
+ }
+
+ public void jumped_to(Toolkit.Card? from, Toolkit.Card.Jump reason, Value? message) {
+ event = (Component.Event) message;
+
+ init_controls();
+ }
+
+ private void init_controls() {
+ Calendar.DateSpan event_span = event.get_event_date_span(Calendar.Timezone.local);
+
+ from_calendar.day = event_span.start_date.day_of_month.value;
+ from_calendar.month = event_span.start_date.month.value - 1;
+ from_calendar.year = event_span.start_date.year.value;
+ }
+}
+
+}
+
diff --git a/src/host/host-main-window.vala b/src/host/host-main-window.vala
index a753a18..5ad0fc7 100644
--- a/src/host/host-main-window.vala
+++ b/src/host/host-main-window.vala
@@ -435,9 +435,11 @@ public class MainWindow : Gtk.ApplicationWindow {
CreateUpdateRecurring create_update_recurring = new CreateUpdateRecurring();
+ EventTimeSettings event_time_settings = new EventTimeSettings();
+
Toolkit.Deck deck = new Toolkit.Deck();
deck.add_cards(
- iterate<Toolkit.Card>(quick_create, create_update, create_update_recurring)
+ iterate<Toolkit.Card>(quick_create, create_update, create_update_recurring, event_time_settings)
.to_array_list()
);
@@ -456,9 +458,11 @@ public class MainWindow : Gtk.ApplicationWindow {
CreateUpdateRecurring create_update_recurring = new CreateUpdateRecurring();
+ EventTimeSettings event_time_settings = new EventTimeSettings();
+
Toolkit.Deck deck = new Toolkit.Deck();
deck.add_cards(
- iterate<Toolkit.Card>(show_event, create_update, create_update_recurring)
+ iterate<Toolkit.Card>(show_event, create_update, create_update_recurring, event_time_settings)
.to_array_list()
);
diff --git a/src/rc/event-time-settings.ui b/src/rc/event-time-settings.ui
new file mode 100644
index 0000000..2885e8b
--- /dev/null
+++ b/src/rc/event-time-settings.ui
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
+<interface>
+ <requires lib="gtk+" version="3.10"/>
+ <template class="CaliforniaHostEventTimeSettings" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">8</property>
+ <child>
+ <object class="GtkLabel" id="summary_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_bottom">4</property>
+ <property name="label">(empty)</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkBox" id="from_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="hexpand">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkCalendar" id="from_calendar">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">end</property>
+ <property name="hexpand">False</property>
+ <property name="year">2014</property>
+ <property name="month">6</property>
+ <property name="day">23</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="from_time_grid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="hexpand">False</property>
+ <property name="vexpand">False</property>
+ <child>
+ <object class="GtkEntry" id="from_hour_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="hexpand">False</property>
+ <property name="vexpand">False</property>
+ <property name="max_length">2</property>
+ <property name="width_chars">2</property>
+ <property name="input_purpose">digits</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="hexpand">False</property>
+ <property name="label" translatable="yes">:</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="from_minutes_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="max_length">2</property>
+ <property name="width_chars">2</property>
+ <property name="input_purpose">digits</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="from_meridiem">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="max_length">2</property>
+ <property name="width_chars">2</property>
+ <property name="input_purpose">alpha</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkArrow" id="from_hour_up">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="hexpand">False</property>
+ <property name="arrow_type">up</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkArrow" id="from_minutes_up">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="hexpand">False</property>
+ <property name="arrow_type">up</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkArrow" id="from_meridiem_up">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="hexpand">False</property>
+ <property name="arrow_type">up</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkArrow" id="from_hour_down">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="hexpand">False</property>
+ <property name="arrow_type">down</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkArrow" id="from_minutes_down">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="hexpand">False</property>
+ <property name="arrow_type">down</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkArrow" id="from_meridiem_down">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="hexpand">False</property>
+ <property name="arrow_type">down</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="to_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" comments="As in "From 9pm to
10pm"">to</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="to_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkCalendar" id="to_calendar">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="year">2014</property>
+ <property name="month">6</property>
+ <property name="day">23</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="all_day_checkbutton">
+ <property name="label" translatable="yes">_All-day event</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">end</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </template>
+</interface>
diff --git a/src/toolkit/toolkit-card.vala b/src/toolkit/toolkit-card.vala
index 8e2daee..7450aea 100644
--- a/src/toolkit/toolkit-card.vala
+++ b/src/toolkit/toolkit-card.vala
@@ -163,7 +163,6 @@ public interface Card : Gtk.Widget {
* This is called before dealing with { link default_widget} and { link initial_focus}, so
* changes to those properties in this call, if need be.
*/
- // TODO: Use a JumpContext object instead.
public abstract void jumped_to(Card? from, Jump reason, Value? message);
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]