diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-01-20 03:41:02 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2012-06-03 11:00:41 +0800 |
commit | cb1220aff2c8c78246432229b875b7de6d44de84 (patch) | |
tree | 0e6648380a86e86325c62729c7ad637ce6437248 /plugins/calendar-file/calendar-file.c | |
parent | 8b03b8a20cd20c343979dea3013a05600ad2f6ec (diff) | |
download | gsoc2013-evolution-cb1220aff2c8c78246432229b875b7de6d44de84.tar.gz gsoc2013-evolution-cb1220aff2c8c78246432229b875b7de6d44de84.tar.zst gsoc2013-evolution-cb1220aff2c8c78246432229b875b7de6d44de84.zip |
Add 'cal-config-local' module.
Registers the "On This Computer" backend in ECalSourceConfig widgets.
Replaces the 'calendar-file' plugin.
Diffstat (limited to 'plugins/calendar-file/calendar-file.c')
-rw-r--r-- | plugins/calendar-file/calendar-file.c | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/plugins/calendar-file/calendar-file.c b/plugins/calendar-file/calendar-file.c deleted file mode 100644 index 32ba96aa8a..0000000000 --- a/plugins/calendar-file/calendar-file.c +++ /dev/null @@ -1,249 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see <http://www.gnu.org/licenses/> - * - * - * Authors: - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <gtk/gtk.h> -#include <e-util/e-config.h> -#include <e-util/e-plugin-util.h> -#include <calendar/gui/e-cal-config.h> -#include <libedataserver/e-source.h> -#include <glib/gi18n.h> -#include <string.h> - -gint e_plugin_lib_enable (EPlugin *ep, gint enable); - -gint -e_plugin_lib_enable (EPlugin *ep, - gint enable) -{ - return 0; -} - -static void -location_changed (GtkFileChooserButton *widget, - ESource *source) -{ - gchar *filename; - - g_return_if_fail (widget != NULL); - g_return_if_fail (source != NULL); - - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (widget)); - e_source_set_property ( - source, "custom-file", - (filename && *filename) ? filename : NULL); - g_free (filename); -} - -static void -maincheck_toggled (GtkToggleButton *check, - ESource *source) -{ - GtkWidget *w; - gboolean enabled = gtk_toggle_button_get_active (check); - - w = g_object_get_data (G_OBJECT (check), "child"); - gtk_widget_set_sensitive (w, enabled); - - /* used with source = NULL to enable widgets only */ - if (!source) - return; - - if (enabled) { - gchar *file; - - w = g_object_get_data (G_OBJECT (check), "file-chooser"); - file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (w)); - e_source_set_property (source, "custom-file", (file && *file) ? file : NULL); - g_free (file); - } else { - e_source_set_property (source, "custom-file", NULL); - } -} - -static void -refresh_type_changed (GtkComboBox *refresh_type, - ESource *source) -{ - GtkWidget *refresh_hbox; - gint active = gtk_combo_box_get_active (refresh_type); - gchar buff[2] = {0}; - - refresh_hbox = g_object_get_data (G_OBJECT (refresh_type), "refresh-hbox"); - - if (active < 0 || active > 2) - active = 0; - - if (active == 2) { - gtk_widget_show (refresh_hbox); - } else { - gtk_widget_hide (refresh_hbox); - } - - buff[0] = '0' + active; - e_source_set_property (source, "refresh-type", buff); -} - -GtkWidget *e_calendar_file_customs (EPlugin *epl, EConfigHookItemFactoryData *data); - -GtkWidget * -e_calendar_file_customs (EPlugin *epl, - EConfigHookItemFactoryData *data) -{ - ECalConfigTargetSource *t = (ECalConfigTargetSource *) data->target; - ESource *source = t->source; - const gchar *relative_uri, *value; - guint n_rows; - GtkWidget *w1, *w2, *box1, *box2, *mainbox, *maincheck; - - if (!e_plugin_util_is_source_proto (source, "local")) - return NULL; - - relative_uri = e_source_peek_relative_uri (source); - if (relative_uri && g_str_equal (relative_uri, "system")) - return NULL; - - e_source_set_relative_uri (source, e_source_get_uid (source)); - - mainbox = gtk_vbox_new (FALSE, 2); - g_object_get (data->parent, "n-rows", &n_rows, NULL); - gtk_table_attach ( - GTK_TABLE (data->parent), mainbox, - 1, 2, n_rows, n_rows + 1, - GTK_EXPAND | GTK_FILL, 0, 0, 0); - - maincheck = gtk_check_button_new_with_mnemonic (_("C_ustomize options")); - gtk_box_pack_start ((GtkBox *) mainbox, maincheck, TRUE, TRUE, 2); - - box1 = gtk_hbox_new (FALSE, 2); - gtk_box_pack_start ((GtkBox *) mainbox, box1, TRUE, TRUE, 2); - - g_object_set_data ((GObject*)maincheck, "child", box1); - - /* left-most space, the first one */ - w1 = gtk_label_new (""); - gtk_box_pack_start ((GtkBox *) box1, w1, FALSE, TRUE, 8); - - box2 = gtk_vbox_new (FALSE, 2); - gtk_box_pack_start ((GtkBox *) box1, box2, TRUE, TRUE, 2); - - box1 = box2; - box2 = gtk_hbox_new (FALSE, 2); - gtk_box_pack_start ((GtkBox *) box1, box2, TRUE, TRUE, 2); - - w1 = gtk_label_new_with_mnemonic (_("F_ilename:")); - gtk_misc_set_alignment (GTK_MISC (w1), 0.0, 0.5); - gtk_box_pack_start ((GtkBox *) box2, w1, FALSE, TRUE, 2); - - w2 = gtk_file_chooser_button_new ( - _("Choose calendar file"), GTK_FILE_CHOOSER_ACTION_OPEN); - gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (w2), TRUE); - gtk_label_set_mnemonic_widget (GTK_LABEL (w1), w2); - gtk_box_pack_start ((GtkBox *) box2, w2, TRUE, TRUE, 2); - - g_object_set_data (G_OBJECT (maincheck), "file-chooser", w2); - - value = e_source_get_property (source, "custom-file"); - if (value && *value) { - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (w2), value); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (maincheck), TRUE); - } else { - gchar *file = NULL; - const gchar *file_name = NULL; - - switch (t->source_type) { - case E_CAL_CLIENT_SOURCE_TYPE_EVENTS: - file_name = "calendar.ics"; - break; - case E_CAL_CLIENT_SOURCE_TYPE_TASKS: - file_name = "tasks.ics"; - break; - case E_CAL_CLIENT_SOURCE_TYPE_MEMOS: - file_name = "journal.ics"; - break; - case E_CAL_CLIENT_SOURCE_TYPE_LAST: - break; - } - - file = g_build_filename (g_get_home_dir (), file_name, NULL); - if (file && *file) - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (w2), file); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (maincheck), FALSE); - g_free (file); - } - maincheck_toggled (GTK_TOGGLE_BUTTON (maincheck), NULL); - - g_signal_connect ( - w2, "file-set", - G_CALLBACK (location_changed), source); - g_signal_connect ( - maincheck, "toggled", - G_CALLBACK (maincheck_toggled), source); - - box2 = gtk_hbox_new (FALSE, 2); - gtk_box_pack_start ((GtkBox *) box1, box2, FALSE, TRUE, 2); - - w1 = gtk_label_new_with_mnemonic (_("Re_fresh:")); - gtk_misc_set_alignment (GTK_MISC (w1), 0.0, 0.5); - gtk_box_pack_start ((GtkBox *) box2, w1, FALSE, TRUE, 2); - - w2 = gtk_combo_box_text_new (); - /* Translators: This is one setting for when to refresh a memo/calendar/tasks list */ - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (w2), _("On open")); - /* Translators: This is one setting for when to refresh a memo/calendar/tasks list */ - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (w2), _("On file change")); - /* Translators: This is one setting for when to refresh a memo/calendar/tasks list */ - gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (w2), _("Periodically")); - gtk_label_set_mnemonic_widget (GTK_LABEL (w1), w2); - gtk_box_pack_start ((GtkBox *) box2, w2, FALSE, TRUE, 2); - - value = e_source_get_property (source, "refresh-type"); - gtk_combo_box_set_active ( - (GtkComboBox *) w2, - (value && *value && !value[1] && value[0] >= '0' && - value[0] <= '2') ? value[0] - '0' : 0); - - w1 = w2; - w2 = e_plugin_util_add_refresh (NULL, NULL, source, "refresh"); - gtk_box_pack_start (GTK_BOX (box2), w2, FALSE, TRUE, 0); - - g_object_set_data (G_OBJECT (w1), "refresh-hbox", w2); - - g_signal_connect ( - w1, "changed", - G_CALLBACK (refresh_type_changed), source); - - w2 = e_plugin_util_add_check ( - NULL, _("Force read _only"), source, - "custom-file-readonly", "1", NULL); - gtk_box_pack_start ((GtkBox *) box1, w2, TRUE, TRUE, 2); - - gtk_widget_show_all (mainbox); - - /* w1 is a refresh-type combobox, and it hides widgets, - * thus should be called after show_all call */ - refresh_type_changed (GTK_COMBO_BOX (w1), source); - - return mainbox; -} |