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_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); }
static void action_task_list_rename_cb (GtkAction *action, ETaskShellView *task_shell_view) { ETaskShellSidebar *task_shell_sidebar; ESourceSelector *selector; task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); e_source_selector_edit_primary_selection (selector); }
static void action_task_list_select_one_cb (GtkAction *action, ETaskShellView *task_shell_view) { ETaskShellSidebar *task_shell_sidebar; ESourceSelector *selector; ESource *primary; task_shell_sidebar = task_shell_view->priv->task_shell_sidebar; selector = e_task_shell_sidebar_get_selector (task_shell_sidebar); primary = e_source_selector_ref_primary_selection (selector); g_return_if_fail (primary != NULL); e_source_selector_select_exclusive (selector, primary); g_object_unref (primary); }
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_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); }
void e_task_shell_view_private_constructed (ETaskShellView *task_shell_view) { ETaskShellViewPrivate *priv = task_shell_view->priv; EShellBackend *shell_backend; EShellContent *shell_content; EShellSidebar *shell_sidebar; EShellWindow *shell_window; EShellView *shell_view; EShell *shell; gulong handler_id; shell_view = E_SHELL_VIEW (task_shell_view); shell_backend = e_shell_view_get_shell_backend (shell_view); shell_content = e_shell_view_get_shell_content (shell_view); shell_sidebar = e_shell_view_get_shell_sidebar (shell_view); shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); e_shell_window_add_action_group (shell_window, "tasks"); e_shell_window_add_action_group (shell_window, "tasks-filter"); /* Cache these to avoid lots of awkward casting. */ priv->task_shell_backend = g_object_ref (shell_backend); priv->task_shell_content = g_object_ref (shell_content); priv->task_shell_sidebar = g_object_ref (shell_sidebar); priv->settings = g_settings_new ("org.gnome.evolution.calendar"); handler_id = g_signal_connect_object ( priv->task_shell_sidebar, "client-added", G_CALLBACK (task_shell_view_selector_client_added_cb), task_shell_view, G_CONNECT_SWAPPED); priv->client_added_handler_id = handler_id; handler_id = g_signal_connect_object ( priv->task_shell_sidebar, "client-removed", G_CALLBACK (task_shell_view_selector_client_removed_cb), task_shell_view, G_CONNECT_SWAPPED); priv->client_removed_handler_id = handler_id; /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->client_cache = e_shell_get_client_cache (shell); g_object_ref (priv->client_cache); handler_id = g_signal_connect ( priv->client_cache, "backend-error", G_CALLBACK (task_shell_view_backend_error_cb), task_shell_view); priv->backend_error_handler_id = handler_id; /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->task_table = e_task_shell_content_get_task_table ( E_TASK_SHELL_CONTENT (shell_content)); g_object_ref (priv->task_table); handler_id = g_signal_connect_swapped ( priv->task_table, "open-component", G_CALLBACK (e_task_shell_view_open_task), task_shell_view); priv->open_component_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->task_table, "popup-event", G_CALLBACK (task_shell_view_table_popup_event_cb), task_shell_view); priv->popup_event_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->task_table, "selection-change", G_CALLBACK (e_task_shell_view_update_sidebar), task_shell_view); priv->selection_change_1_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->task_table, "selection-change", G_CALLBACK (e_shell_view_update_actions), task_shell_view); priv->selection_change_2_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->task_table, "status-message", G_CALLBACK (e_task_shell_view_set_status_message), task_shell_view); priv->status_message_handler_id = handler_id; /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->model = e_task_table_get_model (priv->task_table); g_object_ref (priv->model); handler_id = g_signal_connect_swapped ( priv->model, "model-changed", G_CALLBACK (e_task_shell_view_update_sidebar), task_shell_view); priv->model_changed_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->model, "model-rows-deleted", G_CALLBACK (e_task_shell_view_update_sidebar), task_shell_view); priv->model_rows_deleted_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->model, "model-rows-inserted", G_CALLBACK (e_task_shell_view_update_sidebar), task_shell_view); priv->model_rows_inserted_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->model, "row-appended", G_CALLBACK (task_shell_view_model_row_appended_cb), task_shell_view); priv->rows_appended_handler_id = handler_id; /* Keep our own reference to this so we can * disconnect our signal handlers in dispose(). */ priv->selector = e_task_shell_sidebar_get_selector ( E_TASK_SHELL_SIDEBAR (shell_sidebar)); g_object_ref (priv->selector); handler_id = g_signal_connect_swapped ( priv->selector, "popup-event", G_CALLBACK (task_shell_view_selector_popup_event_cb), task_shell_view); priv->selector_popup_event_handler_id = handler_id; handler_id = g_signal_connect_swapped ( priv->selector, "primary-selection-changed", G_CALLBACK (e_shell_view_update_actions), task_shell_view); priv->primary_selection_changed_handler_id = handler_id; e_categories_add_change_hook ( (GHookFunc) e_task_shell_view_update_search_filter, task_shell_view); /* Listen for configuration changes. */ g_settings_bind ( priv->settings, "confirm-purge", shell_view, "confirm-purge", G_SETTINGS_BIND_DEFAULT); /* Keep the ECalModel in sync with the sidebar. */ g_object_bind_property ( shell_sidebar, "default-client", priv->model, "default-client", G_BINDING_SYNC_CREATE); /* Hide Completed Tasks (enable/units/value) */ handler_id = g_signal_connect ( priv->settings, "changed::hide-completed-tasks", G_CALLBACK (task_shell_view_hide_completed_tasks_changed_cb), task_shell_view); priv->settings_hide_completed_tasks_handler_id = handler_id; handler_id = g_signal_connect ( priv->settings, "changed::hide-completed-tasks-units", G_CALLBACK (task_shell_view_hide_completed_tasks_changed_cb), task_shell_view); priv->settings_hide_completed_tasks_units_handler_id = handler_id; handler_id = g_signal_connect ( priv->settings, "changed::hide-completed-tasks-value", G_CALLBACK (task_shell_view_hide_completed_tasks_changed_cb), task_shell_view); priv->settings_hide_completed_tasks_value_handler_id = handler_id; e_task_shell_view_actions_init (task_shell_view); e_task_shell_view_update_sidebar (task_shell_view); e_task_shell_view_update_search_filter (task_shell_view); /* Call this when everything is ready, like actions in * action groups and such. */ task_shell_view_update_timeout_cb (task_shell_view); priv->update_timeout = e_named_timeout_add_full ( G_PRIORITY_LOW, 60000, task_shell_view_update_timeout_cb, task_shell_view, NULL); }