diff options
Diffstat (limited to 'addressbook/gui')
-rw-r--r-- | addressbook/gui/component/addressbook-component.c | 41 | ||||
-rw-r--r-- | addressbook/gui/component/addressbook-component.h | 3 | ||||
-rw-r--r-- | addressbook/gui/component/addressbook.c | 32 |
3 files changed, 47 insertions, 29 deletions
diff --git a/addressbook/gui/component/addressbook-component.c b/addressbook/gui/component/addressbook-component.c index 306a1f6e2b..803ed82d55 100644 --- a/addressbook/gui/component/addressbook-component.c +++ b/addressbook/gui/component/addressbook-component.c @@ -33,6 +33,8 @@ #include "widgets/misc/e-source-selector.h" #include "addressbook/gui/widgets/eab-gui-util.h" +#include "e-task-bar.h" + #include <string.h> #include <bonobo/bonobo-i18n.h> #include <gtk/gtkscrolledwindow.h> @@ -53,6 +55,8 @@ struct _AddressbookComponentPrivate { GConfClient *gconf_client; ESourceList *source_list; GtkWidget *source_selector; + + EActivityHandler *activity_handler; }; @@ -156,8 +160,10 @@ impl_createControls (PortableServer_Servant servant, AddressbookComponent *addressbook_component = ADDRESSBOOK_COMPONENT (bonobo_object_from_servant (servant)); GtkWidget *selector; GtkWidget *selector_scrolled_window; + GtkWidget *statusbar_widget; BonoboControl *sidebar_control; BonoboControl *view_control; + BonoboControl *statusbar_control; selector = e_source_selector_new (addressbook_component->priv->source_list); e_source_selector_show_selection (E_SOURCE_SELECTOR (selector), FALSE); @@ -183,18 +189,16 @@ impl_createControls (PortableServer_Servant servant, G_OBJECT (addressbook_component), 0); load_uri_for_selection (E_SOURCE_SELECTOR (selector), view_control); - *corba_sidebar_control = CORBA_Object_duplicate (BONOBO_OBJREF (sidebar_control), ev); - *corba_view_control = CORBA_Object_duplicate (BONOBO_OBJREF (view_control), ev); + statusbar_widget = e_task_bar_new (); + gtk_widget_show (statusbar_widget); + statusbar_control = bonobo_control_new (statusbar_widget); - /* FIXME temporary for testing. */ - { - GtkWidget *label = gtk_label_new ("Hey hey this is the addressbook"); - BonoboControl *control; + e_activity_handler_attach_task_bar (addressbook_component->priv->activity_handler, + E_TASK_BAR (statusbar_widget)); - gtk_widget_show (label); - control = bonobo_control_new (label); - *corba_statusbar_control = CORBA_Object_duplicate (BONOBO_OBJREF (control), ev); - } + *corba_sidebar_control = CORBA_Object_duplicate (BONOBO_OBJREF (sidebar_control), ev); + *corba_view_control = CORBA_Object_duplicate (BONOBO_OBJREF (view_control), ev); + *corba_statusbar_control = CORBA_Object_duplicate (BONOBO_OBJREF (statusbar_control), ev); } static GNOME_Evolution_CreatableItemTypeList * @@ -300,6 +304,11 @@ impl_dispose (GObject *object) priv->gconf_client = NULL; } + if (priv->activity_handler != NULL) { + g_object_unref (priv->activity_handler); + priv->activity_handler = NULL; + } + (* G_OBJECT_CLASS (parent_class)->dispose) (object); } @@ -347,6 +356,8 @@ addressbook_component_init (AddressbookComponent *component) priv->source_list = e_source_list_new_for_gconf (priv->gconf_client, "/apps/evolution/addressbook/sources"); + priv->activity_handler = e_activity_handler_new (); + /* Create default addressbooks if there are no groups */ groups = e_source_list_peek_groups (priv->source_list); if (!groups) { @@ -407,4 +418,14 @@ addressbook_component_peek (void) return component; } + +EActivityHandler * +addressbook_component_peek_activity_handler (AddressbookComponent *component) +{ + g_return_val_if_fail (ADDRESSBOOK_IS_COMPONENT (component), NULL); + + return component->priv->activity_handler; +} + + BONOBO_TYPE_FUNC_FULL (AddressbookComponent, GNOME_Evolution_Component, PARENT_TYPE, addressbook_component) diff --git a/addressbook/gui/component/addressbook-component.h b/addressbook/gui/component/addressbook-component.h index bf72a431d8..f08f54aaaf 100644 --- a/addressbook/gui/component/addressbook-component.h +++ b/addressbook/gui/component/addressbook-component.h @@ -26,6 +26,7 @@ #include <bonobo/bonobo-object.h> #include "Evolution.h" +#include "e-activity-handler.h" #define ADDRESSBOOK_TYPE_COMPONENT (addressbook_component_get_type ()) #define ADDRESSBOOK_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ADDRESSBOOK_TYPE_COMPONENT, AddressbookComponent)) @@ -55,5 +56,7 @@ GType addressbook_component_get_type (void); AddressbookComponent *addressbook_component_peek (void); +EActivityHandler *addressbook_component_peek_activity_handler (AddressbookComponent *component); + #endif /* _ADDRESSBOOK_COMPONENT_H_ */ diff --git a/addressbook/gui/component/addressbook.c b/addressbook/gui/component/addressbook.c index 8e8dfa8f5f..e1eb92e9ad 100644 --- a/addressbook/gui/component/addressbook.c +++ b/addressbook/gui/component/addressbook.c @@ -42,7 +42,7 @@ #include "e-util/e-passwords.h" #include "evolution-shell-component-utils.h" -#include "evolution-activity-client.h" +#include "e-activity-handler.h" #include "e-contact-editor.h" #include "addressbook-config.h" #include "addressbook.h" @@ -59,7 +59,7 @@ /* This is used for the addressbook status bar */ #define EVOLUTION_CONTACTS_PROGRESS_IMAGE "evolution-contacts-mini.png" -static GdkPixbuf *progress_icon[2] = { NULL, NULL }; +static GdkPixbuf *progress_icon = NULL; #define d(x) @@ -74,7 +74,7 @@ typedef struct { gint ecml_changed_id; GtkWidget *vbox; EBook *book; - EvolutionActivityClient *activity; + guint activity_id; BonoboControl *control; BonoboPropertyBag *properties; GConfClient *gconf_client; @@ -913,29 +913,23 @@ retrieve_shell_view_interface_from_control (BonoboControl *control) static void set_status_message (EABView *eav, const char *message, AddressbookView *view) { + EActivityHandler *activity_handler = addressbook_component_peek_activity_handler (addressbook_component_peek ()); if (!message || !*message) { - if (view->activity) { - g_object_unref (view->activity); - view->activity = NULL; - } - } -#if 0 /* EPFIXME */ - else if (!view->activity) { - int display; + if (view->activity_id != 0) + view->activity_id = 0; + } else if (view->activity_id == 0) { char *clientid = g_strdup_printf ("%p", view); - if (progress_icon[0] == NULL) - progress_icon[0] = gdk_pixbuf_new_from_file (EVOLUTION_IMAGESDIR "/" EVOLUTION_CONTACTS_PROGRESS_IMAGE, NULL); + if (progress_icon == NULL) + progress_icon = gdk_pixbuf_new_from_file (EVOLUTION_IMAGESDIR "/" EVOLUTION_CONTACTS_PROGRESS_IMAGE, NULL); - view->activity = evolution_activity_client_new (addressbook_component_get_shell_client(), clientid, - progress_icon, message, TRUE, &display); + view->activity_id = e_activity_handler_operation_started (activity_handler, clientid, + progress_icon, message, TRUE); g_free (clientid); - } -#endif - else { - evolution_activity_client_update (view->activity, message, -1.0); + } else { + e_activity_handler_operation_progressing (activity_handler, view->activity_id, message, -1.0); } } |