[california] Application help: Bug #732302



commit 62075f990798e7eb5cf7dda85a3e4db095b98902
Author: Jim Campbell <jcampbell gnome org>
Date:   Thu Sep 18 18:50:48 2014 -0700

    Application help: Bug #732302
    
    F1 help for California.  Quick Add section can be accessed from the
    help button on the Quick Add popover.

 Makefile.am                                 |    1 +
 THANKS                                      |    1 +
 configure.ac                                |    2 +
 help/C/cal-add-calendar.page                |  139 +++++++++++++++++++++++++++
 help/C/cal-change-view.page                 |   65 +++++++++++++
 help/C/cal-event-edit.page                  |  123 +++++++++++++++++++++++
 help/C/cal-event-quick-add.page             |   89 +++++++++++++++++
 help/C/cal-event-remove.page                |   63 ++++++++++++
 help/C/cal-hide-a-calendar.page             |   47 +++++++++
 help/C/cal-open-calendar-list.xml           |    7 ++
 help/C/cal-quickstart.page                  |   35 +++++++
 help/C/cal-remove-calendar.page.stub        |   26 +++++
 help/C/cal-rename-calendar.page             |   37 +++++++
 help/C/cal-shortcut-keys.page               |   91 +++++++++++++++++
 help/C/gnome-help.sct                       |   22 ++++
 help/C/index.page                           |   49 ++++++++++
 help/C/legal.xml                            |    5 +
 help/C/media/california-screenshot.png      |  Bin 0 -> 28760 bytes
 help/C/media/x-office-calendar.png          |  Bin 0 -> 2848 bytes
 help/C/schematron.sh                        |    1 +
 help/Makefile.am                            |   37 +++++++
 src/Makefile.am                             |    9 +-
 src/application/california-application.vala |   35 ++++++-
 src/host/host-quick-create-event.vala       |    2 +-
 24 files changed, 877 insertions(+), 9 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 62f82b8..c583ff6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,6 +6,7 @@ GITIGNOREFILES =
 SUBDIRS = \
        src \
        po \
+       help \
        $(NULL)
 
 californiadocdir = ${prefix}/doc/california
diff --git a/THANKS b/THANKS
index af3bebd..fcdbeea 100644
--- a/THANKS
+++ b/THANKS
@@ -1,6 +1,7 @@
 The California team would like to thank the following contributors:
 
 Yosef Or Boczko <yoseforb gmail com>
+Jim Campbell <jcampbell gnome org>
 Pierre-Yves Luyten <py luyten fr>
 Samer Masterson <samer samertm com>
 Bernhard Schuster <schuster bernhard gmail com>
diff --git a/configure.ac b/configure.ac
index f2e142d..958ac61 100644
--- a/configure.ac
+++ b/configure.ac
@@ -49,6 +49,7 @@ AC_SUBST(CALIFORNIA_CFLAGS)
 AC_SUBST(CALIFORNIA_LIBS)
 
 GLIB_GSETTINGS
+YELP_HELP_INIT
 
 #
 # system capabilities
@@ -88,6 +89,7 @@ AC_CONFIG_FILES([
        Makefile
        src/Makefile
        po/Makefile.in
+       help/Makefile
        data/california.desktop.in
 ])
 
diff --git a/help/C/cal-add-calendar.page b/help/C/cal-add-calendar.page
new file mode 100644
index 0000000..5513911
--- /dev/null
+++ b/help/C/cal-add-calendar.page
@@ -0,0 +1,139 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      xmlns:ui="http://projectmallard.org/ui/1.0/";
+      type="guide" style="task" version="1.0 ui/1.0"
+      id="cal-add-calendar">
+
+  <info>
+    <desc>Sync or display web-based calendar feeds.</desc>
+    <link type="guide" xref="index#cal-manage-calendars"/>
+    <link type="seealso" xref="cal-rename-calendar"/>
+    <link type="seealso" xref="cal-hide-a-calendar"/>
+    <revision pkgversion="0.2" date="2014-09-06" status="candidate"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Add a Calendar</title>
+    
+  <p>By default, <app>California</app> includes two calendars: a
+  <em>Personal</em> calendar and a <em>Birthdays &amp; Anniversaries</em>
+  calendar. You can add or sync other calendars, as well:</p>
+
+  <section id="cal-sync-gcal" ui:expanded="false">
+    <title>Add a Google calendar</title>
+    
+    <p>Adding a Google calendar to <app>California</app> will both add and
+    <em>sync</em> the calendar. If you add an event in <app>California</app>,
+    the event will appear in your Google calendar. Likewise, if you add or edit
+    an event in your Google calendar, those changes will also be updated in
+    <app>California</app>.</p>
+    
+    <steps>
+      <title>Follow these steps to syncronize your Google calendar with
+      <app>California</app>:</title>
+      <include href="cal-open-calendar-list.xml" 
+      xpointer="xmlns(mal=http://projectmallard.org/1.0/)xpointer(/mal:steps/mal:item)"
+      xmlns="http://www.w3.org/2001/XInclude"/>
+      <item><p>Select <gui>Google Calendar</gui> and click <gui>Add</gui>.</p>
+      </item>
+      <item><p>Enter your Google account name and Google password. Click
+      <gui>Login</gui>.</p>
+      <p>If you have entered the proper credentials, <app>California</app> will
+      indicate that your account has been authenticated. If you have mis-typed
+      your Google password, you will need to enter your password again.</p>
+      </item>
+      <item><p>Your default Google account calendar will appear in a window of
+      <gui>My Calendars</gui>. If you also subscribe to other calendars through
+      your Google account, those calendars will also appear in a list of
+      <gui>Other available calendars</gui>.</p></item>
+      <item><p>Select all of the calendars that you wish to sync, and select
+      <gui>Subscribe</gui>.</p></item>
+    </steps>
+    <note><p>You may also be prompted to enter your Google password one
+    additional time. This will save your password into your computer so that
+    you don't have to enter it again.</p></note>
+    <note><p>Your primary Google calendar will fully sync between
+    <app>California</app> and your Google calendar. However, you may or may
+    not have the proper permissions for any <gui>Other available
+    calendars</gui> to fully sync between <app>California</app> and your
+    Google calendars. Consult the
+    <link href="https://support.google.com/calendar/";>Google Calendar Help
+    Center</link> if you encounter any problems with syncing any of the
+    calendars in your list of <gui>Other available calendars</gui>.</p></note>
+  </section>
+  
+  <section id="cal-sync-caldav" ui:expanded="false">
+    <title>Add a CalDAV calendar</title>
+    <p><code>CalDAV</code> is an open standard for transmitting and storing
+    calendar information. It is used by many popular services including the
+    <app>ownCloud</app> calendar and Apple's <app>iCloud</app> service.</p>
+    
+    <steps>
+      <title>Follow these steps to syncronize a <code>CalDAV</code> calendar
+      with <app>California</app>:</title>
+
+      <item><p>Obtain the URL address of the calendar that you wish to add to
+      <app>California</app>. You will need to get this address from your
+      calendar provider or from your system administrator.</p></item>      
+      <include href="cal-open-calendar-list.xml" 
+      xpointer="xmlns(mal=http://projectmallard.org/1.0/)xpointer(/mal:steps/mal:item)"
+      xmlns="http://www.w3.org/2001/XInclude"/>
+      <item><p>Select <gui>CalDAV</gui> and click <gui>Add</gui>.</p></item>
+      <item><p>Enter a calendar name. This can be any name of your
+      choosing.</p></item>
+      <item><p>Enter the calendar URL address.</p></item>
+      <item><p>Enter your the username for your online calendar into the
+      <gui>Username</gui> field.</p></item>
+      <item><p>Click <gui>Subscribe</gui>.</p></item>
+      <item><p>If you have entered a username, you may also be prompted to
+      enter a password.</p></item>
+    </steps>
+    <note><p>Although the <gui>Username</gui> field is listed as
+    <gui>Optional</gui>, most <app>CalDAV</app> calendars require a username. 
+    <app>California</app> may not be able to display your <app>CalDAV</app>
+    calendar if you do not enter a valid username.</p></note>
+  </section>
+
+  <section id="cal-display-ics" ui:expanded="false">
+    <title>Display a Web Calendar (.ics or webcal) Feed</title>
+
+    <p>Adding a Web Calendar (.ics or webcal) feed to <app>California</app>
+    will allow you to view an online calendar from within
+    <app>California</app>. Although <app>California</app> will display events
+    from a <app>Web Calendar</app> feed, you will not be able to change or
+    delete these events.</p>
+    
+    <steps>
+      <title>Follow these steps to add a
+      <app>Web Calendar (.ics or webcal)</app> feed to
+      <app>California</app>:</title>
+      <item><p>Obtain the URL address of the calendar feed that you wish to
+      add to <app>California</app>. The address will end with a ".ics"
+      extension.</p></item>
+      <include href="cal-open-calendar-list.xml" 
+      xpointer="xmlns(mal=http://projectmallard.org/1.0/)xpointer(/mal:steps/mal:item)"
+      xmlns="http://www.w3.org/2001/XInclude"/>
+      <item><p>Select <gui>Web Calendar (.ics or webcal)</gui> and click
+      <gui>Add</gui>.</p></item>
+      <item><p>Enter a calendar name. This can be any name of your
+      choosing.</p></item>
+      <item><p>Enter the calendar URL address.</p></item>
+      <item><p>If required, enter your the username for your web calendar into
+      the <gui>Username</gui> field.</p></item>
+      <item><p>Click <gui>Subscribe</gui>.</p></item>
+      <item><p>If you have entered a username, you may also be prompted to
+      enter a password.</p></item>
+    </steps>
+    
+    <note style="tip"><p>Most <app>Web Calendar (.ics or webcal)</app> feeds do
+    not require a password.</p></note>
+
+  </section>   
+</page>
diff --git a/help/C/cal-change-view.page b/help/C/cal-change-view.page
new file mode 100644
index 0000000..576c078
--- /dev/null
+++ b/help/C/cal-change-view.page
@@ -0,0 +1,65 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      type="guide" style="task" version="1.0 ui/1.0"
+      id="cal-change-view">
+
+  <info>
+    <link type="guide" xref="index#cal-manage-calendars"/>
+    <link type="seealso" xref="cal-shortcut-keys"/>
+    <desc>Choose a monthly, weekly or daily view of your calendar.</desc>
+    <revision pkgversion="0.2" date="2014-09-06" status="candidate"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Change Your Calendar's View</title>
+  
+  <p><app>California</app> will display a month's worth of events by default,
+  However you may wish to focus in on events for just one week or just one
+  day. Change the view options for <app>California</app> by selecting your
+  desired option from the buttons on the left-hand portion of the
+  menu bar:</p>
+  
+  <list>
+    <item><p>Selecting <gui>Week</gui> will display events for the current
+    week.</p></item>
+    <item><p>Selecting <gui>Month</gui> will display events for the entire
+    month.</p></item>
+    <item><p>Selecting <gui>Today</gui> will highlight the current day. This
+    can be helpful if you've been looking at events in the future or in the
+    past and want to quickly return to see current events.</p></item>
+  </list>
+
+  <p>You can also change your calendar view by using keyboard shortcuts:</p>
+
+    <table rules="rows" frame="top bottom">
+    <title>Calendar View Shortcut Keys</title>
+      <thead>
+        <tr>
+          <td><p>To Do This</p></td>
+          <td><p>Press This</p></td>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td><p>View the calendar as weeks</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>W</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>View the calendar as months</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>M</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>Reset the view to highlight the current day</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>T</key></keyseq></p></td>
+        </tr>
+      </tbody>
+    </table>
+
+</page>
diff --git a/help/C/cal-event-edit.page b/help/C/cal-event-edit.page
new file mode 100644
index 0000000..e5cdb9a
--- /dev/null
+++ b/help/C/cal-event-edit.page
@@ -0,0 +1,123 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      xmlns:ui="http://projectmallard.org/ui/1.0/";
+      type="guide" style="task" version="1.0 ui/1.0"
+      id="cal-event-edit">
+
+  <info>
+    <desc>Change an event's details.</desc>
+    <link type="guide" xref="index#cal-manage-events"/>
+    <revision pkgversion="0.2" date="2014-09-13" status="review"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Edit an Event</title>
+
+  <p>This page describes how to add specific details to an event that you are
+  creating, or how to change the details of an event that you created in the
+  past.</p>
+  
+  <note><p>You will not be able to edit events that are part of certain
+  web-based calendar feeds. For example, if you subscribe to a friend's
+  Google Calendar, but do not have permission to edit events on your friend's
+  calendar, you will not be able to change the details of their events.</p>
+  </note>
+
+  <steps>
+    <title>Here is how to change an event's details:</title>
+    <item><p>Find the event you want to edit on your calendar.</p></item>
+    <item><p>Select the event. A window will open, displaying the event's
+    details.</p></item>
+    <item><p>Select <gui>Edit</gui>.</p></item>
+    <item><p>Change or enter all of the event's relevant details.</p>
+      <p>You can change an event's summary, time, location, description,
+      and the frequency with which the event occurs. You can also change the
+      calendar on which you would like the event to appear.</p>
+      <p>Detailed instructions for changing the time of an event, or how often
+      it occurs, are included below.</p></item>
+    <item><p>When you are finished editing the event, select <gui>Save</gui>.
+    If you do not want to save your changes, select <gui>Cancel</gui>.</p>
+    </item>
+  </steps>
+
+  <section id="edit-event-time" ui:expanded="false">
+    <title>Change the Time or Duration of an Event</title>
+    
+    <steps>
+      <title>To change the start or end time of an event:</title>
+      <item><p>Find the event you want to edit on your calendar.</p></item>
+      <item><p>Select the event. A window will open, displaying the event's
+      details.</p></item>
+      <item><p>Select <gui>Edit</gui>.</p></item>
+      <item><p>Select the <gui>Clock</gui> icon next to the event's time. A
+      new window will appear.</p></item>
+      <item><p>Select the <em>start</em> date and time using the calendar and
+      time selectors on the <em>left</em>.</p></item>
+      <item><p>Select the <em>end</em> date and time using the calendar and
+      time selectors on the <em>right</em>.</p></item>
+      <item><p>Select <gui>OK</gui>.</p></item>
+      <item><p>If necessary, enter information into any of the other event's
+      detail fields.</p></item>
+      <item><p>When you are done, select <gui>Save</gui>. If you do not want to
+      save your changes, select <gui>Cancel</gui>.</p></item>
+    </steps>
+    
+  </section>
+
+  <section id="edit-event-frequency" ui:expanded="false">
+    <title>Change How Often an Event Occurs</title>
+    
+    <steps>
+      <title>To change the frequency, or how often an event occurs:</title>
+      <item><p>Find the event you want to edit on your calendar.</p></item>
+      <item><p>Select the event. A window will open, displaying the event's
+      details.</p></item>
+      <item><p>Select <gui>Edit</gui>.</p></item>
+      <item><p>Select <gui>Repeats . . .</gui></p></item>
+      <item><p>Mark or unmark the <gui>Repeating event</gui> check box. This
+      box is used to indicate whether or not this event will repeat.
+      </p></item>
+      <item><p>If the event repeats, select how often it repeats:</p>
+        <list>
+          <item><p><em>Daily</em> events occur every day.</p></item>
+          <item><p><em>Weekly</em> events occur on a weekly basis, and you can
+          set them to occur on certain days of the week.</p>
+          <p>To select the days of the week that you would like the event to
+          occur, mark the check box next to each day that you would like the
+          event to repeat.</p></item> 
+          <item><p><em>Day of the week</em> events occur every month on the day
+          you have selected.</p></item>
+          <item><p><em>Day of the month</em> events occur every month.</p>
+          </item>
+          <item><p><em>Yearly</em> events occur every year.</p></item>         
+        </list>
+      </item>
+      <item><p>Enter or change the date that the event <em>Starts</em>.</p>
+      </item>
+      <item><p>Enter or change the date that the event <em>Ends</em>. You can
+      set events to end in this manner:</p>
+        <list>
+          <item><p><em>Never</em>. Events that are set to never end will repeat
+          indefinitely on your calendar. This is appropriate for events like
+          birthdays, anniversaries, or other dates that you will always want
+          to remember.</p></item>
+          <item><p><em>On</em>. You can set repeating events to end on a
+          certain date</p></item>
+          <item><p><em>After</em>. Use this option to mark an event as ending
+          after a certain number of occurrences.</p></item>
+        </list>
+      </item>
+      <item><p>Select <gui>OK</gui>.</p></item>
+      <item><p>Select <gui>Save</gui>.</p></item>
+    </steps>
+
+  </section>
+  
+</page>
diff --git a/help/C/cal-event-quick-add.page b/help/C/cal-event-quick-add.page
new file mode 100644
index 0000000..8a8e7bd
--- /dev/null
+++ b/help/C/cal-event-quick-add.page
@@ -0,0 +1,89 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      xmlns:ui="http://projectmallard.org/ui/1.0/";
+      xmlns:e="http://projectmallard.org/experimental/";
+      type="guide" style="task" version="1.0 ui/1.0"
+      id="cal-event-quick-add">
+
+  <info>
+    <desc>Add an event to your calendar using everyday language.</desc>
+    <link type="guide" xref="index#cal-manage-events" group="first"/>
+    <link type="seealso" xref="cal-event-edit"/>
+    <revision pkgversion="0.2" date="2014-09-11" status="review"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Use the Quick Add Feature to Add Events</title>
+  
+  <p>One of the best features of <app>California</app> is called the
+  <em>Quick Add</em> feature. It allows you to add events to your calendar
+  using everyday language. Let's look at a few examples to see how it works.
+  </p>
+
+  <section id="quick-add-event">
+    <title>Create Both One-Time and Recurring Events</title> 
+  
+  <p>We can use the <em>Quick Add</em> feature to add events that occur only
+  one time and events that occur more than once:</p>
+  
+  <steps>
+    <item><p>Start the <em>Quick Add</em> feature by doing any of the
+    following:</p>
+      <list>
+        <item><p>Find the date or time on your calendar when the event will
+        occur, and <em>double-click</em> that portion of the calendar.</p>
+        </item>
+        <item><p>Press the <gui>Plus</gui> button in the upper-right portion of
+        <app>California's</app> <gui>menu bar</gui>.</p></item>
+        <item><p>Press <keyseq><key>Ctrl</key><key>N</key></keyseq>.</p></item>
+      </list>
+    <p>The <em>Quick Add</em> window will appear.</p></item>
+    
+    <item><p>Enter the details of your event. You can describe the event using
+    natural language:</p>
+    <list ui:expanded="false">
+      <title>Examples of one-time events</title>
+      <item><p>If you double-clicked on the specific date and time you want an
+      event to occur, just type out the details of the event:</p>
+      <p><em>Meet James at the movies.</em></p></item>
+      <item><p>If you selected the <gui>Plus</gui> button or pressed
+      <keyseq><key>Ctrl</key><key>N</key></keyseq>, you will need to also enter
+      the event's date and time:</p>
+      <p><em>Go to Jeff and Mindy's wedding on October 26th at 4:00pm</em>
+      </p></item>
+      <item><p>You can also define how long the event takes place:</p>
+      <p><em>Visit Alice at office on November 1st from 1pm to 2:30pm</em>
+      </p></item>
+    </list>
+
+    <list ui:expanded="false">
+      <title>Examples of recurring events</title>
+      <item><p><em>Take out the trash every Tuesday at 7:30am</em></p></item>
+      <item><p><em>Swimming class every Tuesday and Thursday at 6:00pm</em></p>
+      </item>
+      <item><p><em>Meet at Barney's every Monday at 9am until December 1st</em></p></item>
+    </list>
+    </item>
+    
+    <item><p>If you want to enter specific details regarding the event, select
+    <gui>Edit</gui>. See the <link href="cal-event-edit.page">Edit an
+    Event</link> page for information about editing events.</p></item>
+    
+    <item><p>After you have entered your event details, press
+    <gui>Create</gui>. <app>California</app> will use the information that you
+    have entered to create the event on your calendar.</p></item>
+  </steps>
+
+  <note style="tip"><p>By default, the <em>Quick Add</em> feature will create
+  events that last for one hour. You may wish to adjust the duration of your
+  events or add additional details. See the <link href="cal-event-edit.page">Edit an Event</link>
+  page for more information about editing events.</p></note>
+  </section>
+</page>
diff --git a/help/C/cal-event-remove.page b/help/C/cal-event-remove.page
new file mode 100644
index 0000000..36ab858
--- /dev/null
+++ b/help/C/cal-event-remove.page
@@ -0,0 +1,63 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      type="guide" style="task"
+      id="cal-event-remove">
+
+  <info>
+    <desc>Delete an event from your calendar.</desc>
+    <link type="guide" xref="index#cal-manage-events"/>
+    <link type="seealso" xref="cal-hide-a-calendar"/>
+    <revision pkgversion="0.2" date="2014-09-14" status="candidate"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Remove an Event</title>
+
+  <p>This page describes how to remove events from your calendar.</p>
+  
+  <note style="warning"><p>Removing an event from your calendar is permanent.
+  It is not possible to restore an event that you have deleted.</p></note>
+  
+  <steps>
+    <title>Here is how to remove an event or a series of recurring events:
+    </title>
+    <item><p>Find the event you want to remove from your calendar.</p></item>
+    <item><p>Select the event. A window will open, displaying the event's
+    details.</p></item>
+    <item><p>Select <gui>Delete</gui>. If you are deleting a one-time event
+    that does not repeat, the event will be deleted immediately. If you are
+    deleting a recurring event, you will have other options:</p>
+      <list>
+        <item><p><gui>Delete This Event</gui>. This will delete only this
+        single event. All other recurring events in this series, both events
+        from the future and events from the past, will not be changed.</p>
+        </item>
+        <item><p><gui>Delete This and Future Events</gui>. This will delete
+        this event, as well as future events in this series. Events that
+        occurred in the past will not be changed.</p></item>
+        <item><p><gui>Delete All Events</gui>. This will delete all events in
+        this series, including events that occurred in the past.</p></item>
+      </list>
+    </item>
+    <item><p>If you do not want to remove an event, select <gui>Cancel</gui>.
+    </p></item>
+  </steps> 
+
+  <note><p>You will not be able to delete events that are part of certain
+  web-based calendar feeds. For example, if you subscribe to a friend's
+  Google Calendar, but do not have permission to edit events on your friend's
+  calendar, you will not be able to delete their events from your view of
+  their calendar.</p>
+  <p>If you want to not see certain types of events on your calendar, review
+  how to <link xref="cal-hide-a-calendar">hide a calendar from view</link>.
+  </p></note>
+
+</page>
+
diff --git a/help/C/cal-hide-a-calendar.page b/help/C/cal-hide-a-calendar.page
new file mode 100644
index 0000000..6b9a4f8
--- /dev/null
+++ b/help/C/cal-hide-a-calendar.page
@@ -0,0 +1,47 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      type="guide" style="task" version="1.0 ui/1.0"
+      id="cal-hide-a-calendar">
+
+  <info>
+    <link type="guide" xref="index#cal-manage-calendars"/>
+    <desc>Simplify your calendar's interface.</desc>
+    <revision pkgversion="0.2" date="2014-08-31" status="candidate"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Hide a Calendar From View</title>
+  
+  <p>If you keep track of more than one calendar, your calendar may get
+  cluttered with events. This can make it hard to read your calendar.</p>
+  
+  <p>If you want to make it easier to see only certain types of events,
+  you can <em>hide a calendar</em>. This will temporarily remove the calendar
+  from view, but it will not delete the calendar, and all of the calendar's
+  events will remain intact.</p>
+
+  <steps>
+    <title>Hide a Calendar From View:</title>
+      <item><p>Click the <gui>Calendar</gui> icon in the upper-right portion of
+      <app>California's</app> menu bar. A list of your current calendars will
+      appear in a new window.</p></item>
+      <item><p>Identify the calendar that you want to hide.</p></item>
+      <item><p>Unmark the check box next to the calendar that you wish to hide.
+      </p></item>
+      <item><p>Click <gui>Close</gui>.</p></item>
+  </steps>
+  
+  <p>The calendar that you selected will now be hidden from view.</p>
+  
+  <note style="tip"><p>To make a calendar visible again, complete the same
+  steps, but <em>check the box</em> next to the calendar that you want to
+  see.</p></note>  
+
+</page>
diff --git a/help/C/cal-open-calendar-list.xml b/help/C/cal-open-calendar-list.xml
new file mode 100644
index 0000000..2b61c5d
--- /dev/null
+++ b/help/C/cal-open-calendar-list.xml
@@ -0,0 +1,7 @@
+<steps xmlns="http://projectmallard.org/1.0/";>
+  <item><p>Select the <gui>Calendar</gui> icon in the upper-right portion of
+  <app>California's</app> menu bar. A list of your current calendars will
+  appear in a new window.</p></item>
+  <item><p>Select the <gui>Plus</gui> icon at the bottom of that window.</p>
+  </item>
+</steps>
diff --git a/help/C/cal-quickstart.page b/help/C/cal-quickstart.page
new file mode 100644
index 0000000..a0e81d8
--- /dev/null
+++ b/help/C/cal-quickstart.page
@@ -0,0 +1,35 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      type="topic" style="task"
+      id="cal-quickstart">
+
+  <info>
+    <desc>Get started with California.</desc>
+    <link type="guide" xref="index"/>
+    <revision pkgversion="0.2" date="2014-07-05" status="draft"/>
+    
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Introduction</title>
+  <p><app>California</app> is a modern calendar application for the GNOME
+  desktop. Once <app>California</app> launches, you can start using it right
+  away.</p>
+  
+  <media type="image" mime="image/png" src="media/california-screenshot.png"/>
+  
+  <p>To add a new event, just click the <gui>Plus</gui> icon in the
+  <app>California</app> toolbar. You may find it helpful to review the
+  <link xref="cal-event-quick-add">Quick Add</link> help page, as it will show
+  you how to add both one-time and recurring events to your calendar.</p>
+
+  <p>To learn about additional <app>California</app> features, and to get
+  assistance with performing additional tasks, explore <link xref="index">the
+  other portions</link> of the <app>California</app> help.</p>
+
+</page>
diff --git a/help/C/cal-remove-calendar.page.stub b/help/C/cal-remove-calendar.page.stub
new file mode 100644
index 0000000..0ad9f9a
--- /dev/null
+++ b/help/C/cal-remove-calendar.page.stub
@@ -0,0 +1,26 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      type="guide" style="tip" version="1.0 ui/1.0"
+      id="cal-remove-calendar">
+
+  <info>
+    <desc>Delete a calendar and its related event details.</desc>
+    <link type="guide" xref="index#cal-manage-calendars"/>
+    <link type="seealso" xref="cal-hide-a-calendar"/>
+    <revision pkgversion="0.2" date="2014-07-20" status="stub"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Remove a Calendar</title>
+
+  <p>In some cases, you may decide that you no longer want to store or
+  track</p>
+
+</page>
diff --git a/help/C/cal-rename-calendar.page b/help/C/cal-rename-calendar.page
new file mode 100644
index 0000000..24ba669
--- /dev/null
+++ b/help/C/cal-rename-calendar.page
@@ -0,0 +1,37 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      type="guide" style="tip" version="1.0 ui/1.0"
+      id="cal-rename-calendar">
+
+  <info>
+    <desc>Change the name of a calendar.</desc>
+    <link type="guide" xref="index#cal-manage-calendars"/>
+    <link type="seealso" xref="cal-hide-a-calendar"/>
+    <revision pkgversion="0.2" date="2014-09-16" status="candidate"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Rename a Calendar</title>
+  
+  <steps>
+    <title>You can change the names of your calendars. Here is how to do it:
+    </title>
+    <item><p>Select the <gui>Calendar</gui> icon in the upper-right portion of
+    <app>California's</app> menu bar, or press <keyseq><key>Ctrl</key>
+    <key>L</key></keyseq>. A list of your current calendars will appear in a
+    new window.</p></item>
+    <item><p>Double-click the name of the calendar that you would like to
+    change.</p></item>
+    <item><p>Enter the new name for that calendar.</p></item>
+    <item><p>Select <gui>Close</gui>. The name of your calendar will be updated
+    immediately.</p></item>
+  </steps>
+
+</page>
diff --git a/help/C/cal-shortcut-keys.page b/help/C/cal-shortcut-keys.page
new file mode 100644
index 0000000..b4852b4
--- /dev/null
+++ b/help/C/cal-shortcut-keys.page
@@ -0,0 +1,91 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      xmlns:ui="http://projectmallard.org/ui/1.0/";
+      type="guide" style="tip" version="1.0 ui/1.0"
+      id="cal-shortcut-keys">
+
+  <info>
+    <desc>Learn California's keyboard shortcuts.</desc>
+    <link type="guide" xref="index"/>
+    <revision pkgversion="0.2" date="2014-09-06" status="draft"/>
+
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+    <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
+  </info>
+
+  <title>Shortcut Keys</title>
+
+  <p>Use <gui>shortcut keys</gui> to perform common tasks more quickly than with
+  the mouse and menus. The following table lists all of <app>California's</app>
+  shortcut keys.</p>
+  
+  <!-- 
+  I'm including the "ui:expanded" feature even though it's not currently
+  needed. We'll break out the keyboard shortcuts into groups after
+  there are more than a handful shortcuts, and the ui:expanded feature will be
+  useful at that time.
+  -->
+
+    <table rules="rows" frame="top bottom" ui:expanded="true">
+    <title>List of Shortcut Keys</title>
+      <thead>
+        <tr>
+          <td><p>To Do This</p></td>
+          <td><p>Press This</p></td>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td><p>Reset the view to highlight the current day</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>T</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>View the calendar as weeks</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>W</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>View the calendar as months</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>M</key></keyseq></p></td>
+        </tr>
+
+        <tr>
+          <td><p>View the next month / week</p></td>
+          <td><p><keyseq><key>Alt</key><key>Right Arrow</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>View the previous month / week</p></td>
+          <td><p><keyseq><key>Alt</key><key>Left Arrow</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>Open the <em>Quick-add</em> window</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>N</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>Open the list of calendars</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>L</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>Increase the font size</p></td>
+          <td><p><keyseq><key>+</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>Decrease the font size</p></td>
+          <td><p><keyseq><key>-</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>Reset the font size</p></td>
+          <td><p><keyseq><key>*</key></keyseq></p></td>
+        </tr>
+        <tr>
+          <td><p>Quit the application</p></td>
+          <td><p><keyseq><key>Ctrl</key><key>Q</key></keyseq></p></td>
+        </tr>
+      </tbody>
+    </table>
+
+</page>
diff --git a/help/C/gnome-help.sct b/help/C/gnome-help.sct
new file mode 100644
index 0000000..0c1e623
--- /dev/null
+++ b/help/C/gnome-help.sct
@@ -0,0 +1,22 @@
+<schema xmlns="http://www.ascc.net/xml/schematron"; >
+  <title>Some sanity checks for the GNOME desktop help</title>
+  <ns prefix="mal" uri="http://projectmallard.org/1.0/"/>
+  <ns prefix="xi" uri="http://www.w3.org/2001/XInclude"/>
+  <pattern name="Info element checks">
+    <rule context="mal:page/mal:info">
+      <assert test="not(mal:license)">Must not include license directly</assert>
+      <assert test="xi:include[ href='legal.xml']">Must include legal.xml</assert>
+    </rule>
+  </pattern>
+  <pattern name="Desc checks">
+    <rule context="mal:page/mal:info">
+      <assert test="normalize-space(mal:desc) != ''">Must have non-empty desc</assert>
+    </rule>
+    <rule context="mal:page/mal:info/mal:desc">
+      <assert test="substring(normalize-space(.), string-length(normalize-space(.))) = '.'">Desc must end 
with a period</assert>
+    </rule>
+    <rule context="mal:page/mal:info/mal:desc/mal:link">
+      <assert test="substring(normalize-space(..), string-length(normalize-space(..)) - 2) = '...'">Desc 
with links must end with an ellipsis</assert>
+    </rule>
+  </pattern>
+</schema>
diff --git a/help/C/index.page b/help/C/index.page
new file mode 100644
index 0000000..dff5ad7
--- /dev/null
+++ b/help/C/index.page
@@ -0,0 +1,49 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:its="http://www.w3.org/2005/11/its";
+      xmlns:e="http://projectmallard.org/experimental/";
+      type="guide" style="2column task"
+      id="index">
+
+  <info>
+    <desc>The California Help Guide.</desc>
+    <title type="link">California</title>
+    <title type="text">California</title>
+
+    <revision pkgversion="0.2" date="2014-09-06" status="candidate"/>
+    <credit type="author copyright">
+      <name>Jim Campbell</name>
+      <email its:translate="no">jcampbell gnome org</email>
+      <years>2014</years>
+    </credit>
+
+   <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"; /> 
+
+  </info>
+  
+  <title>
+    <media type="image" mime="image/png" src="media/x-office-calendar.png"
+    its:translate="no" />
+    California Calendar Help
+  </title>
+  <p>Welcome to the <app>California</app> help guide. For a
+  quick introduction into both <app>California's</app> most basic features,
+  as well as some advanced keyboard shortcuts, visit the
+  <link xref="cal-quickstart">Introduction</link> and
+  <link xref="cal-shortcut-keys">Shortcut Keys</link> pages.</p>
+
+  <p>Other help topics are grouped together into sections below.  Enjoy using
+  <app>California</app>!</p>
+  
+  <section id="cal-manage-calendars" style="2column">
+    <title>Manage Calendars</title>
+    <p>Learn how to add and manage your calendars.</p>
+  </section>
+
+  <section id="cal-manage-events">
+    <title>Manage Calendar Events</title>
+    <p>Learn how to add and manage events on your calendar.</p>
+    <links type="topic" groups="first" style="2column"/>
+  </section>
+
+
+</page>
diff --git a/help/C/legal.xml b/help/C/legal.xml
new file mode 100644
index 0000000..9050059
--- /dev/null
+++ b/help/C/legal.xml
@@ -0,0 +1,5 @@
+<license xmlns="http://projectmallard.org/1.0/";>
+
+<p>This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a 
copy of this license, visit <link 
xref="http://creativecommons.org/licenses/by-sa/3.0/";>http://creativecommons.org/licenses/by-sa/3.0/</link> 
or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.</p>
+</license>
+
diff --git a/help/C/media/california-screenshot.png b/help/C/media/california-screenshot.png
new file mode 100644
index 0000000..8a88f71
Binary files /dev/null and b/help/C/media/california-screenshot.png differ
diff --git a/help/C/media/x-office-calendar.png b/help/C/media/x-office-calendar.png
new file mode 100644
index 0000000..81791af
Binary files /dev/null and b/help/C/media/x-office-calendar.png differ
diff --git a/help/C/schematron.sh b/help/C/schematron.sh
new file mode 100755
index 0000000..8c3a4b9
--- /dev/null
+++ b/help/C/schematron.sh
@@ -0,0 +1 @@
+xmllint --noout --schematron gnome-help.sct *.page 2>&1 | grep -v validates
diff --git a/help/Makefile.am b/help/Makefile.am
new file mode 100644
index 0000000..6aa364a
--- /dev/null
+++ b/help/Makefile.am
@@ -0,0 +1,37 @@
+ YELP_HELP_RULES@
+
+NULL =
+
+HELP_ID = california
+
+HELP_MEDIA = \
+       media/california-screenshot.png \
+       media/x-office-calendar.png \
+       $(NULL)
+
+HELP_FILES = \
+       cal-add-calendar.page \
+       cal-change-view.page \
+       cal-event-edit.page \
+       cal-event-quick-add.page \
+       cal-event-remove.page \
+       cal-hide-a-calendar.page \
+       cal-open-calendar-list.xml \
+       cal-quickstart.page \
+       cal-remove-calendar.page.stub \
+       cal-rename-calendar.page \
+       cal-shortcut-keys.page \
+       gnome-help.sct \
+       index.page \
+       legal.xml \
+       $(NULL)
+
+HELP_LINGUAS = 
+
+GITIGNOREFILES = \
+       Makefile \
+       Makefile.in \
+       $(NULL)
+
+-include $(top_srcdir)/git.mk
+
diff --git a/src/Makefile.am b/src/Makefile.am
index ea6468a..5b025d7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,6 +1,3 @@
-NULL =
-GITIGNOREFILES = 
-
 AM_CPPFLAGS = \
        $(CALIFORNIA_CFLAGS) \
        -include $(CONFIG_HEADER) \
@@ -239,9 +236,13 @@ california_VALAFLAGS = \
        --pkg langinfo \
        $(NULL)
 
+# Note that code for SOURCE_ROOT_DIR must be changed if this file is moved to different directory
+SOURCE_ROOT_DIR = `cd ..; pwd`
+
 california_CFLAGS = \
        -DGETTEXT_PACKAGE=\""california"\" \
        -DPREFIX=\"$(prefix)\" \
+       -DSOURCE_ROOT_DIR=\"$(SOURCE_ROOT_DIR)\" \
        $(NULL)
 
 LIBS = \
@@ -268,7 +269,7 @@ DISTCLEANFILES = \
        Makefile.in \
        $(NULL)
 
-GITIGNOREFILES += \
+GITIGNOREFILES = \
        $(california_VALASOURCES:%.vala=%.c) \
        $(NULL)
 
diff --git a/src/application/california-application.vala b/src/application/california-application.vala
index 605b941..d65c5d9 100644
--- a/src/application/california-application.vala
+++ b/src/application/california-application.vala
@@ -7,6 +7,7 @@
 extern const string PACKAGE_VERSION;
 extern const string GETTEXT_PACKAGE;
 extern const string PREFIX;
+extern const string SOURCE_ROOT_DIR;
 
 namespace California {
 
@@ -22,7 +23,6 @@ public class Application : Gtk.Application {
     public const string WEBSITE_NAME = _("Visit California's home page");
     public const string WEBSITE_URL = "https://wiki.gnome.org/Apps/California";;
     public const string BUGREPORT_URL = "https://bugzilla.gnome.org/enter_bug.cgi?product=california";;
-    public const string QUICK_ADD_HELP_URL = "https://wiki.gnome.org/Apps/California/HowToUseQuickAdd";;
     public const string ID = "org.yorba.california";
     public const string ICON_NAME = "x-office-calendar";
     
@@ -277,9 +277,36 @@ public class Application : Gtk.Application {
     
     private void on_help() {
         try {
-            Gtk.show_uri(null, WEBSITE_URL, Gdk.CURRENT_TIME);
-        } catch (Error error) {
-            message("Error opening help URL: %s", error.message);
+            help();
+        } catch (Error err) {
+            error_message(main_window, err.message);
+        }
+    }
+    
+    /**
+     * Launch help for the specified topic.
+     *
+     * topic should be the name of the help page without its extension (i.e. no .page).
+     *
+     * If null, the main help page will be launched.
+     */
+    public void help(string? topic = null) throws Error {
+        if (is_installed) {
+            Gtk.show_uri(null,
+                String.is_empty(topic) ? "help:california" : "help:california/%s".printf(topic),
+                Gdk.CURRENT_TIME);
+        } else {
+            string path = String.is_empty(topic)
+                ? "%s/help/C/".printf(SOURCE_ROOT_DIR)
+                : "%s/help/C/%s.page".printf(SOURCE_ROOT_DIR, topic);
+            
+            string[] argv = { "gnome-help", path };
+            
+            Pid pid;
+            if (!Process.spawn_async(exec_dir.get_path(), argv, null,
+                SpawnFlags.SEARCH_PATH | SpawnFlags.STDERR_TO_DEV_NULL, null, out pid)) {
+                debug("Failed to launch help locally.");
+            }
         }
     }
     
diff --git a/src/host/host-quick-create-event.vala b/src/host/host-quick-create-event.vala
index c30fe73..2624cc5 100644
--- a/src/host/host-quick-create-event.vala
+++ b/src/host/host-quick-create-event.vala
@@ -94,7 +94,7 @@ public class QuickCreateEvent : Gtk.Grid, Toolkit.Card {
     [GtkCallback]
     private void on_help_button_clicked() {
         try {
-            Gtk.show_uri(null, Application.QUICK_ADD_HELP_URL, Gtk.get_current_event_time());
+            Application.instance.help("cal-event-quick-add");
         } catch (Error err) {
             report_error(_("Error opening help: %s").printf(err.message));
         }



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