aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook')
-rw-r--r--addressbook/gui/component/e-book-shell-view-private.c42
-rw-r--r--addressbook/gui/component/e-book-shell-view-private.h4
-rw-r--r--addressbook/gui/widgets/e-addressbook-view.c51
3 files changed, 30 insertions, 67 deletions
diff --git a/addressbook/gui/component/e-book-shell-view-private.c b/addressbook/gui/component/e-book-shell-view-private.c
index 94bc96588a..70ba2b2815 100644
--- a/addressbook/gui/component/e-book-shell-view-private.c
+++ b/addressbook/gui/component/e-book-shell-view-private.c
@@ -42,36 +42,6 @@ popup_event (EBookShellView *book_shell_view,
}
static void
-set_status_message (EAddressbookView *view,
- const gchar *message,
- EBookShellView *book_shell_view)
-{
- /* XXX Give EAddressbookView an EShellView pointer
- * and have it handle this directly. */
-
- EActivityHandler *activity_handler;
- guint activity_id;
-
- activity_handler = book_shell_view->priv->activity_handler;
- activity_id = book_shell_view->priv->activity_id;
-
- if (message == NULL || *message == '\0') {
- if (activity_id > 0) {
- e_activity_handler_operation_finished (
- activity_handler, activity_id);
- activity_id = 0;
- }
- } else if (activity_id == 0)
- activity_id = e_activity_handler_operation_started (
- activity_handler, message, TRUE);
- else
- e_activity_handler_operation_progressing (
- activity_handler, activity_id, message, -1.0);
-
- book_shell_view->priv->activity_id = activity_id;
-}
-
-static void
book_shell_view_selection_change_foreach (gint row,
EBookShellView *book_shell_view)
{
@@ -240,10 +210,6 @@ book_shell_view_activate_selected_source (EBookShellView *book_shell_view,
widget, "popup-event",
G_CALLBACK (popup_event), book_shell_view);
- g_signal_connect (
- widget, "status-message",
- G_CALLBACK (set_status_message), book_shell_view);
-
g_signal_connect_swapped (
widget, "command-state-change",
G_CALLBACK (e_book_shell_view_actions_update),
@@ -418,7 +384,6 @@ e_book_shell_view_private_init (EBookShellView *book_shell_view,
priv->source_list = g_object_ref (source_list);
priv->contact_actions = gtk_action_group_new ("contacts");
- priv->activity_handler = e_activity_handler_new ();
priv->uid_to_view = uid_to_view;
priv->uid_to_editor = uid_to_editor;
@@ -436,7 +401,6 @@ e_book_shell_view_private_constructed (EBookShellView *book_shell_view)
EBookShellViewPrivate *priv = book_shell_view->priv;
EShellContent *shell_content;
EShellSidebar *shell_sidebar;
- EShellTaskbar *shell_taskbar;
EShellView *shell_view;
EShellWindow *shell_window;
ESourceSelector *selector;
@@ -487,10 +451,6 @@ e_book_shell_view_private_constructed (EBookShellView *book_shell_view)
priv->preview = g_object_ref (widget);
gtk_widget_show (widget);
- shell_taskbar = e_shell_view_get_shell_taskbar (shell_view);
- e_activity_handler_attach_task_bar (
- priv->activity_handler, shell_taskbar);
-
shell_sidebar = e_shell_view_get_shell_sidebar (shell_view);
selector = e_book_shell_sidebar_get_selector (
E_BOOK_SHELL_SIDEBAR (shell_sidebar));
@@ -545,8 +505,6 @@ e_book_shell_view_private_dispose (EBookShellView *book_shell_view)
DISPOSE (priv->notebook);
DISPOSE (priv->preview);
- DISPOSE (priv->activity_handler);
-
g_hash_table_remove_all (priv->uid_to_view);
g_hash_table_remove_all (priv->uid_to_editor);
diff --git a/addressbook/gui/component/e-book-shell-view-private.h b/addressbook/gui/component/e-book-shell-view-private.h
index bdfc362ee3..b8d2a0ccb7 100644
--- a/addressbook/gui/component/e-book-shell-view-private.h
+++ b/addressbook/gui/component/e-book-shell-view-private.h
@@ -34,7 +34,6 @@
#include <e-util/gconf-bridge.h>
#include <shell/e-shell-content.h>
#include <shell/e-shell-sidebar.h>
-#include <shell/e-activity-handler.h>
#include <eab-gui-util.h>
#include <e-addressbook-view.h>
@@ -94,13 +93,10 @@ struct _EBookShellViewPrivate {
GtkWidget *notebook;
GtkWidget *preview;
- EActivityHandler *activity_handler;
-
GHashTable *uid_to_view;
GHashTable *uid_to_editor;
EBook *book;
- guint activity_id;
gchar *password;
};
diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c
index 7a4f27d65f..de10df9a41 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -63,7 +63,7 @@
#define d(x)
-static void status_message (GtkObject *object, const gchar *status, EAddressbookView *view);
+static void status_message (EAddressbookView *view, const gchar *status);
static void search_result (EAddressbookView *view, EBookViewStatus status);
static void folder_bar_message (EAddressbookView *view, const gchar *status);
static void stop_state_changed (GtkObject *object, EAddressbookView *view);
@@ -76,6 +76,7 @@ struct _EAddressbookViewPrivate {
gpointer shell_view; /* weak pointer */
EAddressbookModel *model;
+ EActivity *activity;
GList *clipboard_contacts;
ESource *source;
@@ -97,7 +98,6 @@ enum {
enum {
POPUP_EVENT,
- STATUS_MESSAGE,
COMMAND_STATE_CHANGE,
SELECTION_CHANGE,
LAST_SIGNAL
@@ -534,6 +534,13 @@ addressbook_view_dispose (GObject *object)
priv->model = NULL;
}
+ if (priv->activity != NULL) {
+ /* XXX Activity is not cancellable. */
+ e_activity_complete (priv->activity);
+ g_object_unref (priv->activity);
+ priv->activity = NULL;
+ }
+
if (priv->invisible != NULL) {
gtk_widget_destroy (priv->invisible);
priv->invisible = NULL;
@@ -646,16 +653,6 @@ addressbook_view_class_init (EAddressbookViewClass *class)
G_TYPE_NONE, 1,
GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE);
- signals[STATUS_MESSAGE] = g_signal_new (
- "status-message",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (EAddressbookViewClass, status_message),
- NULL, NULL,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1,
- G_TYPE_POINTER);
-
signals[COMMAND_STATE_CHANGE] = g_signal_new (
"command-state-change",
G_OBJECT_CLASS_TYPE (object_class),
@@ -746,8 +743,9 @@ e_addressbook_view_new (EShellView *shell_view,
view = E_ADDRESSBOOK_VIEW (widget);
- g_signal_connect (view->priv->model, "status_message",
- G_CALLBACK (status_message), view);
+ g_signal_connect_swapped (
+ view->priv->model, "status_message",
+ G_CALLBACK (status_message), view);
g_signal_connect_swapped (
view->priv->model, "search_result",
G_CALLBACK (search_result), view);
@@ -851,15 +849,26 @@ e_addressbook_view_get_source (EAddressbookView *view)
}
static void
-emit_status_message (EAddressbookView *view, const gchar *status)
+status_message (EAddressbookView *view,
+ const gchar *status)
{
- g_signal_emit (view, signals[STATUS_MESSAGE], 0, status);
-}
+ EActivity *activity;
-static void
-status_message (GtkObject *object, const gchar *status, EAddressbookView *view)
-{
- emit_status_message (view, status);
+ activity = view->priv->activity;
+
+ if (status == NULL || *status == '\0') {
+ if (activity != NULL) {
+ e_activity_complete (activity);
+ g_object_unref (activity);
+ view->priv->activity = NULL;
+ }
+
+ } else if (activity == NULL) {
+ activity = e_activity_new (status);
+ view->priv->activity = activity;
+
+ } else
+ e_activity_set_primary_text (activity, status);
}
static void