From 364cb04c2b58a371d45a6645dbca8d9f069fba2e Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Thu, 21 Mar 2002 00:07:49 +0000 Subject: Move the ComponentActionsPlaceholder into the Actions menu, instead of the * evolution.xml: Move the ComponentActionsPlaceholder into the Actions menu, instead of the Actions menu being in the ComponentActionsPlaceholder. * evolution-addressbook.xml: Updated accordingly. * evolution-calendar.xml: Updated accordingly. * evolution-mail-global.xml: Updated accordingly. * evolution-mail-list.xml: Updated accordingly. * evolution-mail-message.xml: Updated accordingly. * evolution-mail-messagedisplay.xml: Updated accordingly. * evolution-tasks.xml: Updated accordingly. * evolution.xml: Add "SendReceive" verb, menu item and toolbar button. * evolution-mail-global.xml: Remove "MailGetSend" verb and menu item. * e-shell-view-menu.c (command_send_receive): New, implementation for the "SendReceive" verb. * e-shell.c (e_shell_send_receive): New. * evolution-shell-component.c (impl_sendReceive): Implementation of ShellComponent::sendReceive. (class_init): Add the "send_receive" signal. * evolution-shell-component.h: Added `send_receive' signal. * Evolution-ShellComponent.idl: Added ShellComponent::sendReceive. * component-factory.c (send_receive_cb): New, callback for the "send_receive" signal on the EvolutionShellComponent. (create_component): Connect. * folder-browser-ui.c: Remove verb "MailGetSend". * mail-callbacks.c (send_receive_mail): Removed. * mail-send-recv.c: Remove member current_folder from struct _send_data. (free_send_data): No need to unref here. (build_dialogue): Removed arg @current_folder. (mail_send_receive): Likewise. svn path=/trunk/; revision=16220 --- mail/ChangeLog | 16 +++++++++++++++ mail/component-factory.c | 30 ++++++++++++++++++++++++++++ mail/folder-browser-ui.c | 4 ---- mail/mail-callbacks.c | 27 ------------------------- mail/mail-send-recv.c | 15 ++++---------- mail/mail-send-recv.h | 2 +- shell/ChangeLog | 15 ++++++++++++++ shell/Evolution-ShellComponent.idl | 2 ++ shell/e-shell-view-menu.c | 25 ++++++++++++++++++++++++ shell/e-shell.c | 38 +++++++++++++++++++++++++++++++++++- shell/e-shell.h | 2 ++ shell/evolution-shell-component.c | 22 +++++++++++++++++++++ shell/evolution-shell-component.h | 3 +++ ui/ChangeLog | 19 ++++++++++++++++++ ui/evolution-addressbook.xml | 21 ++++++++++---------- ui/evolution-calendar.xml | 8 ++++---- ui/evolution-mail-global.xml | 17 ++++------------ ui/evolution-mail-list.xml | 8 ++++---- ui/evolution-mail-message.xml | 8 ++++---- ui/evolution-mail-messagedisplay.xml | 8 ++++---- ui/evolution-tasks.xml | 8 ++++---- ui/evolution.xml | 13 +++++++++++- 22 files changed, 222 insertions(+), 89 deletions(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index c52dd827a9..57e7dfb291 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,19 @@ +2002-03-20 Ettore Perazzoli + + * component-factory.c (send_receive_cb): New, callback for the + "send_receive" signal on the EvolutionShellComponent. + (create_component): Connect. + + * folder-browser-ui.c: Remove verb "MailGetSend". + + * mail-callbacks.c (send_receive_mail): Removed. + + * mail-send-recv.c: Remove member current_folder from struct + _send_data. + (free_send_data): No need to unref here. + (build_dialogue): Removed arg @current_folder. + (mail_send_receive): Likewise. + 2002-03-20 Ettore Perazzoli * folder-browser.c: Reorder folder_browser_search_menu_items diff --git a/mail/component-factory.c b/mail/component-factory.c index 1e2a652ca4..452cff2c47 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -901,6 +901,33 @@ owner_unset_cb (EvolutionShellComponent *shell_component, gpointer user_data) g_timeout_add(100, idle_quit, NULL); } +static void +send_receive_cb (EvolutionShellComponent *shell_component, + gboolean show_dialog, + void *data) +{ + const MailConfigAccount *account; + + /* FIXME: configure_mail() should be changed to work without a + FolderBrowser, and then we will be able to call configure_mail from + here properly. */ + if (!mail_config_is_configured () /* && !configure_mail (fb) */) + return; + + account = mail_config_get_default_account (); + if (!account || !account->transport) { + GtkWidget *dialog; + + dialog = gnome_error_dialog (_("You have not set a mail transport method")); + gnome_dialog_set_close (GNOME_DIALOG (dialog), TRUE); + gtk_widget_show (dialog); + + return; + } + + mail_send_receive (); +} + static BonoboObject * create_component (void) { @@ -918,6 +945,9 @@ create_component (void) populate_folder_context_menu, get_dnd_selection, NULL); + + gtk_signal_connect (GTK_OBJECT (shell_component), "send_receive", + GTK_SIGNAL_FUNC (send_receive_cb), NULL); destination_interface = evolution_shell_component_dnd_destination_folder_new (destination_folder_handle_motion, destination_folder_handle_drop, diff --git a/mail/folder-browser-ui.c b/mail/folder-browser-ui.c index 36e8cea6f2..6400f6eb35 100644 --- a/mail/folder-browser-ui.c +++ b/mail/folder-browser-ui.c @@ -108,7 +108,6 @@ static BonoboUIVerb global_verbs [] = { BONOBO_UI_UNSAFE_VERB ("EmptyTrash", empty_trash), BONOBO_UI_UNSAFE_VERB ("ForgetPasswords", mail_session_forget_passwords), BONOBO_UI_UNSAFE_VERB ("MailCompose", compose_msg), - BONOBO_UI_UNSAFE_VERB ("MailGetSend", send_receive_mail), BONOBO_UI_UNSAFE_VERB ("MailStop", stop_threads), BONOBO_UI_UNSAFE_VERB ("ToolsFilters", filter_edit), BONOBO_UI_UNSAFE_VERB ("ToolsSettings", providers_config), @@ -166,11 +165,8 @@ static EPixmap list_pixcache [] = { static EPixmap global_pixcache [] = { E_PIXMAP ("/commands/MailCompose", "new-message.xpm"), - E_PIXMAP ("/commands/MailGetSend", "send-receive.xpm"), E_PIXMAP ("/commands/ToolsSettings", "configure_16_mail.xpm"), - E_PIXMAP ("/Toolbar/MailGetSend", "buttons/send-24-receive.png"), - E_PIXMAP_END }; diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index 806e2a924c..1dfffd2fbb 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -167,33 +167,6 @@ check_send_configuration (FolderBrowser *fb) return TRUE; } -void -send_receive_mail (GtkWidget *widget, gpointer user_data) -{ - FolderBrowser *fb = FOLDER_BROWSER (user_data); - const MailConfigAccount *account; - - if (FOLDER_BROWSER_IS_DESTROYED (fb)) - return; - - if (!mail_config_is_configured () && !configure_mail (fb)) - return; - - account = mail_config_get_default_account (); - if (!account || !account->transport) { - GtkWidget *dialog; - - dialog = gnome_error_dialog_parented (_("You have not set a mail transport method"), - FB_WINDOW (fb)); - gnome_dialog_set_close (GNOME_DIALOG (dialog), TRUE); - gtk_widget_show (dialog); - - return; - } - - mail_send_receive (fb->folder); -} - static void msgbox_destroyed (GtkWidget *widget, gpointer data) { diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c index 3017203e6e..816efa4841 100644 --- a/mail/mail-send-recv.c +++ b/mail/mail-send-recv.c @@ -78,8 +78,6 @@ struct _send_data { CamelFolder *inbox; /* since we're never asked to update this one, do it ourselves */ time_t inbox_update; - CamelFolder *current_folder; - GMutex *lock; GHashTable *folders; @@ -179,10 +177,7 @@ free_send_data(void) /*camel_folder_thaw (data->inbox); */ camel_object_unref((CamelObject *)data->inbox); } - if (data->current_folder) { - mail_refresh_folder(data->current_folder, NULL, NULL); - camel_object_unref((CamelObject *)data->current_folder); - } + g_list_free(data->infos); g_hash_table_foreach(data->active, (GHFunc)free_send_info, NULL); g_hash_table_destroy(data->active); @@ -274,7 +269,7 @@ static send_info_t get_receive_type(const char *url) } static struct _send_data * -build_dialogue (GSList *sources, CamelFolder *current_folder, CamelFolder *outbox, const char *destination) +build_dialogue (GSList *sources, CamelFolder *outbox, const char *destination) { GnomeDialog *gd; GtkTable *table; @@ -433,8 +428,6 @@ build_dialogue (GSList *sources, CamelFolder *current_folder, CamelFolder *outbo data->infos = list; data->gd = gd; - data->current_folder = current_folder; - camel_object_ref (CAMEL_OBJECT (current_folder)); return data; } @@ -647,7 +640,7 @@ receive_update_got_store (char *uri, CamelStore *store, void *data) } } -void mail_send_receive (CamelFolder *current_folder) +void mail_send_receive (void) { GSList *sources; GList *scan; @@ -674,7 +667,7 @@ void mail_send_receive (CamelFolder *current_folder) Well, probably hook into receive_done or receive_status on the right pop account, and when it is, then kick off the smtp one. */ - data = build_dialogue(sources, current_folder, outbox_folder, account->transport->url); + data = build_dialogue(sources, outbox_folder, account->transport->url); scan = data->infos; while (scan) { struct _send_info *info = scan->data; diff --git a/mail/mail-send-recv.h b/mail/mail-send-recv.h index 19afea853b..7d43d610fb 100644 --- a/mail/mail-send-recv.h +++ b/mail/mail-send-recv.h @@ -31,7 +31,7 @@ extern "C" { #include "mail-config.h" /* send/receive all uri's */ -void mail_send_receive(CamelFolder *current_folder); +void mail_send_receive(void); /* receive a single uri */ void mail_receive_uri(const char *uri, int keep); /* setup auto receive stuff */ diff --git a/shell/ChangeLog b/shell/ChangeLog index 98bd69fc74..fca8f56557 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,18 @@ +2002-03-20 Ettore Perazzoli + + * e-shell-view-menu.c (command_send_receive): New, implementation + for the "SendReceive" verb. + + * e-shell.c (e_shell_send_receive): New. + + * evolution-shell-component.c (impl_sendReceive): Implementation + of ShellComponent::sendReceive. + (class_init): Add the "send_receive" signal. + + * evolution-shell-component.h: Added `send_receive' signal. + + * Evolution-ShellComponent.idl: Added ShellComponent::sendReceive. + 2002-03-18 Ettore Perazzoli * e-storage-set-view.etspec: Add `search="string"' for the diff --git a/shell/Evolution-ShellComponent.idl b/shell/Evolution-ShellComponent.idl index b5f5095c43..5ca38e3bdb 100644 --- a/shell/Evolution-ShellComponent.idl +++ b/shell/Evolution-ShellComponent.idl @@ -102,6 +102,8 @@ module Evolution { in string parent_folder_physical_uri, in string parent_folder_type) raises (UnsupportedType); + + void sendReceive (in boolean show_dialog); }; interface ShellComponentListener { diff --git a/shell/e-shell-view-menu.c b/shell/e-shell-view-menu.c index c72f899bd5..58b2d8790c 100644 --- a/shell/e-shell-view-menu.c +++ b/shell/e-shell-view-menu.c @@ -270,6 +270,20 @@ command_toggle_shortcut_bar (BonoboUIComponent *component, } +static void +command_send_receive (BonoboUIComponent *ui_component, + void *data, + const char *path) +{ + EShellView *shell_view; + EShell *shell; + + shell_view = E_SHELL_VIEW (data); + shell = e_shell_view_get_shell (shell_view); + + e_shell_send_receive (shell); +} + static void command_new_folder (BonoboUIComponent *uih, void *data, @@ -645,6 +659,12 @@ BonoboUIVerb folder_verbs [] = { BONOBO_UI_VERB_END }; +BonoboUIVerb actions_verbs[] = { + BONOBO_UI_VERB ("SendReceive", command_send_receive), + + BONOBO_UI_VERB_END +}; + BonoboUIVerb tools_verbs[] = { BONOBO_UI_VERB ("Settings", command_settings), @@ -660,11 +680,15 @@ BonoboUIVerb help_verbs [] = { }; static EPixmap pixmaps [] = { + E_PIXMAP ("/commands/SendReceive", "send-receive.xpm"), + E_PIXMAP ("/menu/File/New/Folder", "folder.xpm"), E_PIXMAP ("/menu/File/Folder/Folder", "folder.xpm"), E_PIXMAP ("/menu/File/FileImporter", "import.xpm"), E_PIXMAP ("/menu/File/ToggleOffline", "work_offline.xpm"), + E_PIXMAP ("/Toolbar/SendReceive", "buttons/send-24-receive.png"), + E_PIXMAP_END }; @@ -785,6 +809,7 @@ e_shell_view_menu_setup (EShellView *shell_view) bonobo_ui_component_add_verb_list_with_data (uic, folder_verbs, shell_view); bonobo_ui_component_add_verb_list_with_data (uic, new_verbs, shell_view); + bonobo_ui_component_add_verb_list_with_data (uic, actions_verbs, shell_view); bonobo_ui_component_add_verb_list_with_data (uic, tools_verbs, shell_view); bonobo_ui_component_add_verb_list (uic, help_verbs); diff --git a/shell/e-shell.c b/shell/e-shell.c index ccab2004d5..8330566b4b 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -1868,11 +1868,47 @@ e_shell_go_online (EShell *shell, gtk_signal_emit (GTK_OBJECT (shell), signals[LINE_STATUS_CHANGED], priv->line_status); } + +void +e_shell_send_receive (EShell *shell) +{ + EShellPrivate *priv; + GList *id_list; + GList *p; + + g_return_if_fail (E_IS_SHELL (shell)); + + priv = shell->priv; + + id_list = e_component_registry_get_id_list (priv->component_registry); + + for (p = id_list; p != NULL; p = p->next) { + EvolutionShellComponentClient *component_client; + CORBA_Environment ev; + const char *id; + + id = (const char *) p->data; + component_client = e_component_registry_get_component_by_id (priv->component_registry, id); + + CORBA_exception_init (&ev); + + GNOME_Evolution_ShellComponent_sendReceive + (bonobo_object_corba_objref (BONOBO_OBJECT (component_client)), TRUE, &ev); + + if (BONOBO_EX (&ev)) + g_warning ("Error invoking Send/Receive on %s -- %s", id, BONOBO_EX_ID (&ev)); + + CORBA_exception_free (&ev); + } + + e_free_string_list (id_list); +} + Bonobo_ConfigDatabase e_shell_get_config_db (EShell *shell) { - g_return_val_if_fail (shell != NULL, CORBA_OBJECT_NIL); + g_return_val_if_fail (E_IS_SHELL (shell), CORBA_OBJECT_NIL); return shell->priv->db; } diff --git a/shell/e-shell.h b/shell/e-shell.h index bea61037a0..818ba0233f 100644 --- a/shell/e-shell.h +++ b/shell/e-shell.h @@ -143,6 +143,8 @@ void e_shell_go_offline (EShell *shell, void e_shell_go_online (EShell *shell, EShellView *action_view); +void e_shell_send_receive (EShell *shell); + Bonobo_ConfigDatabase e_shell_get_config_db (EShell *shell); EComponentRegistry *e_shell_get_component_registry (EShell *shell); EShellUserCreatableItemsHandler *e_shell_get_user_creatable_items_handler (EShell *shell); diff --git a/shell/evolution-shell-component.c b/shell/evolution-shell-component.c index 0357a20921..072ff580b1 100644 --- a/shell/evolution-shell-component.c +++ b/shell/evolution-shell-component.c @@ -82,6 +82,7 @@ enum { INTERACTIVE, HANDLE_EXTERNAL_URI, USER_CREATE_NEW_ITEM, + SEND_RECEIVE, LAST_SIGNAL }; @@ -657,6 +658,17 @@ impl_userCreateNewItem (PortableServer_Servant servant, gtk_signal_emit (GTK_OBJECT (shell_component), signals[USER_CREATE_NEW_ITEM], id, parent_physical_uri, parent_type); } +static void +impl_sendReceive (PortableServer_Servant servant, + const CORBA_boolean show_dialog, + CORBA_Environment *ev) +{ + EvolutionShellComponent *shell_component; + + shell_component = EVOLUTION_SHELL_COMPONENT (bonobo_object_from_servant (servant)); + gtk_signal_emit (GTK_OBJECT (shell_component), signals[SEND_RECEIVE], show_dialog); +} + /* GtkObject methods. */ @@ -831,6 +843,15 @@ class_init (EvolutionShellComponentClass *klass) GTK_TYPE_STRING, GTK_TYPE_STRING); + signals[SEND_RECEIVE] + = gtk_signal_new ("send_receive", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EvolutionShellComponentClass, send_receive), + gtk_marshal_NONE__BOOL, + GTK_TYPE_NONE, 1, + GTK_TYPE_BOOL); + gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL); parent_class = gtk_type_class (PARENT_TYPE); @@ -849,6 +870,7 @@ class_init (EvolutionShellComponentClass *klass) epv->xferFolderAsync = impl_xferFolderAsync; epv->populateFolderContextMenu = impl_populateFolderContextMenu; epv->userCreateNewItem = impl_userCreateNewItem; + epv->sendReceive = impl_sendReceive; shell_component_class = EVOLUTION_SHELL_COMPONENT_CLASS (object_class); shell_component_class->owner_died = impl_owner_died; diff --git a/shell/evolution-shell-component.h b/shell/evolution-shell-component.h index 7f7073572e..2364f48450 100644 --- a/shell/evolution-shell-component.h +++ b/shell/evolution-shell-component.h @@ -154,6 +154,9 @@ struct _EvolutionShellComponentClass { const char *id, const char *parent_folder_physical_uri, const char *parent_folder_type); + + void (* send_receive) (EvolutionShellComponent *shell_component, + gboolean show_dialog); }; diff --git a/ui/ChangeLog b/ui/ChangeLog index 08850b1722..de67f9955e 100644 --- a/ui/ChangeLog +++ b/ui/ChangeLog @@ -1,3 +1,22 @@ +2002-03-20 Ettore Perazzoli + + * evolution.xml: Move the ComponentActionsPlaceholder into the + Actions menu, instead of the Actions menu being in the + ComponentActionsPlaceholder. + * evolution-addressbook.xml: Updated accordingly. + * evolution-calendar.xml: Updated accordingly. + * evolution-mail-global.xml: Updated accordingly. + * evolution-mail-list.xml: Updated accordingly. + * evolution-mail-message.xml: Updated accordingly. + * evolution-mail-messagedisplay.xml: Updated accordingly. + * evolution-tasks.xml: Updated accordingly. + + * evolution.xml: Add "SendReceive" verb, menu item and toolbar + button. + + * evolution-mail-global.xml: Remove "MailGetSend" verb and menu + item. + 2002-03-14 Ettore Perazzoli * evolution.xml: Add a "Search" menu. diff --git a/ui/evolution-addressbook.xml b/ui/evolution-addressbook.xml index f6666ff0ce..a560f7cad0 100644 --- a/ui/evolution-addressbook.xml +++ b/ui/evolution-addressbook.xml @@ -121,17 +121,16 @@ verb="BonoboUIDump" _label="Dump"/> - - - - - - - - - + + + + + + + + diff --git a/ui/evolution-calendar.xml b/ui/evolution-calendar.xml index 63b712b70c..b62c3030c9 100644 --- a/ui/evolution-calendar.xml +++ b/ui/evolution-calendar.xml @@ -57,11 +57,11 @@ - - + + - - + + diff --git a/ui/evolution-mail-global.xml b/ui/evolution-mail-global.xml index 90589de162..36f8471354 100644 --- a/ui/evolution-mail-global.xml +++ b/ui/evolution-mail-global.xml @@ -12,10 +12,6 @@ _tip="Open a window for composing a mail message" pixtype="pixbuf"/> - - @@ -72,9 +68,8 @@ - - - + + @@ -86,8 +81,8 @@ - - + + @@ -120,10 +115,6 @@ - - diff --git a/ui/evolution-mail-list.xml b/ui/evolution-mail-list.xml index 9c54f255e2..0bc146043b 100644 --- a/ui/evolution-mail-list.xml +++ b/ui/evolution-mail-list.xml @@ -110,13 +110,13 @@ - - + + - - + + diff --git a/ui/evolution-mail-message.xml b/ui/evolution-mail-message.xml index f6d51a31cb..a1d02b089a 100644 --- a/ui/evolution-mail-message.xml +++ b/ui/evolution-mail-message.xml @@ -258,8 +258,8 @@ - - + + @@ -303,8 +303,8 @@ - - + + diff --git a/ui/evolution-mail-messagedisplay.xml b/ui/evolution-mail-messagedisplay.xml index a371498ee2..01107ae74c 100644 --- a/ui/evolution-mail-messagedisplay.xml +++ b/ui/evolution-mail-messagedisplay.xml @@ -28,11 +28,11 @@ - - + + - - + + diff --git a/ui/evolution-tasks.xml b/ui/evolution-tasks.xml index 1bd3e13794..c7fa81f0c6 100644 --- a/ui/evolution-tasks.xml +++ b/ui/evolution-tasks.xml @@ -42,11 +42,11 @@ - - + + - - + + diff --git a/ui/evolution.xml b/ui/evolution.xml index fc3de6a6b9..def37a3478 100644 --- a/ui/evolution.xml +++ b/ui/evolution.xml @@ -17,6 +17,10 @@ + + @@ -136,7 +140,10 @@ - + + + + @@ -182,6 +189,10 @@ + + -- cgit v1.2.3