93 lines
3.9 KiB
Diff
93 lines
3.9 KiB
Diff
|
From 317b17b26d54e16d8cd1bdcd70fc44c70f9b865a Mon Sep 17 00:00:00 2001
|
||
|
From: "Owen W. Taylor" <otaylor@fishsoup.net>
|
||
|
Date: Fri, 20 Apr 2012 10:51:32 -0400
|
||
|
Subject: [PATCH] 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(-)
|
||
|
create mode 100644 data/org.gnome.shell.evolution.calendar.gschema.xml.in
|
||
|
|
||
|
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"
|
||
|
|
||
|
--
|
||
|
1.7.10
|
||
|
|