static void mail_shell_view_reader_changed_cb (EMailShellView *mail_shell_view, EMailReader *reader) { GtkWidget *message_list; EMailDisplay *display; EShellView *shell_view; EShellTaskbar *shell_taskbar; shell_view = E_SHELL_VIEW (mail_shell_view); shell_taskbar = e_shell_view_get_shell_taskbar (shell_view); display = e_mail_reader_get_mail_display (reader); message_list = e_mail_reader_get_message_list (reader); e_shell_view_update_actions_in_idle (E_SHELL_VIEW (mail_shell_view)); e_mail_shell_view_update_sidebar (mail_shell_view); /* Connect if its not connected already */ if (g_signal_handler_find ( message_list, G_SIGNAL_MATCH_FUNC, 0, 0, NULL, mail_shell_view_message_list_key_press_cb, NULL)) return; g_signal_connect_object ( message_list, "key-press", G_CALLBACK (mail_shell_view_message_list_key_press_cb), mail_shell_view, G_CONNECT_SWAPPED); g_signal_connect_object ( message_list, "popup-menu", G_CALLBACK (mail_shell_view_message_list_popup_menu_cb), mail_shell_view, G_CONNECT_SWAPPED); g_signal_connect_object ( message_list, "right-click", G_CALLBACK (mail_shell_view_message_list_right_click_cb), mail_shell_view, G_CONNECT_SWAPPED); g_signal_connect_object ( display, "key-press-event", G_CALLBACK (mail_shell_view_key_press_event_cb), mail_shell_view, G_CONNECT_SWAPPED); g_signal_connect_object ( display, "popup-event", G_CALLBACK (mail_shell_view_popup_event_cb), mail_shell_view, G_CONNECT_SWAPPED); g_signal_connect_object ( display, "status-message", G_CALLBACK (e_shell_taskbar_set_message), shell_taskbar, G_CONNECT_SWAPPED); }
void e_task_shell_view_set_status_message (ETaskShellView *task_shell_view, const gchar *status_message, gdouble percent) { EActivity *activity; EShellView *shell_view; EShellBackend *shell_backend; g_return_if_fail (E_IS_TASK_SHELL_VIEW (task_shell_view)); activity = task_shell_view->priv->activity; shell_view = E_SHELL_VIEW (task_shell_view); shell_backend = e_shell_view_get_shell_backend (shell_view); if (status_message == NULL || *status_message == '\0') { if (activity != NULL) { e_activity_set_state (activity, E_ACTIVITY_COMPLETED); g_object_unref (activity); activity = NULL; } } else if (activity == NULL) { activity = e_activity_new (); e_activity_set_percent (activity, percent); e_activity_set_text (activity, status_message); e_shell_backend_add_activity (shell_backend, activity); } else { e_activity_set_percent (activity, percent); e_activity_set_text (activity, status_message); } task_shell_view->priv->activity = activity; }
static void action_calendar_taskpad_open_url_cb (GtkAction *action, ECalShellView *cal_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ECalShellContent *cal_shell_content; ECalModelComponent *comp_data; ETaskTable *task_table; icalproperty *prop; const gchar *uri; GSList *list; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); cal_shell_content = cal_shell_view->priv->cal_shell_content; task_table = e_cal_shell_content_get_task_table (cal_shell_content); list = e_task_table_get_selected (task_table); g_return_if_fail (list != NULL); comp_data = list->data; /* XXX We only open the URI of the first selected task. */ prop = icalcomponent_get_first_property ( comp_data->icalcomp, ICAL_URL_PROPERTY); g_return_if_fail (prop != NULL); uri = icalproperty_get_url (prop); e_show_uri (GTK_WINDOW (shell_window), uri); }
static void action_task_list_refresh_cb (GtkAction *action, ETaskShellView *task_shell_view) { ETaskShellSidebar *task_shell_sidebar; ESourceSelector *selector; EClient *client = NULL; ESource *source; task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); if (source != NULL) { client = e_client_selector_ref_cached_client ( E_CLIENT_SELECTOR (selector), source); g_object_unref (source); } if (client == NULL) return; g_return_if_fail (e_client_check_refresh_supported (client)); e_cal_shell_view_allow_auth_prompt_and_refresh (E_SHELL_VIEW (task_shell_view), client); g_object_unref (client); }
static void action_address_book_delete_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; EBookShellBackend *book_shell_backend; EBookShellSidebar *book_shell_sidebar; ESource *source; ESourceSelector *selector; ESourceGroup *source_group; ESourceList *source_list; EBookClient *book; gint response; GError *error = NULL; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); book_shell_backend = book_shell_view->priv->book_shell_backend; source_list = e_book_shell_backend_get_source_list (book_shell_backend); book_shell_sidebar = book_shell_view->priv->book_shell_sidebar; selector = e_book_shell_sidebar_get_selector (book_shell_sidebar); source = e_source_selector_get_primary_selection (selector); g_return_if_fail (source != NULL); response = e_alert_run_dialog_for_args ( GTK_WINDOW (shell_window), "addressbook:ask-delete-addressbook", e_source_peek_name (source), NULL); if (response != GTK_RESPONSE_YES) return; book = e_book_client_new (source, &error); if (error != NULL) { g_warning ("Error removing addressbook: %s", error->message); g_error_free (error); return; } if (!e_client_remove_sync (E_CLIENT (book), NULL, NULL)) { e_alert_run_dialog_for_args ( GTK_WINDOW (shell_window), "addressbook:remove-addressbook", NULL); g_object_unref (book); return; } if (e_source_selector_source_is_selected (selector, source)) e_source_selector_unselect_source (selector, source); source_group = e_source_peek_group (source); e_source_group_remove_source (source_group, source); e_source_list_sync (source_list, NULL); g_object_unref (book); }
static void action_address_book_new_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ESourceRegistry *registry; GtkWidget *config; GtkWidget *dialog; const gchar *icon_name; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); registry = book_shell_view->priv->registry; config = e_book_source_config_new (registry, NULL); dialog = e_source_config_dialog_new (E_SOURCE_CONFIG (config)); gtk_window_set_transient_for ( GTK_WINDOW (dialog), GTK_WINDOW (shell_window)); icon_name = gtk_action_get_icon_name (action); gtk_window_set_icon_name (GTK_WINDOW (dialog), icon_name); gtk_window_set_title (GTK_WINDOW (dialog), _("New Address Book")); gtk_widget_show (dialog); }
static gboolean mail_shell_view_popup_event_cb (EMailShellView *mail_shell_view, const gchar *uri) { EMailShellContent *mail_shell_content; EMailDisplay *display; EShellView *shell_view; EMailReader *reader; EMailView *mail_view; GtkMenu *menu; if (uri != NULL) return FALSE; mail_shell_content = mail_shell_view->priv->mail_shell_content; mail_view = e_mail_shell_content_get_mail_view (mail_shell_content); reader = E_MAIL_READER (mail_view); display = e_mail_reader_get_mail_display (reader); if (e_web_view_get_cursor_image_src (E_WEB_VIEW (display)) != NULL) return FALSE; menu = e_mail_reader_get_popup_menu (reader); shell_view = E_SHELL_VIEW (mail_shell_view); e_shell_view_update_actions (shell_view); gtk_menu_popup ( menu, NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time ()); return TRUE; }
static void action_task_list_new_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ESourceRegistry *registry; ECalClientSourceType source_type; GtkWidget *config; GtkWidget *dialog; const gchar *icon_name; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); registry = e_shell_get_registry (shell); source_type = E_CAL_CLIENT_SOURCE_TYPE_TASKS; config = e_cal_source_config_new (registry, NULL, source_type); dialog = e_source_config_dialog_new (E_SOURCE_CONFIG (config)); gtk_window_set_transient_for ( GTK_WINDOW (dialog), GTK_WINDOW (shell_window)); icon_name = gtk_action_get_icon_name (action); gtk_window_set_icon_name (GTK_WINDOW (dialog), icon_name); gtk_window_set_title (GTK_WINDOW (dialog), _("New Task List")); gtk_widget_show (dialog); }
static void action_task_new_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ETaskShellContent *task_shell_content; ETaskTable *task_table; EClient *client = NULL; GSList *list; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); task_shell_content = task_shell_view->priv->task_shell_content; task_table = e_task_shell_content_get_task_table (task_shell_content); list = e_task_table_get_selected (task_table); if (list) { ECalModelComponent *comp_data; comp_data = list->data; client = g_object_ref (comp_data->client); g_slist_free (list); } e_cal_ops_new_component_editor (shell_window, E_CAL_CLIENT_SOURCE_TYPE_TASKS, client ? e_source_get_uid (e_client_get_source (client)) : NULL, FALSE); g_clear_object (&client); }
static void action_task_list_copy_cb (GtkAction *action, ETaskShellView *task_shell_view) { ETaskShellSidebar *task_shell_sidebar; EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ESourceRegistry *registry; ESourceSelector *selector; ESource *source; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); registry = e_shell_get_registry (shell); task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); g_return_if_fail (source != NULL); copy_source_dialog ( GTK_WINDOW (shell_window), registry, source, E_CAL_CLIENT_SOURCE_TYPE_TASKS); g_object_unref (source); }
void e_cal_shell_view_taskpad_actions_init (ECalShellView *cal_shell_view) { EShellView *shell_view; EShellWindow *shell_window; GtkActionGroup *action_group; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); /* Calendar Actions */ action_group = ACTION_GROUP (CALENDAR); gtk_action_group_add_actions ( action_group, calendar_taskpad_entries, G_N_ELEMENTS (calendar_taskpad_entries), cal_shell_view); /* Lockdown Printing Actions */ action_group = ACTION_GROUP (LOCKDOWN_PRINTING); gtk_action_group_add_actions ( action_group, lockdown_printing_entries, G_N_ELEMENTS (lockdown_printing_entries), cal_shell_view); /* Lockdown Save-to-Disk Actions */ action_group = ACTION_GROUP (LOCKDOWN_SAVE_TO_DISK); gtk_action_group_add_actions ( action_group, lockdown_save_to_disk_entries, G_N_ELEMENTS (lockdown_save_to_disk_entries), cal_shell_view); }
static void action_calendar_taskpad_new_cb (GtkAction *action, ECalShellView *cal_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ECalShellContent *cal_shell_content; ECalModelComponent *comp_data; ETaskTable *task_table; GSList *list; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); cal_shell_content = cal_shell_view->priv->cal_shell_content; task_table = e_cal_shell_content_get_task_table (cal_shell_content); list = e_task_table_get_selected (task_table); g_return_if_fail (list != NULL); comp_data = list->data; g_slist_free (list); e_cal_ops_new_component_editor (shell_window, E_CAL_CLIENT_SOURCE_TYPE_TASKS, e_source_get_uid (e_client_get_source (E_CLIENT (comp_data->client))), FALSE); }
static void action_contact_new_list_cb (GtkAction *action, EBookShellView *book_shell_view) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; EBookShellContent *book_shell_content; EAddressbookView *view; EAddressbookModel *model; EContact *contact; EABEditor *editor; EBookClient *book; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); book_shell_content = book_shell_view->priv->book_shell_content; view = e_book_shell_content_get_current_view (book_shell_content); g_return_if_fail (view != NULL); model = e_addressbook_view_get_model (view); book = e_addressbook_model_get_client (model); g_return_if_fail (book != NULL); contact = e_contact_new (); editor = e_contact_list_editor_new (shell, book, contact, TRUE, TRUE); eab_editor_show (editor); g_object_unref (contact); }
void e_cal_shell_view_memopad_actions_update (ECalShellView *cal_shell_view) { ECalShellContent *cal_shell_content; EShellWindow *shell_window; EShellView *shell_view; EMemoTable *memo_table; GtkAction *action; GSList *list, *iter; gboolean editable = TRUE; gboolean has_url = FALSE; gboolean sensitive; gint n_selected; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); cal_shell_content = cal_shell_view->priv->cal_shell_content; memo_table = e_cal_shell_content_get_memo_table (cal_shell_content); n_selected = e_table_selected_count (E_TABLE (memo_table)); list = e_memo_table_get_selected (memo_table); for (iter = list; iter != NULL; iter = iter->next) { ECalModelComponent *comp_data = iter->data; icalproperty *prop; gboolean read_only; read_only = e_client_is_readonly (E_CLIENT (comp_data->client)); editable &= !read_only; prop = icalcomponent_get_first_property ( comp_data->icalcomp, ICAL_URL_PROPERTY); has_url |= (prop != NULL); } g_slist_free (list); action = ACTION (CALENDAR_MEMOPAD_FORWARD); sensitive = (n_selected == 1); gtk_action_set_sensitive (action, sensitive); action = ACTION (CALENDAR_MEMOPAD_OPEN); sensitive = (n_selected == 1); gtk_action_set_sensitive (action, sensitive); action = ACTION (CALENDAR_MEMOPAD_OPEN_URL); sensitive = (n_selected == 1) && has_url; gtk_action_set_sensitive (action, sensitive); action = ACTION (CALENDAR_MEMOPAD_PRINT); sensitive = (n_selected == 1); gtk_action_set_sensitive (action, sensitive); action = ACTION (CALENDAR_MEMOPAD_SAVE_AS); sensitive = (n_selected == 1); gtk_action_set_sensitive (action, sensitive); }
void e_task_shell_view_open_task (ETaskShellView *task_shell_view, ECalModelComponent *comp_data) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ESourceRegistry *registry; CompEditor *editor; CompEditorFlags flags = 0; ECalComponent *comp; icalcomponent *clone; icalproperty *prop; const gchar *uid; g_return_if_fail (E_IS_TASK_SHELL_VIEW (task_shell_view)); g_return_if_fail (E_IS_CAL_MODEL_COMPONENT (comp_data)); shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); registry = e_shell_get_registry (shell); uid = icalcomponent_get_uid (comp_data->icalcomp); editor = comp_editor_find_instance (uid); if (editor != NULL) goto exit; comp = e_cal_component_new (); clone = icalcomponent_new_clone (comp_data->icalcomp); e_cal_component_set_icalcomponent (comp, clone); prop = icalcomponent_get_first_property ( comp_data->icalcomp, ICAL_ATTENDEE_PROPERTY); if (prop != NULL) flags |= COMP_EDITOR_IS_ASSIGNED; if (itip_organizer_is_user (registry, comp, comp_data->client)) flags |= COMP_EDITOR_USER_ORG; if (!e_cal_component_has_attendees (comp)) flags |= COMP_EDITOR_USER_ORG; editor = task_editor_new (comp_data->client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_unref (comp); if (flags & COMP_EDITOR_IS_ASSIGNED) task_editor_show_assignment (TASK_EDITOR (editor)); exit: gtk_window_present (GTK_WINDOW (editor)); }
static void mail_shell_view_folder_tree_selected_cb (EMailShellView *mail_shell_view, CamelStore *store, const gchar *folder_name, CamelFolderInfoFlags flags, EMFolderTree *folder_tree) { EMailShellContent *mail_shell_content; EShellView *shell_view; EMailReader *reader; EMailView *mail_view; GCancellable *cancellable; AsyncContext *context; EActivity *activity; shell_view = E_SHELL_VIEW (mail_shell_view); mail_shell_content = mail_shell_view->priv->mail_shell_content; mail_view = e_mail_shell_content_get_mail_view (mail_shell_content); reader = E_MAIL_READER (mail_view); /* Cancel any unfinished open folder operations. */ if (mail_shell_view->priv->opening_folder != NULL) { g_cancellable_cancel (mail_shell_view->priv->opening_folder); g_object_unref (mail_shell_view->priv->opening_folder); mail_shell_view->priv->opening_folder = NULL; } /* If we are to clear the message list, do so immediately. */ if ((flags & CAMEL_FOLDER_NOSELECT) || folder_name == NULL) { e_mail_reader_set_folder (reader, NULL); e_shell_view_update_actions_in_idle (shell_view); return; } g_warn_if_fail (CAMEL_IS_STORE (store)); /* Open the selected folder asynchronously. */ activity = e_mail_reader_new_activity (reader); cancellable = e_activity_get_cancellable (activity); mail_shell_view->priv->opening_folder = g_object_ref (cancellable); context = g_slice_new0 (AsyncContext); context->activity = activity; context->reader = g_object_ref (reader); context->shell_view = g_object_ref (shell_view); camel_store_get_folder ( store, folder_name, 0, G_PRIORITY_DEFAULT, cancellable, (GAsyncReadyCallback) mail_shell_view_got_folder_cb, context); }
static void action_address_book_new_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); addressbook_config_create_new_source (GTK_WIDGET (shell_window)); }
static void e_mapi_config_ui_extension_constructed (GObject *object) { EExtension *extension; EExtensible *extensible; extension = E_EXTENSION (object); extensible = e_extension_get_extensible (extension); /* Chain up to parent's constructed() method. */ G_OBJECT_CLASS (e_mapi_config_ui_extension_parent_class)->constructed (object); g_signal_connect (E_SHELL_VIEW (extensible), "toggled", G_CALLBACK (e_mapi_config_ui_extension_shell_view_toggled_cb), extension); }
static void action_address_book_manage_groups_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; ESourceSelector *selector; shell_view = E_SHELL_VIEW (book_shell_view); selector = e_book_shell_sidebar_get_selector (book_shell_view->priv->book_shell_sidebar); if (e_source_selector_manage_groups (selector) && e_source_selector_save_groups_setup (selector, e_shell_view_get_state_key_file (shell_view))) e_shell_view_set_state_dirty (shell_view); }
static void action_task_purge_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShellView *shell_view; EShellWindow *shell_window; GtkWidget *content_area; GtkWidget *dialog; GtkWidget *widget; gboolean active; gint response; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); if (!e_task_shell_view_get_confirm_purge (task_shell_view)) goto purge; /* XXX This needs reworked. The dialog looks like ass. */ dialog = gtk_message_dialog_new ( GTK_WINDOW (shell_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, "%s", _("This operation will permanently erase all tasks " "marked as completed. If you continue, you will not be able " "to recover these tasks.\n\nReally erase these tasks?")); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_NO); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); widget = gtk_check_button_new_with_label (_("Do not ask me again")); gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 6); gtk_widget_show (widget); response = gtk_dialog_run (GTK_DIALOG (dialog)); active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); gtk_widget_destroy (dialog); if (response != GTK_RESPONSE_YES) return; if (active) e_task_shell_view_set_confirm_purge (task_shell_view, FALSE); purge: e_task_shell_view_delete_completed (task_shell_view); }
static SendReceiveData * send_receive_data_new (EMailShellView *mail_shell_view, GtkWidget *menu) { SendReceiveData *data; EShellView *shell_view; EShellBackend *shell_backend; EMailAccountStore *account_store; EMailBackend *backend; EMailSession *session; shell_view = E_SHELL_VIEW (mail_shell_view); shell_backend = e_shell_view_get_shell_backend (shell_view); backend = E_MAIL_BACKEND (shell_backend); session = e_mail_backend_get_session (backend); account_store = e_mail_ui_session_get_account_store ( E_MAIL_UI_SESSION (session)); data = g_slice_new0 (SendReceiveData); data->menu = GTK_MENU_SHELL (menu); /* do not reference */ data->session = g_object_ref (session); data->account_store = g_object_ref (account_store); data->menu_items = g_hash_table_new_full ( (GHashFunc) g_direct_hash, (GEqualFunc) g_direct_equal, (GDestroyNotify) NULL, (GDestroyNotify) g_object_unref); data->service_added_id = g_signal_connect ( account_store, "service-added", G_CALLBACK (send_receive_menu_service_added_cb), data); data->service_removed_id = g_signal_connect ( account_store, "service-removed", G_CALLBACK (send_receive_menu_service_removed_cb), data); data->service_enabled_id = g_signal_connect ( account_store, "service-enabled", G_CALLBACK (send_receive_menu_service_added_cb), data); data->service_disabled_id = g_signal_connect ( account_store, "service-disabled", G_CALLBACK (send_receive_menu_service_removed_cb), data); g_object_weak_ref ( G_OBJECT (menu), (GWeakNotify) send_receive_data_free, data); return data; }
void e_cal_shell_view_taskpad_open_task (ECalShellView *cal_shell_view, ECalModelComponent *comp_data) { EShellContent *shell_content; ECalModel *model; g_return_if_fail (E_IS_CAL_SHELL_VIEW (cal_shell_view)); g_return_if_fail (E_IS_CAL_MODEL_COMPONENT (comp_data)); shell_content = e_shell_view_get_shell_content (E_SHELL_VIEW (cal_shell_view)); model = e_cal_base_shell_content_get_model (E_CAL_BASE_SHELL_CONTENT (shell_content)); e_cal_ops_open_component_in_editor_sync (model, comp_data->client, comp_data->icalcomp); }
static void action_task_new_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShell *shell; EShellView *shell_view; EShellWindow *shell_window; ETaskShellContent *task_shell_content; ETaskTable *task_table; ECalClient *client; ECalComponent *comp; CompEditor *editor; GSList *list; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); task_shell_content = task_shell_view->priv->task_shell_content; task_table = e_task_shell_content_get_task_table (task_shell_content); list = e_task_table_get_selected (task_table); if (list == NULL) { ECalModel *model; model = e_task_table_get_model (task_table); client = e_cal_model_ref_default_client (model); } else { ECalModelComponent *comp_data; comp_data = list->data; client = g_object_ref (comp_data->client); g_slist_free (list); } g_return_if_fail (client != NULL); editor = task_editor_new (client, shell, COMP_EDITOR_NEW_ITEM); comp = cal_comp_task_new_with_defaults (client); comp_editor_edit_comp (editor, comp); gtk_window_present (GTK_WINDOW (editor)); g_object_unref (comp); g_object_unref (client); }
static void mail_shell_view_search_filter_changed_cb (EMailShellView *mail_shell_view) { EMailShellContent *mail_shell_content; EMailView *mail_view; g_return_if_fail (mail_shell_view != NULL); g_return_if_fail (mail_shell_view->priv != NULL); if (e_shell_view_is_execute_search_blocked (E_SHELL_VIEW (mail_shell_view))) return; mail_shell_content = mail_shell_view->priv->mail_shell_content; mail_view = e_mail_shell_content_get_mail_view (mail_shell_content); e_mail_reader_avoid_next_mark_as_seen (E_MAIL_READER (mail_view)); }
static void action_address_book_properties_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; EBookShellSidebar *book_shell_sidebar; ESource *source; ESourceSelector *selector; EditorUidClosure *closure; GHashTable *uid_to_editor; const gchar *uid; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); book_shell_sidebar = book_shell_view->priv->book_shell_sidebar; selector = e_book_shell_sidebar_get_selector (book_shell_sidebar); source = e_source_selector_get_primary_selection (selector); g_return_if_fail (source != NULL); uid = e_source_peek_uid (source); uid_to_editor = book_shell_view->priv->uid_to_editor; closure = g_hash_table_lookup (uid_to_editor, uid); if (closure == NULL) { GtkWidget *editor; editor = addressbook_config_edit_source ( GTK_WIDGET (shell_window), source); closure = g_new (EditorUidClosure, 1); closure->editor = editor; closure->uid = g_strdup (uid); closure->view = book_shell_view; g_hash_table_insert (uid_to_editor, closure->uid, closure); g_object_weak_ref ( G_OBJECT (closure->editor), (GWeakNotify) e_book_shell_view_editor_weak_notify, closure); } gtk_window_present (GTK_WINDOW (closure->editor)); }
static gboolean mail_shell_view_key_press_event_cb (EMailShellView *mail_shell_view, GdkEventKey *event) { EShellView *shell_view; EShellWindow *shell_window; EShellContent *shell_content; EMailView *mail_view; EMailReader *reader; EMailDisplay *mail_display; GtkAction *action; shell_view = E_SHELL_VIEW (mail_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); if ((event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)) != 0) return FALSE; shell_content = e_shell_view_get_shell_content (shell_view); mail_view = e_mail_shell_content_get_mail_view (E_MAIL_SHELL_CONTENT (shell_content)); reader = E_MAIL_READER (mail_view); mail_display = e_mail_reader_get_mail_display (reader); switch (event->keyval) { case GDK_KEY_space: action = ACTION (MAIL_SMART_FORWARD); break; case GDK_KEY_BackSpace: action = ACTION (MAIL_SMART_BACKWARD); break; default: return FALSE; } if (e_web_view_get_need_input (E_WEB_VIEW (mail_display)) && gtk_widget_has_focus (GTK_WIDGET (mail_display))) return FALSE; gtk_action_activate (action); return TRUE; }
static void action_address_book_delete_cb (GtkAction *action, EBookShellView *book_shell_view) { EShellView *shell_view; EShellWindow *shell_window; EBookShellSidebar *book_shell_sidebar; ESource *source; ESourceSelector *selector; gint response; shell_view = E_SHELL_VIEW (book_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); book_shell_sidebar = book_shell_view->priv->book_shell_sidebar; selector = e_book_shell_sidebar_get_selector (book_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); g_return_if_fail (source != NULL); if (e_source_get_remote_deletable (source)) { response = e_alert_run_dialog_for_args ( GTK_WINDOW (shell_window), "addressbook:ask-delete-remote-addressbook", e_source_get_display_name (source), NULL); if (response == GTK_RESPONSE_YES) e_shell_view_remote_delete_source (shell_view, source); } else { response = e_alert_run_dialog_for_args ( GTK_WINDOW (shell_window), "addressbook:ask-delete-addressbook", e_source_get_display_name (source), NULL); if (response == GTK_RESPONSE_YES) e_shell_view_remove_source (shell_view, source); } g_object_unref (source); }
static void action_task_list_delete_cb (GtkAction *action, ETaskShellView *task_shell_view) { ETaskShellSidebar *task_shell_sidebar; EShellWindow *shell_window; EShellView *shell_view; ESource *source; ESourceSelector *selector; gint response; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); g_return_if_fail (source != NULL); if (e_source_get_remote_deletable (source)) { response = e_alert_run_dialog_for_args ( GTK_WINDOW (shell_window), "calendar:prompt-delete-remote-task-list", e_source_get_display_name (source), NULL); if (response == GTK_RESPONSE_YES) e_shell_view_remote_delete_source (shell_view, source); } else { response = e_alert_run_dialog_for_args ( GTK_WINDOW (shell_window), "calendar:prompt-delete-task-list", e_source_get_display_name (source), NULL); if (response == GTK_RESPONSE_YES) e_shell_view_remove_source (shell_view, source); } g_object_unref (source); }
static void action_task_list_properties_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShellView *shell_view; EShellWindow *shell_window; ETaskShellSidebar *task_shell_sidebar; ECalClientSourceType source_type; ESource *source; ESourceSelector *selector; ESourceRegistry *registry; GtkWidget *config; GtkWidget *dialog; const gchar *icon_name; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); source = e_source_selector_ref_primary_selection (selector); g_return_if_fail (source != NULL); source_type = E_CAL_CLIENT_SOURCE_TYPE_TASKS; registry = e_source_selector_get_registry (selector); config = e_cal_source_config_new (registry, source, source_type); g_object_unref (source); dialog = e_source_config_dialog_new (E_SOURCE_CONFIG (config)); gtk_window_set_transient_for ( GTK_WINDOW (dialog), GTK_WINDOW (shell_window)); icon_name = gtk_action_get_icon_name (action); gtk_window_set_icon_name (GTK_WINDOW (dialog), icon_name); gtk_window_set_title (GTK_WINDOW (dialog), _("Task List Properties")); gtk_widget_show (dialog); }
static void action_gal_save_custom_view_cb (GtkAction *action, EBookShellView *book_shell_view) { EBookShellContent *book_shell_content; EShellView *shell_view; EAddressbookView *address_view; GalViewInstance *view_instance; /* All shell views respond to the activation of this action, * which is defined by EShellWindow. But only the currently * active shell view proceeds with saving the custom view. */ shell_view = E_SHELL_VIEW (book_shell_view); if (!e_shell_view_is_active (shell_view)) return; book_shell_content = book_shell_view->priv->book_shell_content; address_view = e_book_shell_content_get_current_view (book_shell_content); view_instance = e_addressbook_view_get_view_instance (address_view); gal_view_instance_save_as (view_instance); }