aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog14
-rw-r--r--calendar/gui/control-factory.c19
-rw-r--r--calendar/gui/e-tasks.c18
-rw-r--r--calendar/gui/gnome-cal.c21
-rw-r--r--calendar/gui/tasks-control.c17
5 files changed, 57 insertions, 32 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index a7a470acce..a3afa5f74b 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,17 @@
+2002-02-13 Rodrigo Moya <rodrigo@ximian.com>
+
+ * gui/control-factory.c (set_prop): don't append 'calendar.ics'
+ to the URI.
+ (get_prop): finished.
+
+ * gui/tasks-control.c (tasks_control_set_property): don't append
+ 'tasks.ics' to the URI.
+ (tasks_control_get_property): finished.
+
+ * gui/gnome-cal.c (gnome_calendar_open):
+ * gui/e-tasks.c (e_tasks_open): append $filename.ics to the uri to be
+ opened if the uri is local. Leave intact in other cases.
+
2002-02-08 Damon Chaplin <damon@ximian.com>
* gui/comp-util.c (cal_comp_util_compare_event_timezones): check if
diff --git a/calendar/gui/control-factory.c b/calendar/gui/control-factory.c
index f497d633e3..724d5881df 100644
--- a/calendar/gui/control-factory.c
+++ b/calendar/gui/control-factory.c
@@ -68,17 +68,14 @@ get_prop (BonoboPropertyBag *bag,
CORBA_Environment *ev,
gpointer user_data)
{
- /*GnomeCalendar *gcal = user_data;*/
+ GnomeCalendar *gcal = user_data;
+ char *uri;
switch (arg_id) {
case PROPERTY_CALENDAR_URI_IDX:
- /*
- if (fb && fb->uri)
- BONOBO_ARG_SET_STRING (arg, fb->uri);
- else
- BONOBO_ARG_SET_STRING (arg, "");
- */
+ uri = cal_client_get_uri (gnome_calendar_get_cal_client (gcal));
+ BONOBO_ARG_SET_STRING (arg, uri);
break;
default:
@@ -95,14 +92,10 @@ set_prop (BonoboPropertyBag *bag,
gpointer user_data)
{
GnomeCalendar *gcal = user_data;
- char *filename;
switch (arg_id) {
case PROPERTY_CALENDAR_URI_IDX:
- filename = g_strdup_printf ("%s/calendar.ics",
- BONOBO_ARG_GET_STRING (arg));
- gnome_calendar_open (gcal, filename); /* FIXME: result value -> exception? */
- g_free (filename);
+ gnome_calendar_open (gcal, BONOBO_ARG_GET_STRING (arg)); /* FIXME: result value -> exception? */
break;
default:
@@ -156,7 +149,7 @@ control_factory_init (void)
factory = bonobo_generic_factory_new (CONTROL_FACTORY_ID, control_factory_fn, NULL);
bonobo_running_context_auto_exit_unref (BONOBO_OBJECT (factory));
-
+
if (factory == NULL)
g_error ("I could not register a Calendar control factory.");
}
diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c
index 2fa52dd652..b9443a2875 100644
--- a/calendar/gui/e-tasks.c
+++ b/calendar/gui/e-tasks.c
@@ -29,6 +29,7 @@
#include <gal/menus/gal-view-instance.h>
#include <gal/menus/gal-view-factory-etable.h>
#include <gal/menus/gal-view-etable.h>
+#include "e-util/e-url.h"
#include "widgets/menus/gal-view-menus.h"
#include "dialogs/task-editor.h"
#include "cal-search-bar.h"
@@ -332,6 +333,8 @@ e_tasks_open (ETasks *tasks,
ETasksPrivate *priv;
char *config_filename;
char *message;
+ EUri *uri;
+ char *real_uri;
g_return_val_if_fail (tasks != NULL, FALSE);
g_return_val_if_fail (E_IS_TASKS (tasks), FALSE);
@@ -339,12 +342,21 @@ e_tasks_open (ETasks *tasks,
priv = tasks->priv;
- message = g_strdup_printf (_("Opening tasks at %s"), file);
+ uri = e_uri_new (file);
+ if (!uri || !g_strncasecmp (uri->protocol, "file", 4))
+ real_uri = g_concat_dir_and_file (file, "tasks.ics");
+ else
+ real_uri = g_strdup (file);
+
+ message = g_strdup_printf (_("Opening tasks at %s"), real_uri);
set_status_message (tasks, message);
g_free (message);
- if (!cal_client_open_calendar (priv->client, file, FALSE)) {
+ if (!cal_client_open_calendar (priv->client, real_uri, FALSE)) {
g_message ("e_tasks_open(): Could not issue the request");
+ g_free (real_uri);
+ e_uri_free (uri);
+
return FALSE;
}
@@ -352,6 +364,8 @@ e_tasks_open (ETasks *tasks,
e_calendar_table_load_state (E_CALENDAR_TABLE (priv->tasks_view),
config_filename);
g_free (config_filename);
+ g_free (real_uri);
+ e_uri_free (uri);
return TRUE;
}
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 8d75a39c75..0799c6a218 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -1847,6 +1847,7 @@ gnome_calendar_open (GnomeCalendar *gcal, const char *str_uri)
gboolean success;
EUri *uri;
char *message;
+ char *real_uri;
g_return_val_if_fail (gcal != NULL, FALSE);
g_return_val_if_fail (GNOME_IS_CALENDAR (gcal), FALSE);
@@ -1862,20 +1863,28 @@ gnome_calendar_open (GnomeCalendar *gcal, const char *str_uri)
cal_client_get_load_state (priv->task_pad_client) == CAL_CLIENT_LOAD_NOT_LOADED,
FALSE);
- message = g_strdup_printf (_("Opening calendar at %s"), str_uri);
+ uri = e_uri_new (str_uri);
+ if (!uri || !g_strncasecmp (uri->protocol, "file", 4))
+ real_uri = g_concat_dir_and_file (str_uri, "calendar.ics");
+ else
+ real_uri = g_strdup (str_uri);
+
+ message = g_strdup_printf (_("Opening calendar at %s"), real_uri);
e_week_view_set_status_message (E_WEEK_VIEW (priv->week_view), message);
g_free (message);
- if (!cal_client_open_calendar (priv->client, str_uri, FALSE)) {
+ if (!cal_client_open_calendar (priv->client, real_uri, FALSE)) {
g_message ("gnome_calendar_open(): Could not issue the request");
+ g_free (real_uri);
+ e_uri_free (uri);
+
return FALSE;
}
- add_alarms (str_uri);
+ add_alarms (real_uri);
/* Open the appropriate Tasks folder to show in the TaskPad */
- uri = e_uri_new (str_uri);
if (!uri) {
tasks_uri = g_strdup_printf ("%s/local/Tasks/tasks.ics", evolution_dir);
success = cal_client_open_calendar (priv->task_pad_client, tasks_uri, FALSE);
@@ -1912,9 +1921,11 @@ gnome_calendar_open (GnomeCalendar *gcal, const char *str_uri)
success = TRUE;
}
- e_uri_free (uri);
}
+ g_free (real_uri);
+ e_uri_free (uri);
+
if (!success) {
g_message ("gnome_calendar_open(): Could not issue the request");
return FALSE;
diff --git a/calendar/gui/tasks-control.c b/calendar/gui/tasks-control.c
index 22d87a1e08..08e363fe8e 100644
--- a/calendar/gui/tasks-control.c
+++ b/calendar/gui/tasks-control.c
@@ -150,17 +150,14 @@ tasks_control_get_property (BonoboPropertyBag *bag,
CORBA_Environment *ev,
gpointer user_data)
{
- /*GnomeCalendar *gcal = user_data;*/
+ ETasks *tasks = user_data;
+ char *uri;
switch (arg_id) {
case TASKS_CONTROL_PROPERTY_URI_IDX:
- /*
- if (fb && fb->uri)
- BONOBO_ARG_SET_STRING (arg, fb->uri);
- else
- BONOBO_ARG_SET_STRING (arg, "");
- */
+ uri = cal_client_get_uri (e_tasks_get_cal_client (tasks));
+ BONOBO_ARG_SET_STRING (arg, uri);
break;
default:
@@ -177,15 +174,11 @@ tasks_control_set_property (BonoboPropertyBag *bag,
gpointer user_data)
{
ETasks *tasks = user_data;
- char *filename;
switch (arg_id) {
case TASKS_CONTROL_PROPERTY_URI_IDX:
- filename = g_strdup_printf ("%s/tasks.ics",
- BONOBO_ARG_GET_STRING (arg));
- e_tasks_open (tasks, filename);
- g_free (filename);
+ e_tasks_open (tasks, BONOBO_ARG_GET_STRING (arg));
break;
default: