[gnome-shell] Mirror Evolution calendar settings into our own schema



commit 3d95e7bb111ca72d59e6ab81c007d3ccb2cf838d
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Fri Apr 20 10:51:32 2012 -0400

    Mirror Evolution calendar settings into our own schema
    
    Right now, we are hard-depending on the presence of Evolution by
    using its settings schemas. This is likely to be unpopular, and
    also causes instability if someone happens not to have Evolution
    installed, so install a schema that has the same data path as
    the Evolution schema, but a different name and install that
    for the keys we need.
    
    To avoid a string-freeze break, we rely on the translations in
    Evolution - if Evolution isn't installed, the key descriptions
    will be untranslated in dconf-editor.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=674424

 data/Makefile.am                                   |    2 +-
 ...g.gnome.shell.evolution.calendar.gschema.xml.in |   21 ++++++++++++++++++++
 po/POTFILES.skip                                   |    1 +
 src/calendar-server/calendar-sources.c             |    5 +++-
 4 files changed, 27 insertions(+), 2 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index 4803081..05caf27 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -53,7 +53,7 @@ dist_theme_DATA =				\
 	theme/ws-switch-arrow-up.svg		\
 	theme/ws-switch-arrow-down.svg
 
-gsettings_SCHEMAS = org.gnome.shell.gschema.xml
+gsettings_SCHEMAS = org.gnome.shell.gschema.xml org.gnome.shell.evolution.calendar.gschema.xml
 
 @INTLTOOL_XML_NOMERGE_RULE@
 @GSETTINGS_RULES@
diff --git a/data/org.gnome.shell.evolution.calendar.gschema.xml.in b/data/org.gnome.shell.evolution.calendar.gschema.xml.in
new file mode 100644
index 0000000..f0ce82b
--- /dev/null
+++ b/data/org.gnome.shell.evolution.calendar.gschema.xml.in
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- NOTE: This schema is a GNOME 3.4 workaround - it uses the same path
+     as org.gnome.evolution.calendar, but avoids us requiring Evolution
+     be installed. In GNOME 3.6 the selected state will become a flag
+     on the calendar. Because the translations are in Evolution,
+     this is untranslated and in POTFILES.skip.
+  -->
+<schemalist>
+  <schema path="/org/gnome/evolution/calendar/" id="org.gnome.shell.evolution.calendar" gettext-domain="evolution">
+    <key type="as" name="selected-calendars">
+      <default>[]</default>
+      <summary>List of selected calendars</summary>
+      <description>List of calendars to load</description>
+    </key>
+    <key type="as" name="selected-tasks">
+      <default>[]</default>
+      <summary>List of selected task lists</summary>
+      <description>List of task lists to load</description>
+    </key>
+  </schema>
+</schemalist>
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index e032bdc..fe31eda 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -1,2 +1,3 @@
 data/gnome-shell.desktop.in
 data/gnome-shell-extension-prefs.desktop.in
+data/org.gnome.shell.evolution.calendar.gschema.xml.in
diff --git a/src/calendar-server/calendar-sources.c b/src/calendar-server/calendar-sources.c
index a1eb80f..59fa044 100644
--- a/src/calendar-server/calendar-sources.c
+++ b/src/calendar-server/calendar-sources.c
@@ -52,7 +52,10 @@
 #define CALENDAR_SOURCES_APPOINTMENT_SOURCES_KEY          CALENDAR_SOURCES_EVO_DIR "/calendar/sources"
 #define CALENDAR_SOURCES_TASK_SOURCES_KEY                 CALENDAR_SOURCES_EVO_DIR "/tasks/sources"
 
-#define CALENDAR_SELECTED_SOURCES_SCHEMA                  "org.gnome.evolution.calendar"
+/* org.gnome.shell.evolution.calendar has the same data behind it
+ * as org.gnome.evolution.calendar, but is a small schema we install
+ * ourselves */
+#define CALENDAR_SELECTED_SOURCES_SCHEMA                  "org.gnome.shell.evolution.calendar"
 #define CALENDAR_SOURCES_SELECTED_APPOINTMENT_SOURCES_KEY "selected-calendars"
 #define CALENDAR_SOURCES_SELECTED_TASK_SOURCES_KEY        "selected-tasks"
 



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