aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkarl-qdh <karl@qdh.org.uk>2011-04-04 13:05:27 +0100
committerkarl-qdh <karl@qdh.org.uk>2011-04-04 13:05:27 +0100
commit26edf58f8d17fc0cf46de985f59b49a9b0a2999f (patch)
treeec81b54fba19db3b8bb07197548aaebc3670cb87
parente45dba38faf7ea699cdd8cf9f2b1bd6a6fe6642a (diff)
downloadayatana-indicator-datetime-26edf58f8d17fc0cf46de985f59b49a9b0a2999f.tar.gz
ayatana-indicator-datetime-26edf58f8d17fc0cf46de985f59b49a9b0a2999f.tar.bz2
ayatana-indicator-datetime-26edf58f8d17fc0cf46de985f59b49a9b0a2999f.zip
Added a change which _could_ work if evolution URI's were correct, however local:system is not a valid URI, effectively this will stop showing all calendars right now
-rw-r--r--configure.ac11
-rw-r--r--src/datetime-service.c17
2 files changed, 23 insertions, 5 deletions
diff --git a/configure.ac b/configure.ac
index ef49e53..2357aa3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -66,6 +66,7 @@ GDK_REQUIRED_VERSION=2.22
GLIB_REQUIRED_VERSION=2.26
GTK_REQUIRED_VERSION=2.12
GTK3_REQUIRED_VERSION=3.0
+GCONF_REQUIRED_VERSION=2.31
AS_IF([test "x$with_gtk" = x3],
[PKG_CHECK_MODULES(INDICATOR, indicator3 >= $INDICATOR_REQUIRED_VERSION
@@ -86,7 +87,7 @@ AS_IF([test "x$with_gtk" = x3],
AS_IF([test "x$with_gtk" = x3],
[PKG_CHECK_MODULES(SERVICE, indicator >= $INDICATOR_REQUIRED_VERSION
- glib-2.0 >= $GLIB_REQUIRED_VERSION
+ glib-2.0 >= $GLIB_REQUIRED_VERSION
dbusmenu-glib-0.4 >= $DBUSMENUGLIB_REQUIRED_VERSION
dbusmenu-gtk3-0.4 >= $DBUSMENUGTK_REQUIRED_VERSION
libido-0.1 >= $INDICATOR_DISPLAY_OBJECTS
@@ -97,11 +98,12 @@ AS_IF([test "x$with_gtk" = x3],
libedataserver-1.2 >= EDS_REQUIRED_VERSION
libedataserverui-1.2 >= EDS_REQUIRED_VERSION
cairo >= CAIRO_REQUIRED_VERSION
- gdk-2.0 >= GDK_REQUIRED_VERSION)
+ gdk-2.0 >= GDK_REQUIRED_VERSION
+ gconf-2.0 >= GCONF_REQUIRED_VERSION)
],
[test "x$with_gtk" = x2],
[PKG_CHECK_MODULES(SERVICE, indicator >= $INDICATOR_REQUIRED_VERSION
- glib-2.0 >= $GLIB_REQUIRED_VERSION
+ glib-2.0 >= $GLIB_REQUIRED_VERSION
dbusmenu-glib-0.4 >= $DBUSMENUGLIB_REQUIRED_VERSION
dbusmenu-gtk-0.4 >= $DBUSMENUGTK_REQUIRED_VERSION
libido-0.1 >= $INDICATOR_DISPLAY_OBJECTS
@@ -112,7 +114,8 @@ AS_IF([test "x$with_gtk" = x3],
libedataserver-1.2 >= EDS_REQUIRED_VERSION
libedataserverui-1.2 >= EDS_REQUIRED_VERSION
cairo >= CAIRO_REQUIRED_VERSION
- gdk-2.0 >= GDK_REQUIRED_VERSION)
+ gdk-2.0 >= GDK_REQUIRED_VERSION
+ gconf-2.0 >= GCONF_REQUIRED_VERSION)
],
[AC_MSG_FAILURE([Value for --with-gtk was neither 2 nor 3])]
)
diff --git a/src/datetime-service.c b/src/datetime-service.c
index 1ddaa4d..eb69d42 100644
--- a/src/datetime-service.c
+++ b/src/datetime-service.c
@@ -28,6 +28,7 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include <glib/gi18n.h>
#include <gio/gio.h>
#include <math.h>
+#include <gconf/gconf-client.h>
#include <libdbusmenu-gtk/menuitem.h>
#include <libdbusmenu-glib/server.h>
@@ -82,6 +83,7 @@ static GList * comp_instances = NULL;
static gboolean updating_appointments = FALSE;
static time_t start_time_appointments = (time_t) 0;
GSettings *conf;
+GConfClient* gconf;
/* Geoclue trackers */
@@ -698,7 +700,13 @@ update_appointment_menu_items (gpointer user_data)
comp_instances = NULL;
}
}
-
+ GSList *cal_list = gconf_client_get_list(gconf, "/apps/evolution/calendar/display/selected_calendars", GCONF_VALUE_STRING, &gerror);
+ if (gerror) {
+ g_debug("Failed to get evolution preference for enabled calendars");
+ g_error_free(gerror);
+ gerror = NULL;
+ cal_list = NULL;
+ }
// Generate instances for all sources
for (g = e_source_list_peek_groups (sources); g; g = g->next) {
ESourceGroup *group = E_SOURCE_GROUP (g->data);
@@ -716,6 +724,11 @@ update_appointment_menu_items (gpointer user_data)
gerror = NULL;
continue;
}
+ const gchar *ecal_uri = e_cal_get_uri(ecal);
+ g_debug("Checking ecal_uri is enabled: %s, %s", ecal_uri);
+ // If source URI is not in source_list continue
+ if (cal_list != NULL && g_slist_find(cal_list, ecal_uri) == NULL) continue;
+ g_debug("ecal_uri is enabled, generating instances");
e_cal_generate_instances (ecal, t1, t2, (ECalRecurInstanceFn) populate_appointment_instances, (gpointer) source);
}
@@ -1300,6 +1313,8 @@ main (int argc, char ** argv)
/* Set up GSettings */
conf = g_settings_new(SETTINGS_INTERFACE);
+ /* Set up gconf for getting evolution enabled calendars */
+ gconf = gconf_client_get_default();
// TODO Add a signal handler to catch gsettings changes and respond to them
/* Building the base menu */