aboutsummaryrefslogtreecommitdiffstats
path: root/e-util
diff options
context:
space:
mode:
Diffstat (limited to 'e-util')
-rw-r--r--e-util/Makefile.am18
-rw-r--r--e-util/e-activity.c277
-rw-r--r--e-util/e-activity.h24
-rw-r--r--e-util/e-file-utils.c78
-rw-r--r--e-util/e-io-activity.c191
-rw-r--r--e-util/e-io-activity.h72
-rw-r--r--e-util/e-util-enums.h35
-rw-r--r--e-util/e-util.h1
8 files changed, 166 insertions, 530 deletions
diff --git a/e-util/Makefile.am b/e-util/Makefile.am
index d96b2b0bc3..3f4388ebe1 100644
--- a/e-util/Makefile.am
+++ b/e-util/Makefile.am
@@ -2,6 +2,14 @@ eutilincludedir = $(privincludedir)/e-util
ecpsdir = $(privdatadir)/ecps
ruledir = $(privdatadir)
+include $(top_srcdir)/glib-gen.mak
+glib_enum_headers=e-util-enums.h
+glib_enum_define=E
+glib_enum_prefix=e
+
+ENUM_GENERATED = e-util-enumtypes.h e-util-enumtypes.c
+MARSHAL_GENERATED = e-marshal.c e-marshal.h
+
if OS_WIN32
PLATFORM_SOURCES = e-win32-reloc.c e-win32-defaults.c e-win32-defaults.h
endif
@@ -28,7 +36,6 @@ eutilinclude_HEADERS = \
e-html-utils.h \
e-icon-factory.h \
e-import.h \
- e-io-activity.h \
e-marshal.h \
e-mktemp.h \
e-module.h \
@@ -49,6 +56,8 @@ eutilinclude_HEADERS = \
e-text-event-processor.h \
e-ui-manager.h \
e-util.h \
+ e-util-enums.h \
+ e-util-enumtypes.h \
e-unicode.h \
e-xml-utils.h \
gconf-bridge.h
@@ -103,7 +112,6 @@ libeutil_la_SOURCES = \
e-html-utils.c \
e-icon-factory.c \
e-import.c \
- e-io-activity.c \
e-marshal.c \
e-mktemp.c \
e-module.c \
@@ -124,15 +132,13 @@ libeutil_la_SOURCES = \
e-ui-manager.c \
e-util.c \
e-unicode.c \
+ e-util-enumtypes.c \
e-util-private.h \
e-xml-utils.c \
gconf-bridge.c \
gtk-compat.h \
$(PLATFORM_SOURCES)
-MARSHAL_GENERATED = e-marshal.c e-marshal.h
-@EVO_MARSHAL_RULE@
-
libeutil_la_LDFLAGS = $(NO_UNDEFINED)
libeutil_la_LIBADD = \
@@ -149,7 +155,7 @@ EXTRA_DIST = \
e-system.error.xml \
e-marshal.list
-BUILT_SOURCES = $(MARSHAL_GENERATED) $(error_DATA)
+BUILT_SOURCES = $(ENUM_GENERATED) $(MARSHAL_GENERATED) $(error_DATA)
CLEANFILES = $(BUILT_SOURCES)
dist-hook:
diff --git a/e-util/e-activity.c b/e-util/e-activity.c
index 38196e8484..7e0cb1c8be 100644
--- a/e-util/e-activity.c
+++ b/e-util/e-activity.c
@@ -26,6 +26,7 @@
#include <camel/camel.h>
#include "e-util/e-util.h"
+#include "e-util/e-util-enumtypes.h"
#define E_ACTIVITY_GET_PRIVATE(obj) \
(G_TYPE_INSTANCE_GET_PRIVATE \
@@ -33,36 +34,22 @@
struct _EActivityPrivate {
GCancellable *cancellable;
+ EActivityState state;
gchar *icon_name;
- gchar *primary_text;
- gchar *secondary_text;
+ gchar *text;
gdouble percent;
-
- guint clickable : 1;
- guint completed : 1;
};
enum {
PROP_0,
PROP_CANCELLABLE,
- PROP_CLICKABLE,
PROP_ICON_NAME,
PROP_PERCENT,
- PROP_PRIMARY_TEXT,
- PROP_SECONDARY_TEXT
+ PROP_STATE,
+ PROP_TEXT
};
-enum {
- CANCELLED,
- CLICKED,
- COMPLETED,
- DESCRIBE,
- LAST_SIGNAL
-};
-
-static gulong signals[LAST_SIGNAL];
-
G_DEFINE_TYPE (
EActivity,
e_activity,
@@ -78,29 +65,7 @@ activity_camel_status_cb (EActivity *activity,
g_object_set (
activity, "percent", (gdouble) percent,
- "primary-text", description, NULL);
-}
-
-static gboolean
-activity_describe_accumulator (GSignalInvocationHint *ihint,
- GValue *return_accu,
- const GValue *handler_return,
- gpointer accu_data)
-{
- const gchar *string;
-
- string = g_value_get_string (handler_return);
- g_value_set_string (return_accu, string);
-
- return (string == NULL);
-}
-
-static void
-activity_emit_cancelled (EActivity *activity)
-{
- /* This signal should only be emitted via our GCancellable,
- * which is why we don't expose this function publicly. */
- g_signal_emit (activity, signals[CANCELLED], 0);
+ "text", description, NULL);
}
static void
@@ -116,12 +81,6 @@ activity_set_property (GObject *object,
g_value_get_object (value));
return;
- case PROP_CLICKABLE:
- e_activity_set_clickable (
- E_ACTIVITY (object),
- g_value_get_boolean (value));
- return;
-
case PROP_ICON_NAME:
e_activity_set_icon_name (
E_ACTIVITY (object),
@@ -134,14 +93,14 @@ activity_set_property (GObject *object,
g_value_get_double (value));
return;
- case PROP_PRIMARY_TEXT:
- e_activity_set_primary_text (
+ case PROP_STATE:
+ e_activity_set_state (
E_ACTIVITY (object),
- g_value_get_string (value));
+ g_value_get_enum (value));
return;
- case PROP_SECONDARY_TEXT:
- e_activity_set_secondary_text (
+ case PROP_TEXT:
+ e_activity_set_text (
E_ACTIVITY (object),
g_value_get_string (value));
return;
@@ -163,12 +122,6 @@ activity_get_property (GObject *object,
E_ACTIVITY (object)));
return;
- case PROP_CLICKABLE:
- g_value_set_boolean (
- value, e_activity_get_clickable (
- E_ACTIVITY (object)));
- return;
-
case PROP_ICON_NAME:
g_value_set_string (
value, e_activity_get_icon_name (
@@ -181,15 +134,15 @@ activity_get_property (GObject *object,
E_ACTIVITY (object)));
return;
- case PROP_PRIMARY_TEXT:
- g_value_set_string (
- value, e_activity_get_primary_text (
+ case PROP_STATE:
+ g_value_set_enum (
+ value, e_activity_get_state (
E_ACTIVITY (object)));
return;
- case PROP_SECONDARY_TEXT:
+ case PROP_TEXT:
g_value_set_string (
- value, e_activity_get_secondary_text (
+ value, e_activity_get_text (
E_ACTIVITY (object)));
return;
}
@@ -225,55 +178,51 @@ activity_finalize (GObject *object)
priv = E_ACTIVITY_GET_PRIVATE (object);
g_free (priv->icon_name);
- g_free (priv->primary_text);
- g_free (priv->secondary_text);
+ g_free (priv->text);
/* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (e_activity_parent_class)->finalize (object);
}
-static void
-activity_completed (EActivity *activity)
-{
- activity->priv->completed = TRUE;
-}
-
-static void
-activity_clicked (EActivity *activity)
-{
- /* Allow subclasses to safely chain up. */
-}
-
static gchar *
activity_describe (EActivity *activity)
{
GString *string;
GCancellable *cancellable;
+ EActivityState state;
const gchar *text;
gdouble percent;
string = g_string_sized_new (256);
cancellable = e_activity_get_cancellable (activity);
- text = e_activity_get_primary_text (activity);
percent = e_activity_get_percent (activity);
+ state = e_activity_get_state (activity);
+ text = e_activity_get_text (activity);
if (text == NULL)
return NULL;
- if (g_cancellable_is_cancelled (cancellable)) {
+ if (state == E_ACTIVITY_CANCELLED) {
/* Translators: This is a cancelled activity. */
g_string_printf (string, _("%s (cancelled)"), text);
- } else if (e_activity_is_completed (activity)) {
+ } else if (state == E_ACTIVITY_COMPLETED) {
/* Translators: This is a completed activity. */
g_string_printf (string, _("%s (completed)"), text);
+ } else if (state == E_ACTIVITY_WAITING) {
+ /* Translators: This is an activity waiting to run. */
+ g_string_printf (string, _("%s (waiting)"), text);
+ } else if (g_cancellable_is_cancelled (cancellable)) {
+ /* Translators: This is a running activity which
+ * the user has requested to cancel. */
+ g_string_printf (string, _("%s (cancelling)"), text);
} else if (percent <= 0.0) {
g_string_printf (string, _("%s"), text);
} else {
- /* Translators: This is an activity whose percent
- * complete is known. */
+ /* Translators: This is a running activity whose
+ * percent complete is known. */
g_string_printf (
- string, _("%s (%d%% complete)"), text,
- (gint) (percent));
+ string, _("%s (%d%% complete)"),
+ text, (gint) (percent));
}
return g_string_free (string, FALSE);
@@ -292,8 +241,6 @@ e_activity_class_init (EActivityClass *class)
object_class->dispose = activity_dispose;
object_class->finalize = activity_finalize;
- class->completed = activity_completed;
- class->clicked = activity_clicked;
class->describe = activity_describe;
g_object_class_install_property (
@@ -309,17 +256,6 @@ e_activity_class_init (EActivityClass *class)
g_object_class_install_property (
object_class,
- PROP_CLICKABLE,
- g_param_spec_boolean (
- "clickable",
- NULL,
- NULL,
- FALSE,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
-
- g_object_class_install_property (
- object_class,
PROP_ICON_NAME,
g_param_spec_string (
"icon-name",
@@ -344,61 +280,26 @@ e_activity_class_init (EActivityClass *class)
g_object_class_install_property (
object_class,
- PROP_PRIMARY_TEXT,
- g_param_spec_string (
- "primary-text",
- NULL,
+ PROP_STATE,
+ g_param_spec_enum (
+ "state",
NULL,
NULL,
+ E_TYPE_ACTIVITY_STATE,
+ E_ACTIVITY_RUNNING,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT));
g_object_class_install_property (
object_class,
- PROP_SECONDARY_TEXT,
+ PROP_TEXT,
g_param_spec_string (
- "secondary-text",
+ "text",
NULL,
NULL,
NULL,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT));
-
- signals[CANCELLED] = g_signal_new (
- "cancelled",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (EActivityClass, cancelled),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- signals[CLICKED] = g_signal_new (
- "clicked",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (EActivityClass, clicked),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- signals[COMPLETED] = g_signal_new (
- "completed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (EActivityClass, completed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- signals[DESCRIBE] = g_signal_new (
- "describe",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
- G_STRUCT_OFFSET (EActivityClass, describe),
- activity_describe_accumulator, NULL,
- e_marshal_STRING__VOID,
- G_TYPE_STRING, 0);
}
static void
@@ -417,46 +318,20 @@ EActivity *
e_activity_newv (const gchar *format, ...)
{
EActivity *activity;
- gchar *primary_text;
+ gchar *text;
va_list args;
activity = e_activity_new ();
va_start (args, format);
- primary_text = g_strdup_vprintf (format, args);
- e_activity_set_primary_text (activity, primary_text);
- g_free (primary_text);
+ text = g_strdup_vprintf (format, args);
+ e_activity_set_text (activity, text);
+ g_free (text);
va_end (args);
return activity;
}
-void
-e_activity_complete (EActivity *activity)
-{
- GCancellable *cancellable;
-
- g_return_if_fail (E_IS_ACTIVITY (activity));
-
- cancellable = e_activity_get_cancellable (activity);
-
- if (g_cancellable_is_cancelled (cancellable))
- return;
-
- if (activity->priv->completed)
- return;
-
- g_signal_emit (activity, signals[COMPLETED], 0);
-}
-
-void
-e_activity_clicked (EActivity *activity)
-{
- g_return_if_fail (E_IS_ACTIVITY (activity));
-
- g_signal_emit (activity, signals[CLICKED], 0);
-}
-
gchar *
e_activity_describe (EActivity *activity)
{
@@ -470,14 +345,6 @@ e_activity_describe (EActivity *activity)
return class->describe (activity);
}
-gboolean
-e_activity_is_completed (EActivity *activity)
-{
- g_return_val_if_fail (E_IS_ACTIVITY (activity), FALSE);
-
- return activity->priv->completed;
-}
-
GCancellable *
e_activity_get_cancellable (EActivity *activity)
{
@@ -506,11 +373,6 @@ e_activity_set_cancellable (EActivity *activity,
activity->priv->cancellable = cancellable;
- if (G_IS_CANCELLABLE (cancellable))
- g_signal_connect_swapped (
- cancellable, "cancelled",
- G_CALLBACK (activity_emit_cancelled), activity);
-
/* If this is a CamelOperation, listen for status updates
* from it and propagate them to our own status properties. */
if (CAMEL_IS_OPERATION (cancellable))
@@ -521,25 +383,6 @@ e_activity_set_cancellable (EActivity *activity,
g_object_notify (G_OBJECT (activity), "cancellable");
}
-gboolean
-e_activity_get_clickable (EActivity *activity)
-{
- g_return_val_if_fail (E_IS_ACTIVITY (activity), FALSE);
-
- return activity->priv->clickable;
-}
-
-void
-e_activity_set_clickable (EActivity *activity,
- gboolean clickable)
-{
- g_return_if_fail (E_IS_ACTIVITY (activity));
-
- activity->priv->clickable = clickable;
-
- g_object_notify (G_OBJECT (activity), "clickable");
-}
-
const gchar *
e_activity_get_icon_name (EActivity *activity)
{
@@ -579,42 +422,42 @@ e_activity_set_percent (EActivity *activity,
g_object_notify (G_OBJECT (activity), "percent");
}
-const gchar *
-e_activity_get_primary_text (EActivity *activity)
+EActivityState
+e_activity_get_state (EActivity *activity)
{
- g_return_val_if_fail (E_IS_ACTIVITY (activity), NULL);
+ g_return_val_if_fail (E_IS_ACTIVITY (activity), 0);
- return activity->priv->primary_text;
+ return activity->priv->state;
}
void
-e_activity_set_primary_text (EActivity *activity,
- const gchar *primary_text)
+e_activity_set_state (EActivity *activity,
+ EActivityState state)
{
g_return_if_fail (E_IS_ACTIVITY (activity));
- g_free (activity->priv->primary_text);
- activity->priv->primary_text = g_strdup (primary_text);
+ activity->priv->state = state;
- g_object_notify (G_OBJECT (activity), "primary-text");
+ g_object_notify (G_OBJECT (activity), "state");
}
const gchar *
-e_activity_get_secondary_text (EActivity *activity)
+e_activity_get_text (EActivity *activity)
{
g_return_val_if_fail (E_IS_ACTIVITY (activity), NULL);
- return activity->priv->secondary_text;
+ return activity->priv->text;
}
void
-e_activity_set_secondary_text (EActivity *activity,
- const gchar *secondary_text)
+e_activity_set_text (EActivity *activity,
+ const gchar *text)
{
g_return_if_fail (E_IS_ACTIVITY (activity));
- g_free (activity->priv->secondary_text);
- activity->priv->secondary_text = g_strdup (secondary_text);
+ g_free (activity->priv->text);
+ activity->priv->text = g_strdup (text);
- g_object_notify (G_OBJECT (activity), "secondary-text");
+ g_object_notify (G_OBJECT (activity), "text");
}
+
diff --git a/e-util/e-activity.h b/e-util/e-activity.h
index 4573fada57..63195b770a 100644
--- a/e-util/e-activity.h
+++ b/e-util/e-activity.h
@@ -23,6 +23,7 @@
#define E_ACTIVITY_H
#include <gtk/gtk.h>
+#include <e-util/e-util-enums.h>
/* Standard GObject macros */
#define E_TYPE_ACTIVITY \
@@ -57,10 +58,7 @@ struct _EActivity {
struct _EActivityClass {
GObjectClass parent_class;
- /* Signals */
- void (*cancelled) (EActivity *activity);
- void (*completed) (EActivity *activity);
- void (*clicked) (EActivity *activity);
+ /* Methods */
gchar * (*describe) (EActivity *activity);
};
@@ -68,28 +66,22 @@ GType e_activity_get_type (void);
EActivity * e_activity_new (void);
EActivity * e_activity_newv (const gchar *format,
...) G_GNUC_PRINTF (1, 2);
-void e_activity_complete (EActivity *activity);
-void e_activity_clicked (EActivity *activity);
gchar * e_activity_describe (EActivity *activity);
-gboolean e_activity_is_completed (EActivity *activity);
GCancellable * e_activity_get_cancellable (EActivity *activity);
void e_activity_set_cancellable (EActivity *activity,
GCancellable *cancellable);
-gboolean e_activity_get_clickable (EActivity *activity);
-void e_activity_set_clickable (EActivity *activity,
- gboolean clickable);
const gchar * e_activity_get_icon_name (EActivity *activity);
void e_activity_set_icon_name (EActivity *activity,
const gchar *icon_name);
gdouble e_activity_get_percent (EActivity *activity);
void e_activity_set_percent (EActivity *activity,
gdouble percent);
-const gchar * e_activity_get_primary_text (EActivity *activity);
-void e_activity_set_primary_text (EActivity *activity,
- const gchar *primary_text);
-const gchar * e_activity_get_secondary_text (EActivity *activity);
-void e_activity_set_secondary_text (EActivity *activity,
- const gchar *secondary_text);
+EActivityState e_activity_get_state (EActivity *activity);
+void e_activity_set_state (EActivity *activity,
+ EActivityState state);
+const gchar * e_activity_get_text (EActivity *activity);
+void e_activity_set_text (EActivity *activity,
+ const gchar *text);
G_END_DECLS
diff --git a/e-util/e-file-utils.c b/e-util/e-file-utils.c
index e647b8deb1..2d5ff30ff7 100644
--- a/e-util/e-file-utils.c
+++ b/e-util/e-file-utils.c
@@ -51,40 +51,56 @@
#include <glib/gstdio.h>
#include <glib/gi18n-lib.h>
+#include "e-activity.h"
#include "e-file-utils.h"
-#include "e-io-activity.h"
+
+typedef struct _AsyncContext AsyncContext;
+
+struct _AsyncContext {
+ EActivity *activity;
+ gchar *new_etag;
+};
+
+static void
+async_context_free (AsyncContext *context)
+{
+ if (context->activity != NULL)
+ g_object_unref (context->activity);
+
+ g_free (context->new_etag);
+
+ g_slice_free (AsyncContext, context);
+}
static void
file_replace_contents_cb (GFile *file,
GAsyncResult *result,
- EActivity *activity)
+ GSimpleAsyncResult *simple)
{
- gchar *new_etag;
- gboolean success;
+ AsyncContext *context;
+ gchar *new_etag = NULL;
GError *error = NULL;
- success = g_file_replace_contents_finish (
- file, result, &new_etag, &error);
+ context = g_simple_async_result_get_op_res_gpointer (simple);
- result = e_io_activity_get_async_result (E_IO_ACTIVITY (activity));
+ g_file_replace_contents_finish (file, result, &new_etag, &error);
- if (error == NULL) {
- g_object_set_data_full (
- G_OBJECT (result),
- "__new_etag__", new_etag,
- (GDestroyNotify) g_free);
- } else {
- g_simple_async_result_set_from_error (
- G_SIMPLE_ASYNC_RESULT (result), error);
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ e_activity_set_state (context->activity, E_ACTIVITY_CANCELLED);
+ else
+ e_activity_set_state (context->activity, E_ACTIVITY_COMPLETED);
+
+ if (error == NULL)
+ context->new_etag = new_etag;
+ else {
+ g_warn_if_fail (new_etag == NULL);
+ g_simple_async_result_set_from_error (simple, error);
g_error_free (error);
}
- g_simple_async_result_set_op_res_gboolean (
- G_SIMPLE_ASYNC_RESULT (result), success);
-
- e_activity_complete (activity);
+ g_simple_async_result_complete (simple);
- g_object_unref (activity);
+ g_object_unref (simple);
}
/**
@@ -115,9 +131,9 @@ e_file_replace_contents_async (GFile *file,
GAsyncReadyCallback callback,
gpointer user_data)
{
- EActivity *activity;
GSimpleAsyncResult *simple;
GCancellable *cancellable;
+ AsyncContext *context;
const gchar *format;
gchar *description;
gchar *basename;
@@ -148,21 +164,26 @@ e_file_replace_contents_async (GFile *file,
cancellable = g_cancellable_new ();
+ context = g_slice_new0 (AsyncContext);
+ context->activity = e_activity_new ();
+
+ e_activity_set_text (context->activity, description);
+ e_activity_set_cancellable (context->activity, cancellable);
+
simple = g_simple_async_result_new (
G_OBJECT (file), callback, user_data,
e_file_replace_contents_async);
- activity = e_io_activity_new (
- description, G_ASYNC_RESULT (simple), cancellable);
+ g_simple_async_result_set_op_res_gpointer (
+ simple, context, (GDestroyNotify) async_context_free);
g_file_replace_contents_async (
file, contents, length, etag,
make_backup, flags, cancellable,
(GAsyncReadyCallback) file_replace_contents_cb,
- activity);
+ simple);
g_object_unref (cancellable);
- g_object_unref (simple);
g_free (description);
g_free (basename);
@@ -170,7 +191,7 @@ e_file_replace_contents_async (GFile *file,
g_free (hostname);
g_free (uri);
- return activity;
+ return context->activity;
}
/**
@@ -194,18 +215,19 @@ e_file_replace_contents_finish (GFile *file,
GError **error)
{
GSimpleAsyncResult *simple;
+ AsyncContext *context;
g_return_val_if_fail (G_IS_FILE (file), FALSE);
g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
simple = G_SIMPLE_ASYNC_RESULT (result);
+ context = g_simple_async_result_get_op_res_gpointer (simple);
if (g_simple_async_result_propagate_error (simple, error))
return FALSE;
if (new_etag != NULL)
- *new_etag = g_object_steal_data (
- G_OBJECT (result), "__new_etag__");
+ *new_etag = g_strdup (context->new_etag);
return TRUE;
}
diff --git a/e-util/e-io-activity.c b/e-util/e-io-activity.c
deleted file mode 100644
index e519fea18b..0000000000
--- a/e-util/e-io-activity.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * e-io-activity.c
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#include "e-io-activity.h"
-
-#define E_IO_ACTIVITY_GET_PRIVATE(obj) \
- (G_TYPE_INSTANCE_GET_PRIVATE \
- ((obj), E_TYPE_IO_ACTIVITY, EIOActivityPrivate))
-
-struct _EIOActivityPrivate {
- GAsyncResult *async_result;
-};
-
-enum {
- PROP_0,
- PROP_ASYNC_RESULT
-};
-
-G_DEFINE_TYPE (
- EIOActivity,
- e_io_activity,
- E_TYPE_ACTIVITY)
-
-static void
-io_activity_set_property (GObject *object,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- switch (property_id) {
- case PROP_ASYNC_RESULT:
- e_io_activity_set_async_result (
- E_IO_ACTIVITY (object),
- g_value_get_object (value));
- return;
- }
-
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-}
-
-static void
-io_activity_get_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec)
-{
- switch (property_id) {
- case PROP_ASYNC_RESULT:
- g_value_set_object (
- value, e_io_activity_get_async_result (
- E_IO_ACTIVITY (object)));
- return;
- }
-
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-}
-
-static void
-io_activity_dispose (GObject *object)
-{
- EIOActivityPrivate *priv;
-
- priv = E_IO_ACTIVITY_GET_PRIVATE (object);
-
- if (priv->async_result != NULL) {
- g_object_unref (priv->async_result);
- priv->async_result = NULL;
- }
-
- /* Chain up to parent's dispose() method. */
- G_OBJECT_CLASS (e_io_activity_parent_class)->dispose (object);
-}
-
-static void
-io_activity_completed (EActivity *activity)
-{
- EIOActivity *io_activity;
- GAsyncResult *async_result;
-
- /* Chain up to parent's completed() method. */
- E_ACTIVITY_CLASS (e_io_activity_parent_class)->completed (activity);
-
- io_activity = E_IO_ACTIVITY (activity);
- async_result = e_io_activity_get_async_result (io_activity);
-
- /* We know how to invoke a GSimpleAsyncResult. For any other
- * type of GAsyncResult the caller will have to take measures
- * to invoke it himself. */
- if (G_IS_SIMPLE_ASYNC_RESULT (async_result))
- g_simple_async_result_complete (
- G_SIMPLE_ASYNC_RESULT (async_result));
-}
-
-static void
-e_io_activity_class_init (EIOActivityClass *class)
-{
- GObjectClass *object_class;
- EActivityClass *activity_class;
-
- g_type_class_add_private (class, sizeof (EIOActivityPrivate));
-
- object_class = G_OBJECT_CLASS (class);
- object_class->set_property = io_activity_set_property;
- object_class->get_property = io_activity_get_property;
- object_class->dispose = io_activity_dispose;
-
- activity_class = E_ACTIVITY_CLASS (class);
- activity_class->completed = io_activity_completed;
-
- g_object_class_install_property (
- object_class,
- PROP_ASYNC_RESULT,
- g_param_spec_object (
- "async-result",
- "Asynchronous Result",
- NULL,
- G_TYPE_ASYNC_RESULT,
- G_PARAM_READWRITE |
- G_PARAM_CONSTRUCT));
-}
-
-static void
-e_io_activity_init (EIOActivity *io_activity)
-{
- io_activity->priv = E_IO_ACTIVITY_GET_PRIVATE (io_activity);
-}
-
-EActivity *
-e_io_activity_new (const gchar *primary_text,
- GAsyncResult *async_result,
- GCancellable *cancellable)
-{
- g_return_val_if_fail (primary_text != NULL, NULL);
-
- if (async_result != NULL)
- g_return_val_if_fail (G_IS_ASYNC_RESULT (async_result), NULL);
-
- if (cancellable != NULL)
- g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), NULL);
-
- return g_object_new (
- E_TYPE_IO_ACTIVITY,
- "async-result", async_result, "cancellable",
- cancellable, "primary-text", primary_text, NULL);
-}
-
-GAsyncResult *
-e_io_activity_get_async_result (EIOActivity *io_activity)
-{
- g_return_val_if_fail (E_IS_IO_ACTIVITY (io_activity), NULL);
-
- return io_activity->priv->async_result;
-}
-
-void
-e_io_activity_set_async_result (EIOActivity *io_activity,
- GAsyncResult *async_result)
-{
- g_return_if_fail (E_IS_IO_ACTIVITY (io_activity));
-
- if (async_result != NULL) {
- g_return_if_fail (G_IS_ASYNC_RESULT (async_result));
- g_object_ref (async_result);
- }
-
- if (io_activity->priv->async_result != NULL)
- g_object_unref (io_activity->priv->async_result);
-
- io_activity->priv->async_result = async_result;
-
- g_object_notify (G_OBJECT (io_activity), "async-result");
-}
-
diff --git a/e-util/e-io-activity.h b/e-util/e-io-activity.h
deleted file mode 100644
index 20a7a06082..0000000000
--- a/e-util/e-io-activity.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * e-io-activity.h
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifndef E_IO_ACTIVITY_H
-#define E_IO_ACTIVITH_H
-
-#include <gio/gio.h>
-#include <e-util/e-activity.h>
-
-/* Standard GObject macros */
-#define E_TYPE_IO_ACTIVITY \
- (e_io_activity_get_type ())
-#define E_IO_ACTIVITY(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST \
- ((obj), E_TYPE_IO_ACTIVITY, EIOActivity))
-#define E_IO_ACTIVITY_CLASS(cls) \
- (G_TYPE_CHECK_CLASS_CAST \
- ((cls), E_TYPE_IO_ACTIVITY, EIOActivityClass))
-#define E_IS_IO_ACTIVITY(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE \
- ((obj), E_TYPE_IO_ACTIVITY))
-#define E_IS_IO_ACTIVITY_CLASS(cls) \
- (G_TYPE_CHECK_CLASS_TYPE \
- ((cls), E_TYPE_IO_ACTIVITY))
-#define E_IS_IO_ACTIVITY_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS \
- ((obj), E_TYPE_IO_ACTIVITY, EIOActivityClass))
-
-G_BEGIN_DECLS
-
-typedef struct _EIOActivity EIOActivity;
-typedef struct _EIOActivityClass EIOActivityClass;
-typedef struct _EIOActivityPrivate EIOActivityPrivate;
-
-struct _EIOActivity {
- EActivity parent;
- EIOActivityPrivate *priv;
-};
-
-struct _EIOActivityClass {
- EActivityClass parent_class;
-};
-
-GType e_io_activity_get_type (void);
-EActivity * e_io_activity_new (const gchar *primary_text,
- GAsyncResult *async_result,
- GCancellable *cancellable);
-GAsyncResult * e_io_activity_get_async_result (EIOActivity *io_activity);
-void e_io_activity_set_async_result (EIOActivity *io_activity,
- GAsyncResult *async_result);
-
-G_END_DECLS
-
-#endif /* E_IO_ACTIVITY_H */
diff --git a/e-util/e-util-enums.h b/e-util/e-util-enums.h
new file mode 100644
index 0000000000..bcf214ea33
--- /dev/null
+++ b/e-util/e-util-enums.h
@@ -0,0 +1,35 @@
+/*
+ * e-util-enums.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#ifndef E_UTIL_ENUMS_H
+#define E_UTIL_ENUMS_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+typedef enum {
+ E_ACTIVITY_RUNNING,
+ E_ACTIVITY_WAITING,
+ E_ACTIVITY_CANCELLED,
+ E_ACTIVITY_COMPLETED
+} EActivityState;
+
+G_END_DECLS
+
+#endif /* E_UTIL_ENUMS_H */
diff --git a/e-util/e-util.h b/e-util/e-util.h
index 9aa24f3d87..d4f29c9c34 100644
--- a/e-util/e-util.h
+++ b/e-util/e-util.h
@@ -29,6 +29,7 @@
#include <gconf/gconf-client.h>
#include <e-util/e-marshal.h>
+#include <e-util/e-util-enums.h>
/* e_get_user_data_dir() used to live here, so #include its new home
* for backward-compatibility (not that we really care about that). */