aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/component/addressbook.c
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/gui/component/addressbook.c')
-rw-r--r--addressbook/gui/component/addressbook.c37
1 files changed, 23 insertions, 14 deletions
diff --git a/addressbook/gui/component/addressbook.c b/addressbook/gui/component/addressbook.c
index 9cc11635d8..c2a1ca4631 100644
--- a/addressbook/gui/component/addressbook.c
+++ b/addressbook/gui/component/addressbook.c
@@ -28,10 +28,12 @@
#include "select-names/e-select-names-manager.h"
#include "evolution-shell-component-utils.h"
+#include "evolution-activity-client.h"
#include "e-contact-editor.h"
#include "e-contact-save-as.h"
#include "addressbook-config.h"
#include "addressbook.h"
+#include "addressbook-component.h"
#include "addressbook/gui/search/e-addressbook-search-dialog.h"
#include "addressbook/gui/widgets/e-addressbook-view.h"
#include "addressbook/gui/widgets/e-addressbook-util.h"
@@ -41,6 +43,10 @@
#include <widgets/misc/e-search-bar.h>
#include <widgets/misc/e-filter-bar.h>
+/* This is used for the addressbook status bar */
+#define EVOLUTION_CONTACTS_PROGRESS_IMAGE "evolution-contacts-mini.png"
+static GdkPixbuf *progress_icon[2] = { NULL, NULL };
+
#define d(x)
#define PROPERTY_FOLDER_URI "folder_uri"
@@ -51,6 +57,7 @@ typedef struct {
EAddressbookView *view;
ESearchBar *search;
GtkWidget *vbox;
+ EvolutionActivityClient *activity;
BonoboControl *control;
BonoboPropertyBag *properties;
char *uri;
@@ -779,27 +786,29 @@ retrieve_shell_view_interface_from_control (BonoboControl *control)
static void
set_status_message (EAddressbookView *eav, const char *message, AddressbookView *view)
{
- CORBA_Environment ev;
- GNOME_Evolution_ShellView shell_view_interface;
- CORBA_exception_init (&ev);
-
- shell_view_interface = retrieve_shell_view_interface_from_control (view->control);
- if (!shell_view_interface) {
- CORBA_exception_free (&ev);
- return;
+ if (!message || !*message) {
+ if (view->activity) {
+ gtk_object_unref (GTK_OBJECT (view->activity));
+ view->activity = NULL;
+ }
}
+ else if (!view->activity) {
+ int display;
+ char *clientid = g_strdup_printf ("%p", view);
- if (message == NULL || message[0] == 0) {
- GNOME_Evolution_ShellView_unsetMessage (shell_view_interface, &ev);
+ if (progress_icon[0] == NULL)
+ progress_icon[0] = gdk_pixbuf_new_from_file (EVOLUTION_IMAGESDIR "/" EVOLUTION_CONTACTS_PROGRESS_IMAGE);
+
+ view->activity = evolution_activity_client_new (addressbook_component_get_shell_client(), clientid,
+ progress_icon, message, TRUE, &display);
+
+ g_free (clientid);
}
else {
- GNOME_Evolution_ShellView_setMessage (shell_view_interface,
- message,
- e_addressbook_view_can_stop (view->view), &ev);
+ evolution_activity_client_update (view->activity, message, -1.0);
}
- CORBA_exception_free (&ev);
}
static void