Karl Lattimer has proposed merging
lp:~karl-qdh/indicator-datetime/multiplecalendarsources_and_timezones into
lp:indicator-datetime.
Requested reviews:
Ted Gould (ted)
Related bugs:
#715844 Locations in datetime indicator
https://bugs.launchpad.net/bugs/715844
#717209 Support remote calendars, asynchronously
https://bugs.launchpad.net/bugs/717209
For more details, see:
https://code.launchpad.net/~karl-qdh/indicator-datetime/multiplecalendarsources_and_timezones/+merge/50011
--
https://code.launchpad.net/~karl-qdh/indicator-datetime/multiplecalendarsources_and_timezones/+merge/50011
Your team ayatana-commits is subscribed to branch lp:indicator-datetime.
=== modified file 'configure.ac'
--- configure.ac 2011-02-09 03:37:50 +
+++ configure.ac 2011-02-16 17:06:57 +
@@ -91,6 +91,7 @@
libecal-1.2 = $ECAL_REQUIRED_VERSION
libical = $ICAL_REQUIRED_VERSION
libedataserver-1.2 = EDS_REQUIRED_VERSION
+ libedataserverui-1.2 = EDS_REQUIRED_VERSION
cairo = CAIRO_REQUIRED_VERSION
gdk-2.0 = GDK_REQUIRED_VERSION)
],
@@ -105,6 +106,7 @@
libecal-1.2 = $ECAL_REQUIRED_VERSION
libical = $ICAL_REQUIRED_VERSION
libedataserver-1.2 = EDS_REQUIRED_VERSION
+ libedataserverui-1.2 = EDS_REQUIRED_VERSION
cairo = CAIRO_REQUIRED_VERSION
gdk-2.0 = GDK_REQUIRED_VERSION)
],
=== modified file 'data/com.canonical.indicator.datetime.gschema.xml'
--- data/com.canonical.indicator.datetime.gschema.xml 2011-01-17 17:50:14 +
+++ data/com.canonical.indicator.datetime.gschema.xml 2011-02-16 17:06:57 +
@@ -57,5 +57,13 @@
more information.
/description
/key
+ key name=locations type=as
+ default[]/default
+ summaryA List of locations/summary
+ description
+ Adds the list of locations the user has configured to display in the
+ indicator-datetime menu.
+ /description
+ /key
/schema
/schemalist
=== modified file 'src/datetime-service.c'
--- src/datetime-service.c 2011-02-09 04:26:31 +
+++ src/datetime-service.c 2011-02-16 17:06:57 +
@@ -42,6 +42,7 @@
#include libical/ical.h
#include libecal/e-cal-time-util.h
#include libedataserver/e-source.h
+#include libedataserverui/e-passwords.h
// Other users of ecal seem to also include these, not sure why they should be included by the above
#include libical/icaltime.h
#include cairo/cairo.h
@@ -52,8 +53,13 @@
#include datetime-interface.h
#include dbus-shared.h
+
+#define SETTINGS_INTERFACE com.canonical.indicator.datetime
+#define SETTINGS_LOCATIONS locations
+
static void geo_create_client (GeoclueMaster * master, GeoclueMasterClient * client, gchar * path, GError * error, gpointer user_data);
static gboolean update_appointment_menu_items (gpointer user_data);
+static gboolean update_timezone_menu_items(gpointer user_data);
static void setup_timer (void);
static void geo_client_invalid (GeoclueMasterClient * client, gpointer user_data);
static void geo_address_change (GeoclueMasterClient * client, gchar * a, gchar * b, gchar * c, gchar * d, gpointer user_data);
@@ -63,30 +69,35 @@
static DbusmenuServer * server = NULL;
static DbusmenuMenuitem * root = NULL;
static DatetimeInterface * dbus = NULL;
-static gchar * current_timezone = NULL;
/* Global Items */
static DbusmenuMenuitem * date = NULL;
static DbusmenuMenuitem * calendar = NULL;
static DbusmenuMenuitem * settings = NULL;
-static DbusmenuMenuitem * tzchange = NULL;
+static DbusmenuMenuitem * locations_separator = NULL;
+static DbusmenuMenuitem * geo_location = NULL;
+static DbusmenuMenuitem * current_location = NULL;
+//static DbusmenuMenuitem * ecal_location = NULL;
static DbusmenuMenuitem * add_appointment = NULL;
-// static DbusmenuMenuitem * add_location = NULL;
static GList * appointments = NULL;
-static ECal* ecal = NULL;
-static const gchar * ecal_timezone = NULL;
-static icaltimezone *tzone;
+static GList * dconflocations = NULL;
+GSettings *conf;
+
/* Geoclue trackers */
static GeoclueMasterClient * geo_master = NULL;
static GeoclueAddress * geo_address = NULL;
-static gchar * geo_timezone = NULL;
+
+/* Our 2 important timezones */
+static gchar * current_timezone = NULL;
+static gchar * geo_timezone = NULL;
/* Check to see if our timezones are the same */
static void
check_timezone_sync (void) {
+ gchar * label;
gboolean in_sync = FALSE;
-
+
if (geo_timezone == NULL) {
in_sync = TRUE;
}
@@ -105,18 +116,67 @@
g_debug(Timezones are different);
}
- if (tzchange != NULL) {
+ if (geo_location != NULL current_location != NULL) {
+ g_debug(Got timezone %s, current_timezone);
+ g_debug(Got timezone %s, geo_timezone);
+ // Show