aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/modules/e-task-shell-backend.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-05-09 06:18:58 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-05-09 06:18:58 +0800
commite18f9eb725e0be78db138e9eb0d58ed4d3370c82 (patch)
treec5d5a2580bfde5e90336ab08299d4519d425b885 /calendar/modules/e-task-shell-backend.c
parent538b8a736343c38907a2e8dbea3ba496c0d24ee7 (diff)
downloadgsoc2013-evolution-e18f9eb725e0be78db138e9eb0d58ed4d3370c82.tar
gsoc2013-evolution-e18f9eb725e0be78db138e9eb0d58ed4d3370c82.tar.gz
gsoc2013-evolution-e18f9eb725e0be78db138e9eb0d58ed4d3370c82.tar.bz2
gsoc2013-evolution-e18f9eb725e0be78db138e9eb0d58ed4d3370c82.tar.lz
gsoc2013-evolution-e18f9eb725e0be78db138e9eb0d58ed4d3370c82.tar.xz
gsoc2013-evolution-e18f9eb725e0be78db138e9eb0d58ed4d3370c82.tar.zst
gsoc2013-evolution-e18f9eb725e0be78db138e9eb0d58ed4d3370c82.zip
Adapt tasks to EShellBackend changes.
Diffstat (limited to 'calendar/modules/e-task-shell-backend.c')
-rw-r--r--calendar/modules/e-task-shell-backend.c167
1 files changed, 144 insertions, 23 deletions
diff --git a/calendar/modules/e-task-shell-backend.c b/calendar/modules/e-task-shell-backend.c
index 1dba011c96..6a89a27938 100644
--- a/calendar/modules/e-task-shell-backend.c
+++ b/calendar/modules/e-task-shell-backend.c
@@ -19,6 +19,8 @@
*
*/
+#include "e-task-shell-backend.h"
+
#include <string.h>
#include <glib/gi18n.h>
#include <libecal/e-cal.h>
@@ -37,19 +39,31 @@
#include "calendar/gui/dialogs/calendar-setup.h"
#include "calendar/gui/dialogs/task-editor.h"
+#include "e-task-shell-migrate.h"
#include "e-task-shell-view.h"
-#include "e-task-shell-backend-migrate.h"
-#define MODULE_NAME "tasks"
-#define MODULE_ALIASES ""
-#define MODULE_SCHEMES "task"
-#define MODULE_SORT_ORDER 600
+#define E_TASK_SHELL_BACKEND_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE \
+ ((obj), E_TYPE_TASK_SHELL_BACKEND, ETaskShellBackendPrivate))
#define WEB_BASE_URI "webcal://"
#define PERSONAL_RELATIVE_URI "system"
+struct _ETaskShellBackendPrivate {
+ ESourceList *source_list;
+};
+
+enum {
+ PROP_0,
+ PROP_SOURCE_LIST
+};
+
/* Module Entry Point */
-void e_shell_backend_init (GTypeModule *type_module);
+void e_module_load (GTypeModule *type_module);
+void e_module_unload (GTypeModule *type_module);
+
+GType e_task_shell_backend_type = 0;
+static gpointer parent_class;
static void
task_module_ensure_sources (EShellBackend *shell_backend)
@@ -484,32 +498,49 @@ task_module_window_created_cb (EShellBackend *shell_backend,
source_entries, G_N_ELEMENTS (source_entries));
}
-static EShellBackendInfo module_info = {
+static void
+task_shell_backend_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ switch (property_id) {
+ case PROP_SOURCE_LIST:
+ g_value_set_object (
+ value,
+ e_task_shell_backend_get_source_list (
+ E_TASK_SHELL_BACKEND (object)));
+ return;
+ }
- MODULE_NAME,
- MODULE_ALIASES,
- MODULE_SCHEMES,
- MODULE_SORT_ORDER,
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+}
- /* start */ NULL,
- /* is_busy */ NULL,
- /* shutdown */ NULL,
- e_task_shell_backend_migrate
-};
+static void
+task_shell_backend_dispose (GObject *object)
+{
+ ETaskShellBackendPrivate *priv;
-void
-e_shell_backend_init (GTypeModule *type_module)
+ priv = E_TASK_SHELL_BACKEND_GET_PRIVATE (object);
+
+ if (priv->source_list != NULL) {
+ g_object_unref (priv->source_list);
+ priv->source_list = NULL;
+ }
+
+ /* Chain up to parent's dispose() method. */
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+task_shell_backend_constructed (GObject *object)
{
EShell *shell;
EShellBackend *shell_backend;
- shell_backend = E_SHELL_BACKEND (type_module);
+ shell_backend = E_SHELL_BACKEND (object);
shell = e_shell_backend_get_shell (shell_backend);
- e_shell_backend_set_info (
- shell_backend, &module_info,
- e_task_shell_view_get_type (type_module));
-
task_module_ensure_sources (shell_backend);
g_signal_connect_swapped (
@@ -520,3 +551,93 @@ e_shell_backend_init (GTypeModule *type_module)
shell, "window-created",
G_CALLBACK (task_module_window_created_cb), shell_backend);
}
+
+static void
+task_shell_backend_class_init (ETaskShellBackendClass *class)
+{
+ GObjectClass *object_class;
+ EShellBackendClass *shell_backend_class;
+
+ parent_class = g_type_class_peek_parent (class);
+ g_type_class_add_private (class, sizeof (ETaskShellBackendPrivate));
+
+ object_class = G_OBJECT_CLASS (class);
+ object_class->get_property = task_shell_backend_get_property;
+ object_class->dispose = task_shell_backend_dispose;
+ object_class->constructed = task_shell_backend_constructed;
+
+ shell_backend_class = E_SHELL_BACKEND_CLASS (class);
+ shell_backend_class->name = "tasks";
+ shell_backend_class->aliases = "";
+ shell_backend_class->schemes = "task";
+ shell_backend_class->sort_order = 600;
+ shell_backend_class->view_type = E_TYPE_TASK_SHELL_VIEW;
+ shell_backend_class->start = NULL;
+ shell_backend_class->is_busy = NULL;
+ shell_backend_class->shutdown = NULL;
+ shell_backend_class->migrate = e_task_shell_backend_migrate;
+
+ g_object_class_install_property (
+ object_class,
+ PROP_SOURCE_LIST,
+ g_param_spec_object (
+ "source-list",
+ _("Source List"),
+ _("The registry of task lists"),
+ E_TYPE_SOURCE_LIST,
+ G_PARAM_READABLE));
+}
+
+static void
+task_shell_backend_init (ETaskShellBackend *task_shell_backend)
+{
+ task_shell_backend->priv =
+ E_TASK_SHELL_BACKEND_GET_PRIVATE (task_shell_backend);
+}
+
+GType
+e_task_shell_backend_get_type (GTypeModule *type_module)
+{
+ if (e_task_shell_backend_type == 0) {
+ const GTypeInfo type_info = {
+ sizeof (ETaskShellBackendClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) task_shell_backend_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
+ sizeof (ETaskShellBackend),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) task_shell_backend_init,
+ NULL /* value_table */
+ };
+
+ e_task_shell_backend_type =
+ g_type_module_register_type (
+ type_module, E_TYPE_SHELL_BACKEND,
+ "ETaskShellBackend", &type_info, 0);
+ }
+
+ return e_task_shell_backend_type;
+}
+
+ESourceList *
+e_task_shell_backend_get_source_list (ETaskShellBackend *task_shell_backend)
+{
+ g_return_val_if_fail (
+ E_IS_TASK_SHELL_BACKEND (task_shell_backend), NULL);
+
+ return task_shell_backend->priv->source_list;
+}
+
+void
+e_module_load (GTypeModule *type_module)
+{
+ e_task_shell_backend_get_type (type_module);
+ e_task_shell_view_get_type (type_module);
+}
+
+void
+e_module_unload (GTypeModule *type_module)
+{
+}