aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@ximian.com>2004-01-25 06:45:53 +0800
committerRodrigo Moya <rodrigo@src.gnome.org>2004-01-25 06:45:53 +0800
commite1e8526ea808a8d30251b7c871ffcd820b7c223d (patch)
treed61ece3425ac551468a7f8490d9f5592a744615a
parent419c24ed2a3901b126c461aa91b57a8ee3451d02 (diff)
downloadgsoc2013-evolution-e1e8526ea808a8d30251b7c871ffcd820b7c223d.tar.gz
gsoc2013-evolution-e1e8526ea808a8d30251b7c871ffcd820b7c223d.tar.zst
gsoc2013-evolution-e1e8526ea808a8d30251b7c871ffcd820b7c223d.zip
new function.
2004-01-24 Rodrigo Moya <rodrigo@ximian.com> * gui/calendar-component.[ch] (calendar_component_peek_source_selector): new function. * gui/tasks-component.[ch] (tasks_component_peek_source_selector): new function. * gui/e-tasks.c (backend_died_cb): * gui/gnome-cal.c (backend_died_cb): don't tell the user to restart Evolution, there is no need now, just unselecting and selecting back the calendar loads it again. Also, remove the crashed client from the list of loaded clients. Also, unselect the source on the source selector. svn path=/trunk/; revision=24417
-rw-r--r--calendar/ChangeLog15
-rw-r--r--calendar/gui/calendar-component.c6
-rw-r--r--calendar/gui/calendar-component.h2
-rw-r--r--calendar/gui/e-tasks.c13
-rw-r--r--calendar/gui/gnome-cal.c22
-rw-r--r--calendar/gui/tasks-component.c6
-rw-r--r--calendar/gui/tasks-component.h2
7 files changed, 53 insertions, 13 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index f51ae5d262..0560b2facf 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,18 @@
+2004-01-24 Rodrigo Moya <rodrigo@ximian.com>
+
+ * gui/calendar-component.[ch]
+ (calendar_component_peek_source_selector): new function.
+
+ * gui/tasks-component.[ch]
+ (tasks_component_peek_source_selector): new function.
+
+ * gui/e-tasks.c (backend_died_cb):
+ * gui/gnome-cal.c (backend_died_cb): don't tell the user to restart
+ Evolution, there is no need now, just unselecting and selecting
+ back the calendar loads it again. Also, remove the crashed client
+ from the list of loaded clients. Also, unselect the source on
+ the source selector.
+
2004-01-24 JP Rosevear <jpr@ximian.com>
* gui/tasks-component.c (update_primary_selection): use
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c
index 47d2711f48..7efcafc8ae 100644
--- a/calendar/gui/calendar-component.c
+++ b/calendar/gui/calendar-component.c
@@ -853,6 +853,12 @@ calendar_component_peek_source_list (CalendarComponent *component)
return component->priv->source_list;
}
+ESourceSelector *
+calendar_component_peek_source_selector (CalendarComponent *component)
+{
+ return component->priv->source_selector;
+}
+
EActivityHandler *
calendar_component_peek_activity_handler (CalendarComponent *component)
{
diff --git a/calendar/gui/calendar-component.h b/calendar/gui/calendar-component.h
index 1ddadf6857..04672c1122 100644
--- a/calendar/gui/calendar-component.h
+++ b/calendar/gui/calendar-component.h
@@ -27,6 +27,7 @@
#include <bonobo/bonobo-object.h>
#include <libedataserver/e-source-list.h>
+#include "widgets/misc/e-source-selector.h"
#include "e-activity-handler.h"
#include "Evolution.h"
@@ -62,6 +63,7 @@ CalendarComponent *calendar_component_peek (void);
const char *calendar_component_peek_base_directory (CalendarComponent *component);
const char *calendar_component_peek_config_directory (CalendarComponent *component);
ESourceList *calendar_component_peek_source_list (CalendarComponent *component);
+ESourceSelector *calendar_component_peek_source_selector (CalendarComponent *component);
EActivityHandler *calendar_component_peek_activity_handler (CalendarComponent *component);
diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c
index caba394248..bd4162c617 100644
--- a/calendar/gui/e-tasks.c
+++ b/calendar/gui/e-tasks.c
@@ -763,10 +763,7 @@ backend_died_cb (ECal *client, gpointer data)
priv = tasks->priv;
/* FIXME: this doesn't remove the task list from the list or anything */
- message = g_strdup_printf (_("The task backend for\n%s\n has crashed. "
- "You will have to restart Evolution in order "
- "to use it again"),
- e_cal_get_uri (client));
+ message = g_strdup_printf (_("The task backend for\n%s\n has crashed."), e_cal_get_uri (client));
e_calendar_table_set_status_message (E_CALENDAR_TABLE (e_tasks_get_calendar_table (tasks)), NULL);
dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (tasks))),
@@ -775,6 +772,14 @@ backend_died_cb (ECal *client, gpointer data)
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
g_free (message);
+
+ e_source_selector_unselect_source (
+ tasks_component_peek_source_selector (tasks_component_peek ()),
+ e_cal_get_source (client));
+
+ g_hash_table_remove (priv->clients, e_cal_get_uri (client));
+ priv->clients_list = g_list_remove (priv->clients_list, client);
+ g_object_unref (client);
}
void
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 22eab34e2a..c703a188c0 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -1908,24 +1908,28 @@ backend_died_cb (ECal *client, gpointer data)
gcal = GNOME_CALENDAR (data);
priv = gcal->priv;
- /* FIXME This doesn't remove the calendar from the list or anything */
uristr = get_uri_without_password (e_cal_get_uri (client));
if (client == priv->task_pad_client) {
- message = g_strdup_printf (_("The task backend for\n%s\n has crashed. "
- "You will have to restart Evolution in order "
- "to use it again"),
- uristr);
+ message = g_strdup_printf (_("The task backend for\n%s\n has crashed."), uristr);
e_calendar_table_set_status_message (E_CALENDAR_TABLE (priv->todo), NULL);
+
+ g_object_unref (priv->task_pad_client);
+ priv->task_pad_client = NULL;
} else {
int i;
- message = g_strdup_printf (_("The calendar backend for\n%s\n has crashed. "
- "You will have to restart Evolution in order "
- "to use it again"),
- uristr);
+ message = g_strdup_printf (_("The calendar backend for\n%s\n has crashed."), uristr);
for (i = 0; i < GNOME_CAL_LAST_VIEW; i++)
e_calendar_view_set_status_message (priv->views[i], NULL);
+
+ e_source_selector_unselect_source (
+ calendar_component_peek_source_selector (calendar_component_peek ()),
+ e_cal_get_source (client));
+
+ g_hash_table_remove (priv->clients, e_cal_get_uri (client));
+ priv->clients_list = g_list_remove (priv->clients_list, client);
+ g_object_unref (client);
}
dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gcal))),
diff --git a/calendar/gui/tasks-component.c b/calendar/gui/tasks-component.c
index f037680781..c7cb7d81b0 100644
--- a/calendar/gui/tasks-component.c
+++ b/calendar/gui/tasks-component.c
@@ -785,6 +785,12 @@ tasks_component_peek_source_list (TasksComponent *component)
return component->priv->source_list;
}
+ESourceSelector *
+tasks_component_peek_source_selector (TasksComponent *component)
+{
+ return component->priv->source_selector;
+}
+
EActivityHandler *
tasks_component_peek_activity_handler (TasksComponent *component)
{
diff --git a/calendar/gui/tasks-component.h b/calendar/gui/tasks-component.h
index 063150a56f..cd54ea5ae3 100644
--- a/calendar/gui/tasks-component.h
+++ b/calendar/gui/tasks-component.h
@@ -26,6 +26,7 @@
#include <bonobo/bonobo-object.h>
#include <libedataserver/e-source-list.h>
#include <shell/e-activity-handler.h>
+#include <widgets/misc/e-source-selector.h>
#include "Evolution.h"
@@ -59,6 +60,7 @@ TasksComponent *tasks_component_peek (void);
const char *tasks_component_peek_base_directory (TasksComponent *component);
const char *tasks_component_peek_config_directory (TasksComponent *component);
ESourceList *tasks_component_peek_source_list (TasksComponent *component);
+ESourceSelector *tasks_component_peek_source_selector (TasksComponent *component);
EActivityHandler *tasks_component_peek_activity_handler (TasksComponent *component);
#endif /* _TASKS_COMPONENT_H_ */