diff options
422 files changed, 11824 insertions, 7543 deletions
diff --git a/addressbook/gui/contact-editor/contact-editor.ui b/addressbook/gui/contact-editor/contact-editor.ui index 964ce434c2..51fc9c9e29 100644 --- a/addressbook/gui/contact-editor/contact-editor.ui +++ b/addressbook/gui/contact-editor/contact-editor.ui @@ -78,6 +78,7 @@ <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> + <property name="orientation">vertical</property> <child internal-child="action_area"> <object class="GtkHButtonBox" id="dialog-action_area1"> <property name="visible">True</property> @@ -135,11 +136,24 @@ <property name="scrollable">False</property> <property name="enable_popup">False</property> <child> + + <object class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">never</property> + <property name="vscrollbar_policy">automatic</property> + <child> + <object class="GtkViewport" id="viewport1"> + <property name="visible">True</property> + <property name="resize_mode">queue</property> + + <child> <object class="GtkVBox" id="vbox33"> <property name="border_width">12</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">1</property> + <property name="orientation">vertical</property> <child> <object class="GtkHBox" id="hbox55"> <property name="visible">True</property> @@ -417,6 +431,7 @@ <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">10</property> + <property name="orientation">vertical</property> <child> <object class="GtkFrame" id="frame65"> <property name="visible">True</property> @@ -424,7 +439,7 @@ <property name="label_yalign">0.5</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> - <object class="GtkTable" id="table85"> + <object class="GtkTable" id="email-table"> <property name="border_width">12</property> <property name="visible">True</property> <property name="n_rows">3</property> @@ -620,29 +635,72 @@ </object> </child> <child type="label"> - <object class="GtkLabel" id="label400"> - <property name="visible">True</property> - <property name="label" translatable="yes">Email</property> - <property name="use_underline">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - <attributes> - <attribute name="weight" value="bold"/> - </attributes> - </object> - </child> + <object class="GtkHBox" id="hbox561"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">4</property> + <child> + <object class="GtkLabel" id="label400"> + <property name="visible">True</property> + <property name="label" translatable="yes">Email</property> + <property name="use_underline">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + <attributes> + <attribute name="weight" value="bold"/> + </attributes> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkButton" id="button-mail-expand"> + <property name="width_request">20</property> + <property name="height_request">20</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + <child> + <object class="GtkArrow" id="arrow-mail-expand"> + <property name="visible">True</property> + <property name="arrow_type">GTK_ARROW_RIGHT</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </object> + </child> + <child internal-child="accessible"> + <object class="AtkObject" id="a11y-button-mail-expand1"> + <property name="AtkObject::accessible_name" translatable="yes">Telephone</property> + </object> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> </object> <packing> - <property name="padding">0</property> + <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> @@ -652,6 +710,7 @@ <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> + <property name="orientation">vertical</property> <child> <object class="GtkFrame" id="frame64"> <property name="visible">True</property> @@ -664,6 +723,7 @@ <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">6</property> + <property name="orientation">vertical</property> <child> <object class="GtkTable" id="table84"> <property name="visible">True</property> @@ -1080,7 +1140,7 @@ </packing> </child> <child> - <object class="GtkEntry" id="entry-im-name-2"> + <object class="GtkEntry" id="entry-im-name-3"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1099,7 +1159,7 @@ </packing> </child> <child> - <object class="GtkEntry" id="entry-im-name-3"> + <object class="GtkEntry" id="entry-im-name-2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="editable">True</property> @@ -1152,7 +1212,7 @@ </packing> </child> <child> - <object class="GtkComboBox" id="combobox-im-service-2"> + <object class="GtkComboBox" id="combobox-im-service-3"> <property name="visible">True</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> @@ -1167,7 +1227,7 @@ </packing> </child> <child> - <object class="GtkComboBox" id="combobox-im-service-3"> + <object class="GtkComboBox" id="combobox-im-service-2"> <property name="visible">True</property> <property name="add_tearoffs">False</property> <property name="focus_on_click">True</property> @@ -1234,6 +1294,12 @@ </packing> </child> </object> + + </child> + </object> + </child> + + </object> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> @@ -1258,12 +1324,24 @@ <property name="angle">0</property> </object> </child> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow-size-leader"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">never</property> + <property name="vscrollbar_policy">automatic</property> + <child> + <object class="GtkViewport" id="viewport2"> + <property name="visible">True</property> + <property name="resize_mode">queue</property> + <child> - <object class="GtkVBox" id="vbox35"> + <object class="GtkVBox" id="vbox-size-leader"> <property name="border_width">12</property> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">12</property> + <property name="orientation">vertical</property> <child> <object class="GtkFrame" id="frame67"> <property name="visible">True</property> @@ -1508,6 +1586,13 @@ </object> </child> <child type="label"> + <object class="GtkHBox" id="hbox5617"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">4</property> + <child> + + <object class="GtkLabel" id="label410"> <property name="visible">True</property> <property name="label" translatable="yes">Web Addresses</property> @@ -1527,7 +1612,40 @@ <attribute name="weight" value="bold"/> </attributes> </object> - </child> + </child> + <child> + <object class="GtkButton" id="button-web-expand"> + <property name="width_request">20</property> + <property name="height_request">20</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NONE</property> + <property name="focus_on_click">True</property> + <child> + <object class="GtkArrow" id="arrow-web-expand"> + <property name="visible">True</property> + <property name="arrow_type">GTK_ARROW_RIGHT</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </object> + </child> + <child internal-child="accessible"> + <object class="AtkObject" id="a11y-button-web-expand1"> + <property name="AtkObject::accessible_name" translatable="yes">Web addresses</property> + </object> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> </object> <packing> <property name="padding">0</property> @@ -1881,10 +1999,9 @@ </packing> </child> <child> - <object class="GtkFrame" id="frame69"> + <object class="GtkExpander" id="expander-personal-misc"> <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> + <property name="can_focus">True</property> <property name="shadow_type">GTK_SHADOW_NONE</property> <child> <object class="GtkTable" id="table89"> @@ -2126,11 +2243,18 @@ </packing> </child> </object> + + </child> + </object> + </child> + + </object> <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> </packing> </child> + <child type="tab"> <object class="GtkLabel" id="label422"> <property name="visible">True</property> @@ -2151,10 +2275,24 @@ </object> </child> <child> + + <object class="GtkScrolledWindow" id="scrolledwindow3"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">never</property> + <property name="vscrollbar_policy">automatic</property> + <child> + <object class="GtkViewport" id="viewport3"> + <property name="visible">True</property> + <property name="resize_mode">queue</property> + + <child> + <object class="GtkVBox" id="vbox39"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> + <property name="orientation">vertical</property> <child> <object class="GtkFrame" id="frame72"> <property name="border_width">6</property> @@ -2910,12 +3048,10 @@ </packing> </child> <child> - <object class="GtkFrame" id="frame78"> + <object class="GtkExpander" id="expander-address-other"> <property name="border_width">6</property> <property name="visible">True</property> - <property name="label_xalign">0</property> - <property name="label_yalign">0.5</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> + <property name="can_focus">True</property> <child> <object class="GtkAlignment" id="alignment7"> <property name="border_width">6</property> @@ -3287,6 +3423,13 @@ </packing> </child> </object> + + </child> + </object> + </child> + + </object> + <packing> <property name="tab_expand">False</property> <property name="tab_fill">True</property> @@ -3316,6 +3459,7 @@ <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> + <property name="orientation">vertical</property> <child> <object class="GtkFrame" id="frame79"> <property name="border_width">6</property> diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 2807b9e149..f8cae86762 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -742,15 +742,6 @@ init_email_record_location (EContactEditor *editor, gint record) } static void -init_email (EContactEditor *editor) -{ - gint i; - - for (i = 1; i <= EMAIL_SLOTS; i++) - init_email_record_location (editor, i); -} - -static void fill_in_email_record (EContactEditor *editor, gint record, const gchar *address, gint location) { GtkWidget *location_combo_box; @@ -1144,24 +1135,95 @@ set_attributes_named (EVCard *vcard, const gchar *attr_name, GList *attr_list) } static void -expand_phone (EContactEditor *editor, gboolean expanded) +set_arrow_image (EContactEditor *editor, + const char *arrow_widget, + gboolean expanded) { - GtkWidget *phone_ext_table; - GtkWidget *phone_ext_arrow; + GtkWidget *arrow; - phone_ext_table = e_builder_get_widget (editor->builder, "table-phone-extended"); - phone_ext_arrow = e_builder_get_widget (editor->builder, "arrow-phone-expand"); + arrow = e_builder_get_widget (editor->builder, arrow_widget); + if (expanded) + gtk_arrow_set (GTK_ARROW (arrow), GTK_ARROW_DOWN, GTK_SHADOW_NONE); + else + gtk_arrow_set (GTK_ARROW (arrow), GTK_ARROW_RIGHT, GTK_SHADOW_NONE); +} - if (expanded) { - gtk_arrow_set (GTK_ARROW (phone_ext_arrow), GTK_ARROW_DOWN, GTK_SHADOW_NONE); - gtk_widget_show (phone_ext_table); - } else { - gtk_arrow_set (GTK_ARROW (phone_ext_arrow), GTK_ARROW_RIGHT, GTK_SHADOW_NONE); - gtk_widget_hide (phone_ext_table); +static void +expand_widget_list (EContactEditor *editor, + const char **widget_names, + gboolean expanded) +{ + int i; + for (i = 0; widget_names[i]; i++) + gtk_widget_set_visible ( + e_builder_get_widget (editor->builder, widget_names[i]), + expanded); +} + +static void +expand_web (EContactEditor *editor, gboolean expanded) +{ + const char *names[] = { + "label-videourl", "label-fburl", + "entry-videourl", "entry-fburl", + NULL + }; + set_arrow_image (editor, "arrow-phone-expand", expanded); + expand_widget_list (editor, names, expanded); +} + +static void +expand_phone (EContactEditor *editor, gboolean expanded) +{ + const char *names[] = { + "entry-phone-2", "combobox-phone-2", + "entry-phone-4", "combobox-phone-4", + "table-phone-extended", NULL + }; + set_arrow_image (editor, "arrow-phone-expand", expanded); + expand_widget_list (editor, names, expanded); +} + +static void +expand_mail (EContactEditor *editor, gboolean expanded) +{ + GtkTable *table; + GtkWidget *check; + const char *names[] = { + "entry-email-2", "combobox-email-2", + "entry-email-3", "combobox-email-3", + "entry-email-4", "combobox-email-4", + NULL + }; + set_arrow_image (editor, "arrow-mail-expand", expanded); + expand_widget_list (editor, names, expanded); + + /* move 'use html mail' into position */ + check = e_builder_get_widget (editor->builder, "checkbutton-htmlmail"); + table = GTK_TABLE (e_builder_get_widget (editor->builder, "email-table")); + if (check != NULL && table != NULL) { + g_object_ref (G_OBJECT (check)); + gtk_container_remove (GTK_CONTAINER (check->parent), check); + if (expanded) + gtk_table_attach_defaults (table, check, 0, 4, 2, 3); + else + gtk_table_attach_defaults (table, check, 2, 4, 0, 1); + g_object_unref (G_OBJECT (check)); } } static void +init_email (EContactEditor *editor) +{ + gint i; + + for (i = 1; i <= EMAIL_SLOTS; i++) + init_email_record_location (editor, i); + + expand_mail (editor, !editor->compress_ui); +} + +static void fill_in_phone_record (EContactEditor *editor, gint record, const gchar *phone, gint phone_type) { GtkWidget *phone_type_combo_box; @@ -1458,6 +1520,11 @@ init_im_record_service (EContactEditor *editor, gint record) service_combo_box = e_builder_get_widget (editor->builder, widget_name); g_free (widget_name); + if (editor->compress_ui && record > 2) { + gtk_widget_hide (name_entry); + gtk_widget_hide (service_combo_box); + } + init_item_sensitiveable_combo_box (GTK_COMBO_BOX (service_combo_box)); store = GTK_LIST_STORE (gtk_combo_box_get_model (GTK_COMBO_BOX (service_combo_box))); @@ -1739,6 +1806,17 @@ sensitize_im (EContactEditor *editor) } static void +init_personal (EContactEditor *editor) +{ + gtk_expander_set_expanded ( + GTK_EXPANDER (e_builder_get_widget (editor->builder, + "expander-personal-misc")), + !editor->compress_ui); + + expand_web (editor, !editor->compress_ui); +} + +static void init_address_textview (EContactEditor *editor, gint record) { gchar *textview_name; @@ -1785,6 +1863,11 @@ init_address (EContactEditor *editor) for (i = 0; i < ADDRESS_SLOTS; i++) init_address_record (editor, i); + + gtk_expander_set_expanded ( + GTK_EXPANDER (e_builder_get_widget (editor->builder, + "expander-address-other")), + !editor->compress_ui); } static void @@ -2586,11 +2669,22 @@ sensitize_all (EContactEditor *editor) static void init_all (EContactEditor *editor) { - init_simple (editor); - init_email (editor); - init_phone (editor); - init_im (editor); - init_address (editor); + GtkRequisition tab_req; + + init_simple (editor); + init_email (editor); + init_phone (editor); + init_im (editor); + init_personal (editor); + init_address (editor); + + /* with so many scrolled windows, we need to + do some manual sizing */ + gtk_widget_size_request ( + e_builder_get_widget (editor->builder, "vbox-size-leader"), &tab_req); + gtk_widget_set_size_request ( + e_builder_get_widget (editor->builder, "scrolledwindow-size-leader"), + tab_req.width, tab_req.height + 8); } static void @@ -3372,15 +3466,41 @@ setup_tab_order(GtkBuilder *builder) } static void +expand_web_toggle (EContactEditor *ce) +{ + GtkWidget *widget; + + widget = e_builder_get_widget (ce->builder, "label-videourl"); +#if GTK_CHECK_VERSION(2,19,7) + expand_web (ce, !gtk_widget_get_visible (widget)); +#else + expand_web (ce, !GTK_WIDGET_VISIBLE (widget)); +#endif +} + +static void expand_phone_toggle (EContactEditor *ce) { GtkWidget *phone_ext_table; phone_ext_table = e_builder_get_widget (ce->builder, "table-phone-extended"); #if GTK_CHECK_VERSION(2,19,7) - expand_phone (ce, gtk_widget_get_visible (phone_ext_table) ? FALSE : TRUE); + expand_phone (ce, !gtk_widget_get_visible (phone_ext_table)); +#else + expand_phone (ce, !GTK_WIDGET_VISIBLE (phone_ext_table)); +#endif +} + +static void +expand_mail_toggle (EContactEditor *ce) +{ + GtkWidget *mail; + + mail = e_builder_get_widget (ce->builder, "entry-email-4"); +#if GTK_CHECK_VERSION(2,19,7) + expand_mail (ce, !gtk_widget_get_visible (mail)); #else - expand_phone (ce, GTK_WIDGET_VISIBLE (phone_ext_table) ? FALSE : TRUE); + expand_mail (ce, !GTK_WIDGET_VISIBLE (mail)); #endif } @@ -3402,6 +3522,7 @@ e_contact_editor_init (EContactEditor *e_contact_editor) e_contact_editor->target_editable = TRUE; e_contact_editor->fullname_dialog = NULL; e_contact_editor->categories_dialog = NULL; + e_contact_editor->compress_ui = e_shell_get_express_mode (e_shell_get_default ()); e_contact_editor->load_source_id = 0; e_contact_editor->load_book = NULL; @@ -3441,8 +3562,12 @@ e_contact_editor_init (EContactEditor *e_contact_editor) g_signal_connect (widget, "clicked", G_CALLBACK (file_cancel_cb), e_contact_editor); widget = e_builder_get_widget (e_contact_editor->builder, "button-help"); g_signal_connect (widget, "clicked", G_CALLBACK (show_help_cb), e_contact_editor); + widget = e_builder_get_widget (e_contact_editor->builder, "button-web-expand"); + g_signal_connect_swapped (widget, "clicked", G_CALLBACK (expand_web_toggle), e_contact_editor); widget = e_builder_get_widget (e_contact_editor->builder, "button-phone-expand"); g_signal_connect_swapped (widget, "clicked", G_CALLBACK (expand_phone_toggle), e_contact_editor); + widget = e_builder_get_widget (e_contact_editor->builder, "button-mail-expand"); + g_signal_connect_swapped (widget, "clicked", G_CALLBACK (expand_mail_toggle), e_contact_editor); widget = e_builder_get_widget (e_contact_editor->builder, "entry-fullname"); if (widget) diff --git a/addressbook/gui/contact-editor/e-contact-editor.h b/addressbook/gui/contact-editor/e-contact-editor.h index 5079f1a0ee..b41324c270 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.h +++ b/addressbook/gui/contact-editor/e-contact-editor.h @@ -84,6 +84,9 @@ struct _EContactEditor /* Whether an image is changed */ guint image_changed : 1; + /* Whether to try to reduce space used */ + guint compress_ui : 1; + EList *writable_fields; EList *required_fields; diff --git a/calendar/gui/alarm-notify/alarm-queue.c b/calendar/gui/alarm-notify/alarm-queue.c index 9662c6231e..ae6eb3e172 100644 --- a/calendar/gui/alarm-notify/alarm-queue.c +++ b/calendar/gui/alarm-notify/alarm-queue.c @@ -183,6 +183,25 @@ message_push (Message *msg) msg->func (msg); } +/* + * use a static ring-buffer so we can call this twice + * in a printf without getting nonsense results. + */ +static const char * +e_ctime (const time_t *timep) +{ + static char *buffer[4] = { 0, }; + static int next = 0; + const char *ret; + + g_free (buffer[next]); + ret = buffer[next++] = g_strdup (ctime (timep)); + if (next >= G_N_ELEMENTS (buffer)) + next = 0; + + return ret; +} + /* Queues an alarm trigger for midnight so that we can load the next day's worth * of alarms. */ @@ -199,7 +218,7 @@ queue_midnight_refresh (void) zone = config_data_get_timezone (); midnight = time_day_end_with_zone (time (NULL), zone); - d(printf("%s:%d (queue_midnight_refresh) - Refresh at %s \n",__FILE__, __LINE__, ctime(&midnight))); + d(printf("%s:%d (queue_midnight_refresh) - Refresh at %s \n",__FILE__, __LINE__, e_ctime(&midnight))); midnight_refresh_id = alarm_add (midnight, midnight_refresh_cb, NULL, NULL); if (!midnight_refresh_id) { @@ -471,7 +490,7 @@ add_component_alarms (ClientAlarms *ca, ECalComponentAlarms *alarms) alarm_id = alarm_add (instance->trigger, alarm_trigger_cb, cqa, NULL); if (!alarm_id) { - d(printf("%s:%d (add_component_alarms) - Could not schedule a trigger for %s. Discarding \n",__FILE__, __LINE__, ctime(&(instance->trigger)))); + d(printf("%s:%d (add_component_alarms) - Could not schedule a trigger for %s. Discarding \n",__FILE__, __LINE__, e_ctime(&(instance->trigger)))); continue; } @@ -482,7 +501,7 @@ add_component_alarms (ClientAlarms *ca, ECalComponentAlarms *alarms) qa->snooze = FALSE; cqa->queued_alarms = g_slist_prepend (cqa->queued_alarms, qa); - d(printf("%s:%d (add_component_alarms) - Adding alarm %p %p at %s %s\n",__FILE__, __LINE__, qa, alarm_id, ctime (&(instance->trigger)), ctime(&tnow))); + d(printf("%s:%d (add_component_alarms) - Adding alarm %p %p at %s %s\n",__FILE__, __LINE__, qa, alarm_id, ctime (&(instance->trigger)), e_ctime(&tnow))); } id = e_cal_component_get_id (alarms->comp); @@ -571,7 +590,8 @@ load_alarms_for_today (ClientAlarms *ca) from = MAX (config_data_get_last_notification_time (ca->client) + 1, day_start); day_end = time_day_end_with_zone (now, zone); - d(printf("%s:%d (load_alarms_for_today) - From %s to %s\n",__FILE__, __LINE__, ctime (&from), ctime(&day_end))); + d(printf("%s:%d (load_alarms_for_today) - From %s to %s\n",__FILE__, __LINE__, + g_strdup (ctime (&from)), g_strdup (e_ctime(&day_end)))); load_alarms (ca, from, day_end); } @@ -707,7 +727,7 @@ query_objects_changed_async (struct _query_msg *msg) day_end = time_day_end_with_zone (time (NULL), zone); - d(printf("%s:%d (query_objects_changed_async) - Querying for object between %s to %s\n",__FILE__, __LINE__, ctime(&from), ctime(&day_end))); + d(printf("%s:%d (query_objects_changed_async) - Querying for object between %s to %s\n",__FILE__, __LINE__, e_ctime(&from), e_ctime(&day_end))); for (l = objects; l != NULL; l = l->next) { ECalComponentId *id; @@ -771,7 +791,7 @@ query_objects_changed_async (struct _query_msg *msg) alarm_id = alarm_add (instance->trigger, alarm_trigger_cb, cqa, NULL); if (!alarm_id) { - d(printf("%s:%d (query_objects_changed_async) -Unable to schedule trigger for %s \n",__FILE__, __LINE__, ctime(&(instance->trigger)))); + d(printf("%s:%d (query_objects_changed_async) -Unable to schedule trigger for %s \n",__FILE__, __LINE__, e_ctime(&(instance->trigger)))); continue; } @@ -869,14 +889,14 @@ create_snooze (CompQueuedAlarms *cqa, gpointer alarm_id, gint snooze_mins) new_id = alarm_add (t, alarm_trigger_cb, cqa, NULL); if (!new_id) { - d(printf("%s:%d (create_snooze) -Unable to schedule trigger for %s \n",__FILE__, __LINE__, ctime(&t))); + d(printf("%s:%d (create_snooze) -Unable to schedule trigger for %s \n",__FILE__, __LINE__, e_ctime(&t))); return; } orig_qa->instance->trigger = t; orig_qa->alarm_id = new_id; orig_qa->snooze = TRUE; - d(printf("%s:%d (create_snooze) - Adding a alarm at %s\n",__FILE__, __LINE__, ctime(&t))); + d(printf("%s:%d (create_snooze) - Adding a alarm at %s\n",__FILE__, __LINE__, e_ctime(&t))); } /* Launches a component editor for a component */ @@ -1189,7 +1209,7 @@ notify_dialog_cb (AlarmNotifyResult result, gint snooze_mins, gpointer data) GtkTreeIter iter; GtkTreeModel *model = NULL; - /* We can` also use tray_data->iter */ + /* We can also use tray_data->iter */ if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_list_store_remove (GTK_LIST_STORE (model), &iter); if (!gtk_tree_model_get_iter_first (model, &iter)) { @@ -1833,7 +1853,7 @@ alarm_queue_init (gpointer data) if (config_data_get_last_notification_time (NULL) == -1) { time_t tmval = time (NULL); - d(printf("%s:%d (alarm_queue_init) - Setting last notification time to %s\n",__FILE__, __LINE__, ctime(&tmval))); + d(printf("%s:%d (alarm_queue_init) - Setting last notification time to %s\n",__FILE__, __LINE__, e_ctime(&tmval))); config_data_set_last_notification_time (NULL, tmval); } @@ -2139,7 +2159,7 @@ update_cqa (CompQueuedAlarms *cqa, ECalComponent *newcomp) from = time_day_begin_with_zone (time (NULL), zone); to = time_day_end_with_zone (time (NULL), zone); - d(printf("%s:%d (update_cqa) - Generating alarms between %s and %s\n",__FILE__, __LINE__, ctime(&from), ctime(&to))); + d(printf("%s:%d (update_cqa) - Generating alarms between %s and %s\n",__FILE__, __LINE__, e_ctime(&from), e_ctime(&to))); alarms = e_cal_util_generate_alarms_for_comp (newcomp, from, to, omit, e_cal_resolve_tzid_cb, cqa->parent_client->client, zone); diff --git a/calendar/gui/alarm-notify/alarm.c b/calendar/gui/alarm-notify/alarm.c index 14f66a68fb..a4be16bd69 100644 --- a/calendar/gui/alarm-notify/alarm.c +++ b/calendar/gui/alarm-notify/alarm.c @@ -152,7 +152,8 @@ setup_timeout (void) now = time (NULL); /* Add the time out */ - d(g_message ("Setting timeout for %d %lu %lu", diff, ar->trigger, now)); + d(g_message ("Setting timeout for %d.%2d (from now) %lu %lu", + diff / 60, diff % 60, ar->trigger, now)); d(g_message (" %s", ctime (&ar->trigger))); d(g_message (" %s", ctime (&now))); timeout_id = g_timeout_add_seconds (diff, alarm_ready_cb, NULL); diff --git a/calendar/gui/apps_evolution_calendar.schemas.in b/calendar/gui/apps_evolution_calendar.schemas.in index 38d5525b24..ea33ddc1ca 100644 --- a/calendar/gui/apps_evolution_calendar.schemas.in +++ b/calendar/gui/apps_evolution_calendar.schemas.in @@ -284,7 +284,7 @@ <applyto>/apps/evolution/calendar/display/date_navigator_pane_position</applyto> <owner>evolution-calendar</owner> <type>int</type> - <default>150</default> + <default>200</default> <locale name="C"> <short>Month view vertical pane position </short> <long>Position of the vertical pane, between the calendar lists and the date navigator calendar.</long> @@ -666,14 +666,14 @@ </schema> <schema> - <key>/schemas/apps/evolution/calendar/display/day_view_show_week_number</key> - <applyto>/apps/evolution/calendar/display/day_view_show_week_number</applyto> + <key>/schemas/apps/evolution/calendar/display/show_week_numbers</key> + <applyto>/apps/evolution/calendar/display/show_week_numbers</applyto> <owner>evolution-calendar</owner> <type>bool</type> <default>false</default> <locale name="C"> - <short>Show week number in Day and Work Week View</short> - <long>Whether to show week number in the Day and Work Week View.</long> + <short>Show week numbers in Day View, Work Week View, and Date Navigator</short> + <long>Whether to show week numbers in various places in the Calendar.</long> </locale> </schema> @@ -682,27 +682,13 @@ <applyto>/apps/evolution/calendar/display/month_scroll_by_week</applyto> <owner>evolution-calendar</owner> <type>bool</type> - <default>false</default> + <default>true</default> <locale name="C"> <short>Scroll Month View by a week</short> <long>Whether to scroll a Month View by a week, not by a month.</long> </locale> </schema> - <!-- Date navigator --> - - <schema> - <key>/schemas/apps/evolution/calendar/date_navigator/show_week_numbers</key> - <applyto>/apps/evolution/calendar/date_navigator/show_week_numbers</applyto> - <owner>evolution-calendar</owner> - <type>bool</type> - <default>false</default> - <locale name="C"> - <short>Show week numbers in date navigator</short> - <long>Whether to show week numbers in the date navigator.</long> - </locale> - </schema> - <!-- Alarm notification --> <schema> diff --git a/calendar/gui/calendar-config-keys.h b/calendar/gui/calendar-config-keys.h index 9afa8dc7e4..568e211acf 100644 --- a/calendar/gui/calendar-config-keys.h +++ b/calendar/gui/calendar-config-keys.h @@ -53,14 +53,11 @@ G_BEGIN_DECLS #define CALENDAR_CONFIG_COMPRESS_WEEKEND CALENDAR_CONFIG_PREFIX "/display/compress_weekend" #define CALENDAR_CONFIG_SHOW_EVENT_END CALENDAR_CONFIG_PREFIX "/display/show_event_end" #define CALENDAR_CONFIG_WORKING_DAYS CALENDAR_CONFIG_PREFIX "/display/working_days" -#define CALENDAR_CONFIG_DV_WEEK_NUMBER CALENDAR_CONFIG_PREFIX "/display/day_view_show_week_number" +#define CALENDAR_CONFIG_SHOW_WEEK_NUMBERS CALENDAR_CONFIG_PREFIX "/display/show_week_numbers" #define CALENDAR_CONFIG_DAY_SECOND_ZONE CALENDAR_CONFIG_PREFIX "/display/day_second_zone" #define CALENDAR_CONFIG_DAY_SECOND_ZONES_LIST CALENDAR_CONFIG_PREFIX "/display/day_second_zones" #define CALENDAR_CONFIG_DAY_SECOND_ZONES_MAX CALENDAR_CONFIG_PREFIX "/display/day_second_zones_max" -/* Date navigator settings */ -#define CALENDAR_CONFIG_DN_SHOW_WEEK_NUMBERS CALENDAR_CONFIG_PREFIX "/date_navigator/show_week_numbers" - /* Task display settings */ #define CALENDAR_CONFIG_TASKS_SELECTED_TASKS CALENDAR_CONFIG_PREFIX "/tasks/selected_tasks" #define CALENDAR_CONFIG_PRIMARY_TASKS CALENDAR_CONFIG_PREFIX "/tasks/primary_tasks" diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c index 35b946137f..e925838e58 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.c +++ b/calendar/gui/dialogs/cal-prefs-dialog.c @@ -36,6 +36,7 @@ #include "e-util/e-datetime-format.h" #include "e-util/e-dialog-widgets.h" #include "e-util/e-util-private.h" +#include "shell/e-shell-utils.h" #include <glib/gi18n.h> #include <string.h> @@ -739,16 +740,11 @@ calendar_prefs_dialog_construct (CalendarPrefsDialog *prefs, shell_settings, "cal-compress-weekend", widget, "active"); - widget = e_builder_get_widget (prefs->builder, "dnav_show_week_no"); + widget = e_builder_get_widget (prefs->builder, "show_week_numbers"); e_mutual_binding_new ( shell_settings, "cal-show-week-numbers", widget, "active"); - widget = e_builder_get_widget (prefs->builder, "dview_show_week_no"); - e_mutual_binding_new ( - shell_settings, "cal-day-view-show-week-numbers", - widget, "active"); - prefs->month_scroll_by_week = e_builder_get_widget (prefs->builder, "month_scroll_by_week"); widget = e_builder_get_widget (prefs->builder, "tasks_due_today_color"); @@ -780,16 +776,42 @@ calendar_prefs_dialog_construct (CalendarPrefsDialog *prefs, e_mutual_binding_new ( shell_settings, "cal-free-busy-template", widget, "text"); - target = e_cal_config_target_new_prefs (ec, prefs->gconf); - e_config_set_target ((EConfig *)ec, (EConfigTarget *) target); - toplevel = e_config_create_widget ((EConfig *)ec); - gtk_container_add (GTK_CONTAINER (prefs), toplevel); /* date/time format */ table = e_builder_get_widget (prefs->builder, "datetime_format_table"); e_datetime_format_add_setup_widget (table, 0, "calendar", "table", DTFormatKindDateTime, _("Time and date:")); e_datetime_format_add_setup_widget (table, 1, "calendar", "table", DTFormatKindDate, _("Date only:")); + /* Hide senseless preferences when running in Express mode */ + e_shell_hide_widgets_for_express_mode (shell, prefs->builder, + "label_second_zone", + "hbox_second_zone", + "timezone", + "timezone_label", + "hbox_use_system_timezone", + "hbox_time_divisions", + "show_end_times", + "month_scroll_by_week", + NULL); + + /* HACK: GTK+ 2.18 and 2.20 has a GtkTable which includes row/column spacing even for empty rows/columns. + * When Evo runs in Express mode, we hide all the rows in the Time section of the calendar's General + * preferences page. However, due to that behavior in GTK+, we get a lot of extra spacing in that + * section. Since we know that in Express mode we only leave a single row visible, we'll make the + * table's row spacing equal to 0 in that case. + */ + if (e_shell_get_express_mode (shell)) { + widget = e_builder_get_widget (prefs->builder, "time"); + gtk_table_set_row_spacings (GTK_TABLE (widget), 0); + } + + /* Hook up and add the toplevel widget */ + + target = e_cal_config_target_new_prefs (ec, prefs->gconf); + e_config_set_target ((EConfig *)ec, (EConfigTarget *) target); + toplevel = e_config_create_widget ((EConfig *)ec); + gtk_container_add (GTK_CONTAINER (prefs), toplevel); + show_config (prefs); /* FIXME: weakref? */ setup_changes (prefs); diff --git a/calendar/gui/dialogs/cal-prefs-dialog.h b/calendar/gui/dialogs/cal-prefs-dialog.h index 14011d8403..1ae585a0e8 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.h +++ b/calendar/gui/dialogs/cal-prefs-dialog.h @@ -79,8 +79,6 @@ struct _CalendarPrefsDialog { GtkWidget *time_divisions; GtkWidget *show_end_times; GtkWidget *compress_weekend; - GtkWidget *dnav_show_week_no; - GtkWidget *dview_show_week_no; GtkWidget *month_scroll_by_week; GtkWidget *tasks_hide_completed; GtkWidget *tasks_hide_completed_interval; diff --git a/calendar/gui/dialogs/cal-prefs-dialog.ui b/calendar/gui/dialogs/cal-prefs-dialog.ui index d3478a2590..b94803fc43 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.ui +++ b/calendar/gui/dialogs/cal-prefs-dialog.ui @@ -1,31 +1,27 @@ <?xml version="1.0"?> <interface> + <requires lib="gtk+" version="2.16"/> + <!-- interface-requires evolution 0.0 --> + <!-- interface-naming-policy toplevel-contextual --> <object class="GtkAdjustment" id="adjustment1"> <property name="upper">9999</property> - <property name="lower">0</property> - <property name="page_increment">10</property> <property name="step_increment">1</property> - <property name="page_size">0</property> - <property name="value">0</property> + <property name="page_increment">10</property> </object> <object class="GtkAdjustment" id="adjustment2"> <property name="upper">9999</property> - <property name="lower">0</property> - <property name="page_increment">10</property> <property name="step_increment">1</property> - <property name="page_size">0</property> - <property name="value">0</property> + <property name="page_increment">10</property> </object> <object class="GtkAdjustment" id="adjustment3"> + <property name="value">1</property> <property name="upper">9999</property> - <property name="lower">0</property> - <property name="page_increment">10</property> <property name="step_increment">1</property> - <property name="page_size">0</property> - <property name="value">1</property> + <property name="page_increment">10</property> </object> <object class="GtkListStore" id="model1"> <columns> + <!-- column-name gchararray --> <column type="gchararray"/> </columns> <data> @@ -54,6 +50,7 @@ </object> <object class="GtkListStore" id="model2"> <columns> + <!-- column-name gchararray --> <column type="gchararray"/> </columns> <data> @@ -70,6 +67,7 @@ </object> <object class="GtkListStore" id="model3"> <columns> + <!-- column-name gchararray --> <column type="gchararray"/> </columns> <data> @@ -86,6 +84,7 @@ </object> <object class="GtkListStore" id="model4"> <columns> + <!-- column-name gchararray --> <column type="gchararray"/> </columns> <data> @@ -108,6 +107,7 @@ </object> <object class="GtkListStore" id="model5"> <columns> + <!-- column-name gchararray --> <column type="gchararray"/> </columns> <data> @@ -122,8 +122,6 @@ </row> </data> </object> - <!-- interface-requires gtk+ 2.16 --> - <!-- interface-naming-policy toplevel-contextual --> <object class="GtkNotebook" id="toplevel-notebook"> <property name="visible">True</property> <property name="can_focus">True</property> @@ -164,12 +162,12 @@ <child> <object class="GtkTable" id="time"> <property name="visible">True</property> - <property name="n_rows">5</property> + <property name="n_rows">4</property> <property name="n_columns">2</property> <property name="column_spacing">6</property> <property name="row_spacing">6</property> <child> - <object class="GtkLabel" id="label63"> + <object class="GtkLabel" id="label_second_zone"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">Se_cond zone:</property> @@ -177,14 +175,14 @@ <property name="mnemonic_widget">day_second_zone</property> </object> <packing> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"/> + <property name="y_options"></property> </packing> </child> <child> - <object class="GtkHBox" id="hbox25"> + <object class="GtkHBox" id="hbox_second_zone"> <property name="visible">True</property> <child> <object class="GtkButton" id="day_second_zone"> @@ -214,32 +212,48 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">4</property> - <property name="bottom_attach">5</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> <property name="x_options">GTK_FILL</property> <property name="y_options">GTK_FILL</property> </packing> </child> <child> - <object class="GtkLabel" id="label11"> + <object class="ETimezoneEntry" id="timezone"> + <property name="visible">True</property> + <accessibility> + <relation type="labelled-by" target="timezone_label"/> + </accessibility> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="timezone_label"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">Time format:</property> + <property name="label" translatable="yes">Time _zone:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">timezone</property> </object> <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"/> + <property name="y_options"></property> </packing> </child> <child> - <object class="GtkHBox" id="hbox4"> + <object class="GtkHBox" id="hbox_use_system_timezone"> <property name="visible">True</property> - <property name="spacing">6</property> <child> - <object class="GtkRadioButton" id="use_12_hour"> - <property name="label" translatable="yes">_12 hour (AM/PM)</property> + <object class="GtkCheckButton" id="use-system-tz-check"> + <property name="label" translatable="yes">Use s_ystem time zone</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -248,19 +262,14 @@ </object> <packing> <property name="expand">False</property> - <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> - <object class="GtkRadioButton" id="use_24_hour"> - <property name="label" translatable="yes">_24 hour</property> + <object class="GtkLabel" id="system-tz-label"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <property name="group">use_12_hour</property> + <property name="xpad">5</property> + <property name="label">(system/tz)</property> </object> <packing> <property name="expand">False</property> @@ -272,62 +281,51 @@ <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="ETimezoneEntry" id="timezone"> - <property name="visible">True</property> - <accessibility> - <relation target="timezone_label" type="labelled-by"/> - </accessibility> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> - <property name="y_options">GTK_FILL</property> + <property name="x_options">GTK_FILL</property> </packing> </child> <child> - <object class="GtkLabel" id="timezone_label"> + <object class="GtkLabel" id="label_time_format"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">Time _zone:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">timezone</property> + <property name="label" translatable="yes">Time format:</property> </object> <packing> <property name="x_options">GTK_FILL</property> - <property name="y_options"/> + <property name="y_options"></property> </packing> </child> <child> - <object class="GtkHBox" id="hbox26"> + <object class="GtkHBox" id="hbox_time_format"> <property name="visible">True</property> + <property name="spacing">6</property> <child> - <object class="GtkCheckButton" id="use-system-tz-check"> - <property name="label" translatable="yes">Use s_ystem time zone</property> + <object class="GtkRadioButton" id="use_12_hour"> + <property name="label" translatable="yes">_12 hour (AM/PM)</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> + <property name="active">True</property> <property name="draw_indicator">True</property> </object> <packing> <property name="expand">False</property> + <property name="fill">False</property> <property name="position">0</property> </packing> </child> <child> - <object class="GtkLabel" id="system-tz-label"> + <object class="GtkRadioButton" id="use_24_hour"> + <property name="label" translatable="yes">_24 hour</property> <property name="visible">True</property> - <property name="xpad">5</property> - <property name="label">(system/tz)</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <property name="group">use_12_hour</property> </object> <packing> <property name="expand">False</property> @@ -340,14 +338,12 @@ <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="x_options">GTK_FILL</property> + <property name="y_options">GTK_FILL</property> </packing> </child> <child> <placeholder/> </child> - <child> - <placeholder/> - </child> </object> <packing> <property name="position">1</property> @@ -391,7 +387,7 @@ <child> <object class="GtkTable" id="workWeek"> <property name="visible">True</property> - <property name="n_rows">4</property> + <property name="n_rows">3</property> <property name="n_columns">2</property> <property name="column_spacing">6</property> <property name="row_spacing">6</property> @@ -399,13 +395,13 @@ <object class="GtkLabel" id="label12"> <property name="visible">True</property> <property name="xalign">0</property> - <property comments="A weekday like "Monday" follows" name="label" translatable="yes">Wee_k starts on:</property> + <property name="label" translatable="yes" comments="A weekday like "Monday" follows">Wee_k starts on:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">week_start_day</property> </object> <packing> <property name="x_options">GTK_FILL</property> - <property name="y_options"/> + <property name="y_options"></property> </packing> </child> <child> @@ -418,64 +414,21 @@ <property name="top_attach">1</property> <property name="bottom_attach">2</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"/> + <property name="y_options"></property> </packing> </child> <child> - <object class="GtkLabel" id="label14"> + <object class="GtkLabel" id="day_start_label"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">_Day begins:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">start_of_day</property> </object> <packing> <property name="top_attach">2</property> <property name="bottom_attach">3</property> <property name="x_options">GTK_FILL</property> - <property name="y_options"/> - </packing> - </child> - <child> - <object class="GtkLabel" id="label15"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Day _ends:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">end_of_day</property> - </object> - <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"/> - </packing> - </child> - <child> - <object class="EDateEdit" id="start_of_day"> - <property name="show-date">False</property> - <property name="visible">True</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="EDateEdit" id="end_of_day"> - <property name="show-date">False</property> - <property name="visible">True</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> + <property name="y_options"></property> </packing> </child> <child> @@ -484,17 +437,14 @@ <property name="spacing">6</property> <child> <object class="GtkCheckButton" id="mon_button"> - <property comments="Monday" name="label" translatable="yes">_Mon</property> + <property name="label" translatable="yes" comments="Monday">_Mon</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <accessibility> - - </accessibility> <child internal-child="accessible"> - <object class="AtkObject" id="a11y-mon_button1"> + <object class="AtkObject" id="mon_button-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Monday</property> </object> </child> @@ -507,17 +457,14 @@ </child> <child> <object class="GtkCheckButton" id="tue_button"> - <property comments="Tuesday" name="label" translatable="yes">_Tue</property> + <property name="label" translatable="yes" comments="Tuesday">_Tue</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <accessibility> - - </accessibility> <child internal-child="accessible"> - <object class="AtkObject" id="a11y-tue_button1"> + <object class="AtkObject" id="tue_button-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Tuesday</property> </object> </child> @@ -530,17 +477,14 @@ </child> <child> <object class="GtkCheckButton" id="wed_button"> - <property comments="Wednesday" name="label" translatable="yes">_Wed</property> + <property name="label" translatable="yes" comments="Wednesday">_Wed</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <accessibility> - - </accessibility> <child internal-child="accessible"> - <object class="AtkObject" id="a11y-wed_button1"> + <object class="AtkObject" id="wed_button-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Wednesday</property> </object> </child> @@ -553,17 +497,14 @@ </child> <child> <object class="GtkCheckButton" id="thu_button"> - <property comments="Thursday" name="label" translatable="yes">T_hu</property> + <property name="label" translatable="yes" comments="Thursday">T_hu</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <accessibility> - - </accessibility> <child internal-child="accessible"> - <object class="AtkObject" id="a11y-thu_button1"> + <object class="AtkObject" id="thu_button-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Thursday</property> </object> </child> @@ -576,17 +517,14 @@ </child> <child> <object class="GtkCheckButton" id="fri_button"> - <property comments="Friday" name="label" translatable="yes">_Fri</property> + <property name="label" translatable="yes" comments="Friday">_Fri</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <accessibility> - - </accessibility> <child internal-child="accessible"> - <object class="AtkObject" id="a11y-fri_button1"> + <object class="AtkObject" id="fri_button-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Friday</property> </object> </child> @@ -599,17 +537,14 @@ </child> <child> <object class="GtkCheckButton" id="sat_button"> - <property comments="Saturday" name="label" translatable="yes">_Sat</property> + <property name="label" translatable="yes" comments="Saturday">_Sat</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <accessibility> - - </accessibility> <child internal-child="accessible"> - <object class="AtkObject" id="a11y-sat_button1"> + <object class="AtkObject" id="sat_button-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Saturday</property> </object> </child> @@ -622,17 +557,14 @@ </child> <child> <object class="GtkCheckButton" id="sun_button"> - <property comments="Sunday" name="label" translatable="yes">S_un</property> + <property name="label" translatable="yes" comments="Sunday">S_un</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - <accessibility> - - </accessibility> <child internal-child="accessible"> - <object class="AtkObject" id="a11y-sun_button1"> + <object class="AtkObject" id="sun_button-atkobject"> <property name="AtkObject::accessible-name" translatable="yes">Sunday</property> </object> </child> @@ -671,6 +603,57 @@ <property name="y_options">GTK_FILL</property> </packing> </child> + <child> + <object class="GtkHBox" id="hbox13"> + <property name="visible">True</property> + <property name="spacing">12</property> + <child> + <object class="EDateEdit" id="start_of_day"> + <property name="visible">True</property> + <property name="show_date">False</property> + <property name="show_week_numbers">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="day_end_label"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Day _ends:</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="pack_type">end</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="EDateEdit" id="end_of_day"> + <property name="visible">True</property> + <property name="show_date">False</property> + <property name="show_week_numbers">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options">GTK_FILL</property> + </packing> + </child> </object> <packing> <property name="position">1</property> @@ -736,7 +719,7 @@ <property name="spacing">4</property> <child> <object class="GtkCheckButton" id="default_reminder"> - <property comments="This is the first half of a user preference. "Show a reminder [time-period] before every appointment"" name="label" translatable="yes">Sh_ow a reminder</property> + <property name="label" translatable="yes" comments="This is the first half of a user preference. "Show a reminder [time-period] before every appointment"">Sh_ow a reminder</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -778,7 +761,7 @@ <child> <object class="GtkLabel" id="label16"> <property name="visible">True</property> - <property comments="This is the last half of a user preference. "Show a reminder [time-period] before every appointment"" name="label" translatable="yes">before every appointment</property> + <property name="label" translatable="yes" comments="This is the last half of a user preference. "Show a reminder [time-period] before every appointment"">before every appointment</property> </object> <packing> <property name="expand">False</property> @@ -797,7 +780,7 @@ <property name="spacing">4</property> <child> <object class="GtkCheckButton" id="ba_reminder"> - <property comments="This is the first half of a user preference. "Show a reminder [time-period] before every anniversary/birthday"" name="label" translatable="yes">Show a _reminder</property> + <property name="label" translatable="yes" comments="This is the first half of a user preference. "Show a reminder [time-period] before every anniversary/birthday"">Show a _reminder</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -839,7 +822,7 @@ <child> <object class="GtkLabel" id="ba_reminder_label"> <property name="visible">True</property> - <property comments="This is the last half of a user preference. "Show a reminder [time-period] before every anniversary/birthday"" name="label" translatable="yes">before every anniversary/birthday</property> + <property name="label" translatable="yes" comments="This is the last half of a user preference. "Show a reminder [time-period] before every anniversary/birthday"">before every anniversary/birthday</property> </object> <packing> <property name="expand">False</property> @@ -913,7 +896,7 @@ <property name="visible">True</property> <property name="spacing">6</property> <child> - <object class="GtkHBox" id="hbox10"> + <object class="GtkHBox" id="hbox_time_divisions"> <property name="visible">True</property> <property name="spacing">6</property> <child> @@ -980,8 +963,8 @@ </packing> </child> <child> - <object class="GtkCheckButton" id="dnav_show_week_no"> - <property name="label" translatable="yes">Show week _numbers in date navigator</property> + <object class="GtkCheckButton" id="show_week_numbers"> + <property name="label" translatable="yes">Show week _numbers</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -995,21 +978,6 @@ </packing> </child> <child> - <object class="GtkCheckButton" id="dview_show_week_no"> - <property name="label" translatable="yes">Show week n_umber in Day and Work Week View</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">4</property> - </packing> - </child> - <child> <object class="GtkCheckButton" id="month_scroll_by_week"> <property name="label" translatable="yes">Sc_roll Month View by a week</property> <property name="visible">True</property> @@ -1021,7 +989,7 @@ <packing> <property name="expand">False</property> <property name="fill">False</property> - <property name="position">5</property> + <property name="position">4</property> </packing> </child> </object> @@ -1069,12 +1037,9 @@ <property name="visible">True</property> <property name="spacing">6</property> <child> - <object class="GtkTable" id="table2"> + <object class="GtkHBox" id="hbox14"> <property name="visible">True</property> - <property name="n_rows">2</property> - <property name="n_columns">2</property> - <property name="column_spacing">6</property> - <property name="row_spacing">6</property> + <property name="spacing">12</property> <child> <object class="GtkLabel" id="label21"> <property name="visible">True</property> @@ -1084,57 +1049,59 @@ <property name="mnemonic_widget">tasks_due_today_color</property> </object> <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options"/> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> </packing> </child> <child> - <object class="GtkLabel" id="label22"> + <object class="GtkColorButton" id="tasks_due_today_color"> <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">_Overdue tasks:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">tasks_overdue_color</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="title" translatable="yes">Pick a color</property> + <property name="color">#000000000000</property> </object> <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"/> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> </packing> </child> <child> - <object class="GtkColorButton" id="tasks_due_today_color"> + <object class="GtkLabel" id="label22"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="title" translatable="yes">Pick a color</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">_Overdue tasks:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">tasks_overdue_color</property> </object> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="x_options"/> - <property name="y_options"/> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> + <property name="position">3</property> </packing> </child> <child> <object class="GtkColorButton" id="tasks_overdue_color"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="receives_default">False</property> + <property name="receives_default">True</property> <property name="title" translatable="yes">Pick a color</property> + <property name="color">#000000000000</property> </object> <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options"/> - <property name="y_options"/> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> + <property name="position">2</property> </packing> </child> </object> <packing> + <property name="expand">False</property> + <property name="fill">False</property> <property name="position">0</property> </packing> </child> @@ -1202,81 +1169,59 @@ <child> <object class="GtkLabel" id="label65"> <property name="visible">True</property> - <property name="label" translatable="yes">Date/Time Format</property> - <property name="use_underline">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> + <property name="label" translatable="yes">Date/Time Format</property> <attributes> <attribute name="weight" value="bold"/> </attributes> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> + <property name="position">4</property> </packing> </child> <child> <object class="GtkHBox" id="hbox27"> <property name="visible">True</property> - <property name="homogeneous">False</property> <property name="spacing">12</property> <child> <object class="GtkLabel" id="label66"> <property name="visible">True</property> - <property name="label" translatable="yes"/> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> + <property name="position">0</property> </packing> </child> <child> <object class="GtkTable" id="datetime_format_table"> <property name="visible">True</property> - <property name="n_rows">1</property> <property name="n_columns">3</property> - <property name="homogeneous">False</property> - <property name="row_spacing">0</property> - <property name="column_spacing">0</property> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> </object> <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> + <property name="position">1</property> </packing> </child> </object> <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> + <property name="position">5</property> </packing> </child> </object> + <packing> + <property name="position">1</property> + </packing> </child> <child type="tab"> <object class="GtkLabel" id="label2"> @@ -1296,101 +1241,69 @@ <child> <object class="GtkLabel" id="label67"> <property name="visible">True</property> - <property name="label" translatable="yes">Alarms</property> - <property name="use_underline">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> + <property name="label" translatable="yes">Alarms</property> <attributes> <attribute name="weight" value="bold"/> </attributes> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> + <property name="position">0</property> </packing> </child> <child> <object class="GtkAlignment" id="alignment1"> <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> <property name="left_padding">10</property> - <property name="right_padding">0</property> <child> <object class="GtkCheckButton" id="notify_with_tray"> + <property name="label" translatable="yes">Display alarms in _notification area only</property> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="label" translatable="yes">Display alarms in _notification area only</property> + <property name="receives_default">False</property> <property name="use_underline">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - <property name="active">False</property> - <property name="inconsistent">False</property> <property name="draw_indicator">True</property> </object> </child> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> - <property name="fill">True</property> + <property name="position">1</property> </packing> </child> <child> <object class="GtkLabel" id="label62"> <property name="visible">True</property> - <property name="label" translatable="yes">Select the calendars for alarm notification</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> <property name="xalign">0</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> + <property name="label" translatable="yes">Select the calendars for alarm notification</property> </object> <packing> - <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> + <property name="position">2</property> </packing> </child> <child> <object class="GtkScrolledWindow" id="calendar-source-scrolled-window"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">automatic</property> - <property name="vscrollbar_policy">automatic</property> - <property name="shadow_type">in</property> - - <child><placeholder/></child> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">automatic</property> + <property name="vscrollbar_policy">automatic</property> + <property name="shadow_type">in</property> + <child> + <placeholder/> + </child> </object> <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> + <property name="position">3</property> </packing> </child> </object> + <packing> + <property name="position">2</property> + </packing> </child> <child type="tab"> <object class="GtkLabel" id="alarm-label"> @@ -1496,6 +1409,9 @@ </packing> </child> </object> + <packing> + <property name="position">3</property> + </packing> </child> <child type="tab"> <object class="GtkLabel" id="label3"> @@ -1508,4 +1424,10 @@ </packing> </child> </object> + <object class="GtkSizeGroup" id="day_begins_ends_sizegroup"> + <widgets> + <widget name="day_start_label"/> + <widget name="day_end_label"/> + </widgets> + </object> </interface> diff --git a/calendar/gui/dialogs/comp-editor-util.c b/calendar/gui/dialogs/comp-editor-util.c index 271ac5a8cc..cd16b46974 100644 --- a/calendar/gui/dialogs/comp-editor-util.c +++ b/calendar/gui/dialogs/comp-editor-util.c @@ -209,7 +209,6 @@ comp_editor_date_label (CompEditorPageDates *dates, GtkWidget *label) /** * comp_editor_new_date_edit: - * @shell_settings: an #EShellSettings * @show_date: Whether to show a date picker in the widget. * @show_time: Whether to show a time picker in the widget. * @make_time_insensitive: Whether the time field is made insensitive rather @@ -221,15 +220,12 @@ comp_editor_date_label (CompEditorPageDates *dates, GtkWidget *label) * Return value: A newly-created #EDateEdit widget. **/ GtkWidget * -comp_editor_new_date_edit (EShellSettings *shell_settings, - gboolean show_date, +comp_editor_new_date_edit (gboolean show_date, gboolean show_time, gboolean make_time_insensitive) { EDateEdit *dedit; - g_return_val_if_fail (E_IS_SHELL_SETTINGS (shell_settings), NULL); - dedit = E_DATE_EDIT (e_date_edit_new ()); e_date_edit_set_show_date (dedit, show_date); @@ -240,29 +236,9 @@ comp_editor_new_date_edit (EShellSettings *shell_settings, e_date_edit_set_make_time_insensitive (dedit, FALSE); #endif - comp_editor_bind_date_edit_settings (GTK_WIDGET (dedit), shell_settings); - return GTK_WIDGET (dedit); } -void -comp_editor_bind_date_edit_settings (GtkWidget *dateedit, EShellSettings *shell_settings) -{ - g_return_if_fail (dateedit != NULL); - g_return_if_fail (E_IS_DATE_EDIT (dateedit)); - - if (!shell_settings) - shell_settings = e_shell_get_shell_settings (e_shell_get_default ()); - - e_binding_new ( - shell_settings, "cal-show-week-numbers", - dateedit, "show-week-numbers"); - - e_binding_new ( - shell_settings, "cal-week-start-day", - dateedit, "week-start-day"); -} - /* Returns the current time, for EDateEdit widgets and ECalendar items in the dialogs. FIXME: Should probably use the timezone from somewhere in the component diff --git a/calendar/gui/dialogs/comp-editor-util.h b/calendar/gui/dialogs/comp-editor-util.h index 78a8bab33f..6eeb8c5410 100644 --- a/calendar/gui/dialogs/comp-editor-util.h +++ b/calendar/gui/dialogs/comp-editor-util.h @@ -26,7 +26,6 @@ #define _COMP_EDITOR_UTIL_H_ #include <gtk/gtk.h> -#include <shell/e-shell-settings.h> #include "comp-editor-page.h" #include "../e-meeting-attendee.h" @@ -35,13 +34,10 @@ void comp_editor_free_dates (CompEditorPageDates *dates); void comp_editor_date_label (CompEditorPageDates *dates, GtkWidget *label); -GtkWidget * comp_editor_new_date_edit (EShellSettings *shell_settings, - gboolean show_date, +GtkWidget * comp_editor_new_date_edit (gboolean show_date, gboolean show_time, gboolean make_time_insensitive); -void comp_editor_bind_date_edit_settings (GtkWidget *dateedit, EShellSettings *shell_settings); - struct tm comp_editor_get_current_time (GtkObject *object, gpointer data); gchar *comp_editor_strip_categories (const gchar *categories); diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index 0b1701de6f..91d9f1e202 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -75,8 +75,6 @@ #define d(x) -static gboolean comp_lite = FALSE; - /* Private part of the CompEditor structure */ struct _CompEditorPrivate { @@ -173,10 +171,16 @@ static const gchar *ui = " </menu>" " </menubar>" " <toolbar name='main-toolbar'>" -" <toolitem action='save'/>" -" <toolitem action='print'/>" -" <toolitem action='close'/>" +" <toolitem action='save'/>\n" +"#if !EXPRESS\n" +" <toolitem action='print'/>\n" +"#endif\n" " <separator/>" +" <placeholder name='content'/>\n" +"#if EXPRESS\n" +" <separator expand='true'/>\n" +" <toolitem action='close'/>\n" +"#endif\n" " </toolbar>" "</ui>"; @@ -421,7 +425,7 @@ save_comp (CompEditor *editor) clone = e_cal_component_clone (priv->comp); comp_editor_copy_new_attendees (clone, priv->comp); for (l = priv->pages; l != NULL; l = l->next) { - if (!comp_editor_page_fill_component (l->data, clone)) { + if (IS_COMP_EDITOR_PAGE(l->data) && !comp_editor_page_fill_component (l->data, clone)) { g_object_unref (clone); g_hash_table_destroy (timezones); comp_editor_show_page (editor, COMP_EDITOR_PAGE (l->data)); @@ -429,7 +433,8 @@ save_comp (CompEditor *editor) } /* retrieve all timezones */ - comp_editor_page_fill_timezones (l->data, timezones); + if (IS_COMP_EDITOR_PAGE(l->data)) + comp_editor_page_fill_timezones (l->data, timezones); } /* If we are not the organizer, we don't update the sequence number */ @@ -1598,6 +1603,9 @@ comp_editor_init (CompEditor *editor) gint n_targets; GError *error = NULL; + /* FIXME Shell should be passed in. */ + shell = e_shell_get_default (); + editor->priv = priv = COMP_EDITOR_GET_PRIVATE (editor); g_object_weak_ref ( @@ -1621,9 +1629,9 @@ comp_editor_init (CompEditor *editor) priv->is_group_item = FALSE; priv->ui_manager = e_ui_manager_new (); + e_ui_manager_set_express_mode (E_UI_MANAGER (priv->ui_manager), + e_shell_get_express_mode (shell)); - if (comp_lite) - gtk_window_set_default_size ((GtkWindow *) editor, 800, 450); gtk_window_add_accel_group ( GTK_WINDOW (editor), gtk_ui_manager_get_accel_group (priv->ui_manager)); @@ -1705,7 +1713,7 @@ comp_editor_init (CompEditor *editor) action = comp_editor_get_action (editor, "save"); gtk_action_set_sensitive (action, FALSE); - gtk_ui_manager_add_ui_from_string (priv->ui_manager, ui, -1, &error); + e_ui_manager_add_ui_from_string (E_UI_MANAGER (priv->ui_manager), ui, &error); if (error != NULL) { g_warning ("%s: %s", G_STRFUNC, error->message); g_error_free (error); @@ -1721,24 +1729,25 @@ comp_editor_init (CompEditor *editor) container = widget; - widget = comp_editor_get_managed_widget (editor, "/main-menu"); - gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); - gtk_widget_show (widget); - - if (!comp_lite) { - widget = comp_editor_get_managed_widget (editor, "/main-toolbar"); + if (!e_shell_get_express_mode (shell)) { + widget = comp_editor_get_managed_widget (editor, "/main-menu"); gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); - gtk_widget_show (widget); + gtk_widget_set_visible (widget, !e_shell_get_meego_mode (shell)); } + widget = comp_editor_get_managed_widget (editor, "/main-toolbar"); + gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); + gtk_widget_show (widget); + widget = e_attachment_paned_new (); gtk_container_set_border_width (GTK_CONTAINER (widget), 6); gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0); priv->attachment_view = g_object_ref (widget); gtk_widget_show (widget); - if (comp_lite) { - GtkWidget *tmp, *tmp1, *tmp_box, *cont; + if (e_shell_get_express_mode (shell)) { + /*GtkWidget *tmp, *tmp1, *tmp_box, */ + GtkWidget *cont; GtkWidget *combo; e_attachment_paned_set_expanded (E_ATTACHMENT_PANED (widget), TRUE); @@ -1749,7 +1758,7 @@ comp_editor_init (CompEditor *editor) gtk_widget_hide (combo); cont = e_attachment_paned_get_controls_container ( E_ATTACHMENT_PANED (widget)); - + /* tmp_box = gtk_hbox_new (FALSE, 0); tmp = gtk_hbox_new (FALSE, 0); tmp1 = gtk_image_new_from_stock (GTK_STOCK_SAVE, GTK_ICON_SIZE_BUTTON); @@ -1769,12 +1778,12 @@ comp_editor_init (CompEditor *editor) gtk_widget_show(tmp_box); gtk_box_pack_end (GTK_BOX (cont), tmp_box, FALSE, FALSE, 4); - + */ } container = e_attachment_paned_get_content_area ( E_ATTACHMENT_PANED (priv->attachment_view)); - if (comp_lite) { + if (e_shell_get_express_mode (shell)) { scroll = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy ((GtkScrolledWindow *)scroll, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_show(scroll); @@ -1782,14 +1791,14 @@ comp_editor_init (CompEditor *editor) } widget = gtk_notebook_new (); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (widget), FALSE); - if (!comp_lite) + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (widget), e_shell_get_express_mode (shell)); + if (!e_shell_get_express_mode (shell)) gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0); else gtk_scrolled_window_add_with_viewport ((GtkScrolledWindow *) scroll, widget); priv->notebook = GTK_NOTEBOOK (widget); gtk_widget_show (widget); - if (comp_lite) + if (e_shell_get_express_mode (shell)) gtk_widget_set_size_request (scroll, 300, -1); comp_editor_setup_recent_menu (editor); @@ -1831,9 +1840,8 @@ comp_editor_init (CompEditor *editor) comp_editor_bind_gconf (editor); - /* FIXME Shell should be passed in. */ - shell = e_shell_get_default (); e_shell_watch_window (shell, GTK_WINDOW (editor)); + e_shell_adapt_window_size (shell, GTK_WINDOW (editor)); } static gboolean @@ -2273,6 +2281,51 @@ page_unmapped_cb (GtkWidget *page_widget, } /** + * comp_editor_append_widget: + * @editor: A component editor + * @page: A component editor page + * @label: Label of the page. Should be NULL if add is FALSE. + * @add: Add's the page into the notebook if TRUE + * + * Appends a page to the notebook if add is TRUE else + * just adds it to the list of pages. + **/ +void +comp_editor_append_widget (CompEditor *editor, + GtkWidget *page, + const gchar *label, + gboolean add) +{ + CompEditorPrivate *priv; + GtkWidget *label_widget = NULL; + + g_return_if_fail (IS_COMP_EDITOR (editor)); + + priv = editor->priv; + + g_object_ref (page); + + if (label) + label_widget = gtk_label_new_with_mnemonic (label); + + priv->pages = g_list_append (priv->pages, page); + + if (add) + gtk_notebook_append_page (priv->notebook, page, label_widget); + + /* Listen for when the page is mapped/unmapped so we can + install/uninstall the appropriate GtkAccelGroup. + g_signal_connect ( + page, "map", + G_CALLBACK (page_mapped_cb), page); + g_signal_connect( + page, "unmap", + G_CALLBACK (page_unmapped_cb), page); + */ + +} + +/** * comp_editor_append_page: * @editor: A component editor * @page: A component editor page @@ -2563,8 +2616,10 @@ fill_widgets (CompEditor *editor) g_signal_handlers_block_by_func ( action, G_CALLBACK (action_classification_cb), editor); - for (iter = priv->pages; iter != NULL; iter = iter->next) - comp_editor_page_fill_widgets (iter->data, priv->comp); + for (iter = priv->pages; iter != NULL; iter = iter->next) { + if (IS_COMP_EDITOR_PAGE(iter->data)) + comp_editor_page_fill_widgets (iter->data, priv->comp); + } g_signal_handlers_unblock_by_func ( action, G_CALLBACK (action_classification_cb), editor); @@ -2807,8 +2862,10 @@ comp_editor_get_current_comp (CompEditor *editor, gboolean *correct) comp = e_cal_component_clone (priv->comp); comp_editor_copy_new_attendees (comp, priv->comp); if (priv->changed) { - for (l = priv->pages; l != NULL; l = l->next) - all_ok = comp_editor_page_fill_component (l->data, comp) && all_ok; + for (l = priv->pages; l != NULL; l = l->next) { + if (IS_COMP_EDITOR_PAGE(l->data)) + all_ok = comp_editor_page_fill_component (l->data, comp) && all_ok; + } } if (correct) @@ -2973,7 +3030,7 @@ page_dates_changed_cb (CompEditor *editor, GList *l; for (l = priv->pages; l != NULL; l = l->next) - if (page != (CompEditorPage *) l->data) + if (page != (CompEditorPage *) l->data && IS_COMP_EDITOR_PAGE(l->data)) comp_editor_page_set_dates (l->data, dates); if (!priv->warned && priv->existing_org && !priv->user_org && !(editor->priv->flags & COMP_EDITOR_NEW_ITEM)) { @@ -3030,14 +3087,3 @@ obj_removed_cb (ECal *client, close_dialog (editor); } -gboolean -comp_editor_get_lite () -{ - return comp_lite; -} - -void -comp_editor_set_lite (gboolean status) -{ - comp_lite = status; -} diff --git a/calendar/gui/dialogs/comp-editor.h b/calendar/gui/dialogs/comp-editor.h index 4871beae8f..bd26ce8b66 100644 --- a/calendar/gui/dialogs/comp-editor.h +++ b/calendar/gui/dialogs/comp-editor.h @@ -127,6 +127,11 @@ void comp_editor_append_page (CompEditor *editor, CompEditorPage *page, const gchar *label, gboolean add); +void comp_editor_append_widget (CompEditor *editor, + GtkWidget *page, + const gchar *label, + gboolean add); + void comp_editor_remove_page (CompEditor *editor, CompEditorPage *page); void comp_editor_show_page (CompEditor *editor, @@ -165,9 +170,6 @@ GtkWidget * comp_editor_get_managed_widget (CompEditor *editor, const gchar *widget_path); CompEditor * comp_editor_find_instance (const gchar *uid); -void comp_editor_set_lite (gboolean status); -gboolean comp_editor_get_lite (void); - G_END_DECLS #endif diff --git a/calendar/gui/dialogs/copy-source-dialog.c b/calendar/gui/dialogs/copy-source-dialog.c index 9b8c8c4fed..f1c568849b 100644 --- a/calendar/gui/dialogs/copy-source-dialog.c +++ b/calendar/gui/dialogs/copy-source-dialog.c @@ -32,18 +32,19 @@ #include "common/authentication.h" typedef struct { + GtkWindow *parent; ESource *orig_source; ECalSourceType obj_type; ESource *selected_source; } CopySourceDialogData; static void -show_error (GtkWindow *parent, const gchar *msg) +show_error (CopySourceDialogData *csdd, const gchar *msg) { GtkWidget *dialog; dialog = gtk_message_dialog_new ( - parent, 0, GTK_MESSAGE_ERROR, + csdd->parent, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", msg); gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); @@ -88,7 +89,7 @@ copy_source (CopySourceDialogData *csdd) /* open the source */ source_client = e_auth_new_cal_from_source (csdd->orig_source, csdd->obj_type); if (!e_cal_open (source_client, TRUE, NULL)) { - show_error (NULL, _("Could not open source")); + show_error (csdd, _("Could not open source")); g_object_unref (source_client); return FALSE; } @@ -96,7 +97,7 @@ copy_source (CopySourceDialogData *csdd) /* open the destination */ dest_client = e_auth_new_cal_from_source (csdd->selected_source, csdd->obj_type); if (!e_cal_open (dest_client, FALSE, NULL)) { - show_error (NULL, _("Could not open destination")); + show_error (csdd, _("Could not open destination")); g_object_unref (dest_client); g_object_unref (source_client); return FALSE; @@ -105,7 +106,7 @@ copy_source (CopySourceDialogData *csdd) /* check if the destination is read only */ e_cal_is_read_only (dest_client, &read_only, NULL); if (read_only) { - show_error (NULL, _("Destination is read only")); + show_error (csdd, _("Destination is read only")); } else { if (e_cal_get_object_list (source_client, "#t", &obj_list, NULL)) { GList *l; @@ -135,7 +136,7 @@ copy_source (CopySourceDialogData *csdd) g_free (uid); } else { if (error) { - show_error (NULL, error->message); + show_error (csdd, error->message); g_error_free (error); } break; @@ -168,6 +169,7 @@ copy_source_dialog (GtkWindow *parent, ESource *source, ECalSourceType obj_type) g_return_val_if_fail (E_IS_SOURCE (source), FALSE); + csdd.parent = parent; csdd.orig_source = source; csdd.selected_source = NULL; csdd.obj_type = obj_type; diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c index c40f2b05d0..1ae9595c02 100644 --- a/calendar/gui/dialogs/event-editor.c +++ b/calendar/gui/dialogs/event-editor.c @@ -36,6 +36,7 @@ #include <e-util/e-binding.h> #include <e-util/e-plugin-ui.h> #include <e-util/e-util-private.h> +#include <e-util/e-ui-manager.h> #include "event-page.h" #include "recurrence-page.h" @@ -89,11 +90,19 @@ static const gchar *ui = " </menu>" " </menubar>" " <toolbar name='main-toolbar'>" -" <toolitem action='alarms'/>" -" <toolitem action='show-time-busy'/>" -" <toolitem action='recurrence'/>" -" <toolitem action='all-day-event'/>" -" <toolitem action='free-busy'/>" +" <placeholder name='content'>\n" +"#if !EXPRESS\n" +" <toolitem action='alarms'/>\n" +"#endif\n" +" <toolitem action='show-time-busy'/>\n" +"#if !EXPRESS\n" +" <toolitem action='recurrence'/>\n" +"#endif\n" +" <toolitem action='all-day-event'/>\n" +"#if !EXPRESS\n" +" <toolitem action='free-busy'/>\n" +"#endif\n" +" </placeholder>" " </toolbar>" "</ui>"; @@ -275,6 +284,8 @@ event_editor_constructor (GType type, GtkActionGroup *action_group; ECal *client; gboolean is_meeting; + GtkWidget *alarm_page; + GtkWidget *attendee_page; /* Chain up to parent's constructor() method. */ object = G_OBJECT_CLASS (event_editor_parent_class)->constructor ( @@ -308,11 +319,34 @@ event_editor_constructor (GType type, priv->recur_page = recurrence_page_new (editor); page = COMP_EDITOR_PAGE (priv->recur_page); - gtk_container_add ( - GTK_CONTAINER ((GTK_DIALOG (priv->recur_window)->vbox)), - comp_editor_page_get_widget (page)); - gtk_widget_show_all (gtk_bin_get_child (GTK_BIN (priv->recur_window))); - comp_editor_append_page (editor, page, NULL, FALSE); + if (!e_shell_get_express_mode(e_shell_get_default())) { + gtk_container_add ( + GTK_CONTAINER ((GTK_DIALOG (priv->recur_window)->vbox)), + comp_editor_page_get_widget (page)); + gtk_widget_show_all (gtk_bin_get_child (GTK_BIN (priv->recur_window))); + comp_editor_append_page (editor, page, NULL, FALSE); + } else { + comp_editor_append_page (editor, page, _("_Recurrence"), TRUE); + } + + if (e_shell_get_express_mode(e_shell_get_default())) { + ENameSelector *name_selector; + + priv->sched_page = schedule_page_new (priv->model, editor); + page = COMP_EDITOR_PAGE (priv->sched_page); + + name_selector = event_page_get_name_selector (priv->event_page); + schedule_page_set_name_selector (priv->sched_page, name_selector); + + comp_editor_append_page (editor, page, _("_Free/Busy"), TRUE); + schedule_page_update_free_busy (priv->sched_page); + + /* Alarm page */ + alarm_page = event_page_get_alarm_page (priv->event_page); + comp_editor_append_widget (editor, alarm_page, _("_Alarm"), TRUE); + g_object_unref(alarm_page); + + } if (is_meeting) { @@ -329,6 +363,12 @@ event_editor_constructor (GType type, event_page_set_meeting (priv->event_page, TRUE); priv->meeting_shown=TRUE; + + if (e_shell_get_express_mode(e_shell_get_default())) { + attendee_page = event_page_get_attendee_page (priv->event_page); + comp_editor_append_widget (editor, attendee_page, _("Attendee_s"), TRUE); + g_object_unref(attendee_page); + } } return object; @@ -369,25 +409,12 @@ static void event_editor_constructed (GObject *object) { EventEditorPrivate *priv; - EShellSettings *shell_settings; - EShell *shell; priv = EVENT_EDITOR_GET_PRIVATE (object); - shell = comp_editor_get_shell (COMP_EDITOR (object)); - shell_settings = e_shell_get_shell_settings (shell); - e_binding_new ( object, "client", priv->model, "client"); - - e_binding_new ( - shell_settings, "cal-free-busy-template", - priv->model, "free-busy-template"); - - e_binding_new ( - shell_settings, "cal-timezone", - priv->model, "timezone"); } static void @@ -518,7 +545,7 @@ event_editor_init (EventEditor *ee) G_N_ELEMENTS (meeting_entries), ee); ui_manager = comp_editor_get_ui_manager (editor); - gtk_ui_manager_add_ui_from_string (ui_manager, ui, -1, &error); + e_ui_manager_add_ui_from_string (E_UI_MANAGER (ui_manager), ui, &error); id = "org.gnome.evolution.event-editor"; e_plugin_ui_register_manager (ui_manager, id, ee); diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c index 6308cda647..74d6af4c4b 100644 --- a/calendar/gui/dialogs/event-page.c +++ b/calendar/gui/dialogs/event-page.c @@ -828,7 +828,8 @@ sensitize_widgets (EventPage *epage) } else { gtk_widget_show (priv->calendar_label); gtk_widget_show (priv->list_box); - gtk_widget_show (priv->attendee_box); + if (!e_shell_get_express_mode(e_shell_get_default())) + gtk_widget_show (priv->attendee_box); gtk_widget_show (priv->organizer); gtk_label_set_text_with_mnemonic ((GtkLabel *) priv->org_cal_label, _("Or_ganizer:")); } @@ -2197,7 +2198,7 @@ get_widgets (EventPage *epage) priv->invite = GW ("invite"); priv->invite_label = GW ("invite-label"); - if (comp_editor_get_lite ()) + if (e_shell_get_express_mode (e_shell_get_default ())) gtk_widget_hide (priv->invite); else gtk_widget_hide (priv->invite_label); @@ -2222,7 +2223,6 @@ get_widgets (EventPage *epage) /* Glade's visibility flag doesn't seem to work for custom widgets */ priv->start_time = GW ("start-time"); - comp_editor_bind_date_edit_settings (priv->start_time, NULL); gtk_widget_show (priv->start_time); priv->time_hour = GW ("time-hour"); @@ -2231,7 +2231,6 @@ get_widgets (EventPage *epage) priv->end_time_combo = GW ("end-time-combobox"); priv->end_time = GW ("end-time"); - comp_editor_bind_date_edit_settings (priv->end_time, NULL); gtk_widget_show_all (priv->time_hour); gtk_widget_hide (priv->end_time); @@ -2239,7 +2238,6 @@ get_widgets (EventPage *epage) priv->source_selector = GW ("source"); -#undef GW e_util_set_source_combo_box_list (priv->source_selector, "/apps/evolution/calendar/sources"); @@ -3259,3 +3257,44 @@ event_page_remove_all_attendees (EventPage *epage) e_meeting_list_view_remove_all_attendees_from_name_selector (E_MEETING_LIST_VIEW (priv->list_view)); } + +GtkWidget * +event_page_get_alarm_page (EventPage *epage) +{ + EventPagePrivate *priv; + GtkWidget *alarm_page, *tmp; + + g_return_val_if_fail (epage != NULL, NULL); + g_return_val_if_fail (IS_EVENT_PAGE (epage), NULL); + + priv = epage->priv; + + tmp = GW("dialog-vbox1"); + alarm_page = GW("vbox2"); + g_object_ref(alarm_page); + gtk_container_remove ((GtkContainer *)tmp, alarm_page); + + return alarm_page; +} + +GtkWidget * +event_page_get_attendee_page (EventPage *epage) +{ + EventPagePrivate *priv; + GtkWidget *apage; + + g_return_val_if_fail (epage != NULL, NULL); + g_return_val_if_fail (IS_EVENT_PAGE (epage), NULL); + + priv = epage->priv; + + apage = priv->list_box; + g_object_ref(apage); + gtk_container_remove ((GtkContainer *)gtk_widget_get_parent(apage), apage); + gtk_widget_hide (priv->attendee_box); + + return apage; +} + + +#undef GW diff --git a/calendar/gui/dialogs/event-page.h b/calendar/gui/dialogs/event-page.h index ab43c0f7ba..a4513e4c68 100644 --- a/calendar/gui/dialogs/event-page.h +++ b/calendar/gui/dialogs/event-page.h @@ -109,6 +109,8 @@ ENameSelector * event_page_get_name_selector (EventPage *epage); void event_page_add_attendee (EventPage *epage, EMeetingAttendee *attendee); void event_page_remove_all_attendees (EventPage *epage); +GtkWidget * event_page_get_alarm_page (EventPage *epage); +GtkWidget * event_page_get_attendee_page (EventPage *epage); G_END_DECLS diff --git a/calendar/gui/dialogs/memo-page.c b/calendar/gui/dialogs/memo-page.c index f1b3a71d03..adb10dc9fa 100644 --- a/calendar/gui/dialogs/memo-page.c +++ b/calendar/gui/dialogs/memo-page.c @@ -816,7 +816,6 @@ get_widgets (MemoPage *mpage) #undef GW e_util_set_source_combo_box_list (priv->source_selector, "/apps/evolution/memos/sources"); - comp_editor_bind_date_edit_settings (priv->start_date, NULL); completion = e_category_completion_new (); gtk_entry_set_completion (GTK_ENTRY (priv->categories), completion); diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c index 4d3e0af1f0..578f98929c 100644 --- a/calendar/gui/dialogs/recurrence-page.c +++ b/calendar/gui/dialogs/recurrence-page.c @@ -1340,8 +1340,6 @@ static void make_ending_until_special (RecurrencePage *rpage) { RecurrencePagePrivate *priv = rpage->priv; - EShell *shell; - EShellSettings *shell_settings; CompEditor *editor; CompEditorFlags flags; EDateEdit *de; @@ -1353,13 +1351,9 @@ make_ending_until_special (RecurrencePage *rpage) editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (rpage)); flags = comp_editor_get_flags (editor); - shell = comp_editor_get_shell (editor); - shell_settings = e_shell_get_shell_settings (shell); - /* Create the widget */ - priv->ending_date_edit = comp_editor_new_date_edit ( - shell_settings, TRUE, FALSE, FALSE); + priv->ending_date_edit = comp_editor_new_date_edit (TRUE, FALSE, FALSE); de = E_DATE_EDIT (priv->ending_date_edit); gtk_container_add (GTK_CONTAINER (priv->ending_special), @@ -2088,14 +2082,10 @@ create_exception_dialog (RecurrencePage *rpage, const gchar *title, GtkWidget ** RecurrencePagePrivate *priv; GtkWidget *dialog, *toplevel; CompEditor *editor; - EShell *shell; - EShellSettings *shell_settings; priv = rpage->priv; editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (rpage)); - shell = comp_editor_get_shell (editor); - shell_settings = e_shell_get_shell_settings (shell); toplevel = gtk_widget_get_toplevel (priv->main); dialog = gtk_dialog_new_with_buttons (title, GTK_WINDOW (toplevel), @@ -2104,7 +2094,7 @@ create_exception_dialog (RecurrencePage *rpage, const gchar *title, GtkWidget ** GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL); - *date_edit = comp_editor_new_date_edit (shell_settings, TRUE, FALSE, TRUE); + *date_edit = comp_editor_new_date_edit (TRUE, FALSE, TRUE); gtk_widget_show (*date_edit); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), *date_edit, FALSE, TRUE, 6); @@ -2260,8 +2250,6 @@ static void init_widgets (RecurrencePage *rpage) { RecurrencePagePrivate *priv; - EShell *shell; - EShellSettings *shell_settings; CompEditor *editor; ECalendar *ecal; GtkAdjustment *adj; @@ -2271,22 +2259,12 @@ init_widgets (RecurrencePage *rpage) priv = rpage->priv; editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (rpage)); - shell = comp_editor_get_shell (editor); - shell_settings = e_shell_get_shell_settings (shell); /* Recurrence preview */ priv->preview_calendar = e_calendar_new (); ecal = E_CALENDAR (priv->preview_calendar); - e_binding_new ( - shell_settings, "cal-show-week-numbers", - ecal->calitem, "show-week-numbers"); - - e_binding_new ( - shell_settings, "cal-week-start-day", - ecal->calitem, "week-start-day"); - g_signal_connect((ecal->calitem), "date_range_changed", G_CALLBACK (preview_date_range_changed_cb), rpage); @@ -2423,12 +2401,6 @@ GtkWidget *make_exdate_date_edit (void); GtkWidget * make_exdate_date_edit (void) { - EShell *shell; - EShellSettings *shell_settings; - - shell = e_shell_get_default (); - shell_settings = e_shell_get_shell_settings (shell); - - return comp_editor_new_date_edit (shell_settings, TRUE, TRUE, FALSE); + return comp_editor_new_date_edit (TRUE, TRUE, FALSE); } diff --git a/calendar/gui/dialogs/schedule-page.c b/calendar/gui/dialogs/schedule-page.c index 32b6dffab8..2e13cba1b9 100644 --- a/calendar/gui/dialogs/schedule-page.c +++ b/calendar/gui/dialogs/schedule-page.c @@ -380,13 +380,9 @@ SchedulePage * schedule_page_construct (SchedulePage *spage, EMeetingStore *ems) { SchedulePagePrivate *priv = spage->priv; - EShellSettings *shell_settings; - EShell *shell; CompEditor *editor; editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (spage)); - shell = comp_editor_get_shell (editor); - shell_settings = e_shell_get_shell_settings (shell); priv->builder = gtk_builder_new (); e_load_ui_builder_definition (priv->builder, "schedule-page.ui"); @@ -412,18 +408,6 @@ schedule_page_construct (SchedulePage *spage, EMeetingStore *ems) gtk_widget_show (GTK_WIDGET (priv->sel)); gtk_box_pack_start (GTK_BOX (priv->main), GTK_WIDGET (priv->sel), TRUE, TRUE, 6); - e_binding_new ( - shell_settings, "cal-show-week-numbers", - priv->sel, "show-week-numbers"); - - e_binding_new ( - shell_settings, "cal-use-24-hour-format", - priv->sel, "use-24-hour-format"); - - e_binding_new ( - shell_settings, "cal-week-start-day", - priv->sel, "week-start-day"); - if (!init_widgets (spage)) { g_message ("schedule_page_construct(): " "Could not initialize the widgets!"); diff --git a/calendar/gui/dialogs/task-details-page.c b/calendar/gui/dialogs/task-details-page.c index 4a5b5b094e..c549633eb5 100644 --- a/calendar/gui/dialogs/task-details-page.c +++ b/calendar/gui/dialogs/task-details-page.c @@ -474,7 +474,6 @@ get_widgets (TaskDetailsPage *tdpage) priv->date_completed_label = GW ("date_completed_label"); priv->completed_date = GW ("completed-date"); - comp_editor_bind_date_edit_settings (priv->completed_date, NULL); gtk_widget_show (priv->completed_date); priv->url_label = GW ("url_label"); diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index a3d4baec46..7e35cbe070 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -81,8 +81,10 @@ static const gchar *ui = " </menu>" " </menubar>" " <toolbar name='main-toolbar'>" -" <toolitem action='view-time-zone'/>" -" <toolitem action='option-status'/>" +" <placeholder name='content'>" +" <toolitem action='view-time-zone'/>" +" <toolitem action='option-status'/>" +" </placeholder>" " </toolbar>" "</ui>"; @@ -202,25 +204,12 @@ static void task_editor_constructed (GObject *object) { TaskEditorPrivate *priv; - EShellSettings *shell_settings; - EShell *shell; priv = TASK_EDITOR_GET_PRIVATE (object); - shell = comp_editor_get_shell (COMP_EDITOR (object)); - shell_settings = e_shell_get_shell_settings (shell); - e_binding_new ( object, "client", priv->model, "client"); - - e_binding_new ( - shell_settings, "cal-free-busy-template", - priv->model, "free-busy-template"); - - e_binding_new ( - shell_settings, "cal-timezone", - priv->model, "timezone"); } static void diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c index 9a10f403d7..fb6338005f 100644 --- a/calendar/gui/dialogs/task-page.c +++ b/calendar/gui/dialogs/task-page.c @@ -1363,10 +1363,8 @@ get_widgets (TaskPage *tpage) /* Glade's visibility flag doesn't seem to work for custom widgets */ priv->due_date = e_builder_get_widget (priv->builder, "due-date"); - comp_editor_bind_date_edit_settings (priv->due_date, NULL); gtk_widget_show (priv->due_date); priv->start_date = e_builder_get_widget (priv->builder, "start-date"); - comp_editor_bind_date_edit_settings (priv->start_date, NULL); gtk_widget_show (priv->start_date); priv->timezone = e_builder_get_widget (priv->builder, "timezone"); diff --git a/calendar/gui/e-cal-model-calendar.c b/calendar/gui/e-cal-model-calendar.c index 6df5588dae..778b72de21 100644 --- a/calendar/gui/e-cal-model-calendar.c +++ b/calendar/gui/e-cal-model-calendar.c @@ -525,11 +525,7 @@ ecmc_fill_component_from_model (ECalModel *model, ECalModelComponent *comp_data, * e_cal_model_calendar_new */ ECalModel * -e_cal_model_calendar_new (EShellSettings *shell_settings) +e_cal_model_calendar_new (void) { - g_return_val_if_fail (E_IS_SHELL_SETTINGS (shell_settings), NULL); - - return g_object_new ( - E_TYPE_CAL_MODEL_CALENDAR, - "shell-settings", shell_settings, NULL); + return g_object_new (E_TYPE_CAL_MODEL_CALENDAR, NULL); } diff --git a/calendar/gui/e-cal-model-calendar.h b/calendar/gui/e-cal-model-calendar.h index f1027032cb..6e3b3fe617 100644 --- a/calendar/gui/e-cal-model-calendar.h +++ b/calendar/gui/e-cal-model-calendar.h @@ -71,8 +71,8 @@ struct _ECalModelCalendarClass { ECalModelClass parent_class; }; -GType e_cal_model_calendar_get_type (void); -ECalModel * e_cal_model_calendar_new (EShellSettings *shell_settings); +GType e_cal_model_calendar_get_type (void); +ECalModel * e_cal_model_calendar_new (void); G_END_DECLS diff --git a/calendar/gui/e-cal-model-memos.c b/calendar/gui/e-cal-model-memos.c index 41f63700c8..38e55ef71a 100644 --- a/calendar/gui/e-cal-model-memos.c +++ b/calendar/gui/e-cal-model-memos.c @@ -261,11 +261,7 @@ ecmm_fill_component_from_model (ECalModel *model, ECalModelComponent *comp_data, * e_cal_model_memos_new */ ECalModel * -e_cal_model_memos_new (EShellSettings *shell_settings) +e_cal_model_memos_new (void) { - g_return_val_if_fail (E_IS_SHELL_SETTINGS (shell_settings), NULL); - - return g_object_new ( - E_TYPE_CAL_MODEL_MEMOS, - "shell-settings", shell_settings, NULL); + return g_object_new (E_TYPE_CAL_MODEL_MEMOS, NULL); } diff --git a/calendar/gui/e-cal-model-memos.h b/calendar/gui/e-cal-model-memos.h index b58faa539b..3977bbe0cb 100644 --- a/calendar/gui/e-cal-model-memos.h +++ b/calendar/gui/e-cal-model-memos.h @@ -71,7 +71,7 @@ struct _ECalModelMemosClass { }; GType e_cal_model_memos_get_type (void); -ECalModel * e_cal_model_memos_new (EShellSettings *shell_settings); +ECalModel * e_cal_model_memos_new (void); G_END_DECLS diff --git a/calendar/gui/e-cal-model-tasks.c b/calendar/gui/e-cal-model-tasks.c index e6fd01e9c9..c69e7452b9 100644 --- a/calendar/gui/e-cal-model-tasks.c +++ b/calendar/gui/e-cal-model-tasks.c @@ -133,27 +133,6 @@ cal_model_tasks_finalize (GObject *object) } static void -cal_model_tasks_constructed (GObject *object) -{ - ECalModel *model; - EShellSettings *shell_settings; - - model = E_CAL_MODEL (object); - shell_settings = e_cal_model_get_shell_settings (model); - - e_binding_new ( - shell_settings, "cal-tasks-color-due-today", - model, "color-due-today"); - - e_binding_new ( - shell_settings, "cal-tasks-color-overdue", - model, "color-overdue"); - - /* Chain up to parent's constructed() method. */ - G_OBJECT_CLASS (e_cal_model_tasks_parent_class)->constructed (object); -} - -static void e_cal_model_tasks_class_init (ECalModelTasksClass *class) { GObjectClass *object_class; @@ -166,7 +145,6 @@ e_cal_model_tasks_class_init (ECalModelTasksClass *class) object_class->set_property = cal_model_tasks_set_property; object_class->get_property = cal_model_tasks_get_property; object_class->finalize = cal_model_tasks_finalize; - object_class->constructed = cal_model_tasks_constructed; table_model_class = E_TABLE_MODEL_CLASS (class); table_model_class->column_count = ecmt_column_count; @@ -1157,13 +1135,9 @@ ecmt_fill_component_from_model (ECalModel *model, ECalModelComponent *comp_data, } ECalModel * -e_cal_model_tasks_new (EShellSettings *shell_settings) +e_cal_model_tasks_new (void) { - g_return_val_if_fail (E_IS_SHELL_SETTINGS (shell_settings), NULL); - - return g_object_new ( - E_TYPE_CAL_MODEL_TASKS, - "shell-settings", shell_settings, NULL); + return g_object_new (E_TYPE_CAL_MODEL_TASKS, NULL); } const gchar * diff --git a/calendar/gui/e-cal-model-tasks.h b/calendar/gui/e-cal-model-tasks.h index 056325547d..c0ceaaa2c5 100644 --- a/calendar/gui/e-cal-model-tasks.h +++ b/calendar/gui/e-cal-model-tasks.h @@ -79,7 +79,7 @@ struct _ECalModelTasksClass { }; GType e_cal_model_tasks_get_type (void); -ECalModel * e_cal_model_tasks_new (EShellSettings *shell_settings); +ECalModel * e_cal_model_tasks_new (void); const gchar * e_cal_model_tasks_get_color_due_today (ECalModelTasks *model); void e_cal_model_tasks_set_color_due_today diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c index cb1966fb17..e48b95999d 100644 --- a/calendar/gui/e-cal-model.c +++ b/calendar/gui/e-cal-model.c @@ -35,7 +35,7 @@ #include "e-cal-model.h" #include "itip-utils.h" #include "misc.h" -#include "e-util/e-binding.h" +#include "e-util/e-extensible.h" #include "e-util/e-util.h" #define E_CAL_MODEL_GET_PRIVATE(obj) \ @@ -54,8 +54,6 @@ typedef struct { } ECalModelClient; struct _ECalModelPrivate { - EShellSettings *shell_settings; - /* The list of clients we are managing. Each element is of type ECalModelClient */ GList *clients; @@ -128,7 +126,6 @@ static void remove_client (ECalModel *model, ECalModelClient *client_data); enum { PROP_0, PROP_DEFAULT_CLIENT, - PROP_SHELL_SETTINGS, PROP_TIMEZONE, PROP_USE_24_HOUR_FORMAT, PROP_WEEK_START_DAY @@ -148,17 +145,9 @@ enum { static gpointer parent_class; static guint signals[LAST_SIGNAL]; -G_DEFINE_TYPE (ECalModel, e_cal_model, E_TABLE_MODEL_TYPE) - -static void -cal_model_set_shell_settings (ECalModel *cal_model, - EShellSettings *shell_settings) -{ - g_return_if_fail (E_IS_SHELL_SETTINGS (shell_settings)); - g_return_if_fail (cal_model->priv->shell_settings == NULL); - - cal_model->priv->shell_settings = g_object_ref (shell_settings); -} +G_DEFINE_TYPE_WITH_CODE ( + ECalModel, e_cal_model, E_TABLE_MODEL_TYPE, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) static void cal_model_set_property (GObject *object, @@ -173,12 +162,6 @@ cal_model_set_property (GObject *object, g_value_get_object (value)); return; - case PROP_SHELL_SETTINGS: - cal_model_set_shell_settings ( - E_CAL_MODEL (object), - g_value_get_object (value)); - return; - case PROP_TIMEZONE: e_cal_model_set_timezone ( E_CAL_MODEL (object), @@ -215,13 +198,6 @@ cal_model_get_property (GObject *object, E_CAL_MODEL (object))); return; - case PROP_SHELL_SETTINGS: - g_value_set_object ( - value, - e_cal_model_get_shell_settings ( - E_CAL_MODEL (object))); - return; - case PROP_TIMEZONE: g_value_set_pointer ( value, @@ -254,11 +230,6 @@ cal_model_dispose (GObject *object) priv = E_CAL_MODEL_GET_PRIVATE (object); - if (priv->shell_settings != NULL) { - g_object_unref (priv->shell_settings); - priv->shell_settings = NULL; - } - if (priv->clients) { while (priv->clients != NULL) { ECalModelClient *client_data = (ECalModelClient *) priv->clients->data; @@ -317,28 +288,6 @@ cal_model_finalize (GObject *object) } static void -cal_model_constructed (GObject *object) -{ - ECalModel *model; - EShellSettings *shell_settings; - - model = E_CAL_MODEL (object); - shell_settings = e_cal_model_get_shell_settings (model); - - e_binding_new ( - shell_settings, "cal-timezone", - model, "timezone"); - - e_binding_new ( - shell_settings, "cal-use-24-hour-format", - model, "use-24-hour-format"); - - e_binding_new ( - shell_settings, "cal-week-start-day", - model, "week-start-day"); -} - -static void e_cal_model_class_init (ECalModelClass *class) { GObjectClass *object_class; @@ -352,7 +301,6 @@ e_cal_model_class_init (ECalModelClass *class) object_class->get_property = cal_model_get_property; object_class->dispose = cal_model_dispose; object_class->finalize = cal_model_finalize; - object_class->constructed = cal_model_constructed; etm_class = E_TABLE_MODEL_CLASS (class); etm_class->column_count = ecm_column_count; @@ -382,17 +330,6 @@ e_cal_model_class_init (ECalModelClass *class) g_object_class_install_property ( object_class, - PROP_SHELL_SETTINGS, - g_param_spec_object ( - "shell-settings", - _("Shell Settings"), - _("Application-wide settings"), - E_TYPE_SHELL_SETTINGS, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property ( - object_class, PROP_TIMEZONE, g_param_spec_pointer ( "timezone", @@ -513,6 +450,8 @@ e_cal_model_init (ECalModel *model) model->priv->notify_modified = NULL; model->priv->notify_removed = NULL; model->priv->notify_lock = g_mutex_new (); + + e_extensible_load_extensions (E_EXTENSIBLE (model)); } /* ETableModel methods */ @@ -1387,14 +1326,6 @@ ecm_get_color_for_component (ECalModel *model, ECalModelComponent *comp_data) return assigned_colors[first_empty].color; } -EShellSettings * -e_cal_model_get_shell_settings (ECalModel *model) -{ - g_return_val_if_fail (E_IS_CAL_MODEL (model), NULL); - - return model->priv->shell_settings; -} - icalcomponent_kind e_cal_model_get_component_kind (ECalModel *model) { diff --git a/calendar/gui/e-cal-model.h b/calendar/gui/e-cal-model.h index 0b31ca34ec..29c3335310 100644 --- a/calendar/gui/e-cal-model.h +++ b/calendar/gui/e-cal-model.h @@ -29,7 +29,6 @@ #include <table/e-table-model.h> #include <libecal/e-cal.h> #include "e-cell-date-edit-text.h" -#include <shell/e-shell-settings.h> /* Standard GObject macros */ #define E_TYPE_CAL_MODEL \ @@ -176,7 +175,6 @@ typedef time_t (*ECalModelDefaultTimeFunc) (ECalModel *model, gpointer user_data GType e_cal_model_get_type (void); GType e_cal_model_component_get_type (void); -EShellSettings *e_cal_model_get_shell_settings (ECalModel *model); icalcomponent_kind e_cal_model_get_component_kind (ECalModel *model); void e_cal_model_set_component_kind (ECalModel *model, diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c index 42e4c1cd7a..d41ef007a4 100644 --- a/calendar/gui/e-calendar-view.c +++ b/calendar/gui/e-calendar-view.c @@ -33,6 +33,7 @@ #include <libedataserver/e-time-utils.h> #include <e-util/e-util.h> #include <e-util/e-alert-dialog.h> +#include <e-util/e-extensible.h> #include <e-util/e-selection.h> #include <e-util/e-datetime-format.h> #include <e-util/e-dialog-utils.h> @@ -104,7 +105,9 @@ static guint signals[LAST_SIGNAL]; static void calendar_view_selectable_init (ESelectableInterface *interface); -G_DEFINE_ABSTRACT_TYPE_WITH_CODE (ECalendarView, e_calendar_view, GTK_TYPE_TABLE, +G_DEFINE_ABSTRACT_TYPE_WITH_CODE ( + ECalendarView, e_calendar_view, GTK_TYPE_TABLE, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL) G_IMPLEMENT_INTERFACE (E_TYPE_SELECTABLE, calendar_view_selectable_init)); static void @@ -873,6 +876,8 @@ e_calendar_view_init (ECalendarView *calendar_view) target_list = gtk_target_list_new (NULL, 0); e_target_list_add_calendar_targets (target_list, 0); calendar_view->priv->paste_target_list = target_list; + + e_extensible_load_extensions (E_EXTENSIBLE (calendar_view)); } static void diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c index 9fb0a78ee4..cc8581fb00 100644 --- a/calendar/gui/e-day-view.c +++ b/calendar/gui/e-day-view.c @@ -590,56 +590,12 @@ static void day_view_constructed (GObject *object) { ECalModel *model; - EDayView *day_view; - EShellSettings *shell_settings; - - day_view = E_DAY_VIEW (object); - model = e_calendar_view_get_model (E_CALENDAR_VIEW (day_view)); - shell_settings = e_cal_model_get_shell_settings (model); - - e_binding_new ( - shell_settings, "cal-day-view-show-week-numbers", - day_view->week_number_label, "visible"); - - e_binding_new ( - shell_settings, "cal-marcus-bains-show-line", - day_view, "marcus-bains-show-line"); - - e_binding_new ( - shell_settings, "cal-marcus-bains-day-view-color", - day_view, "marcus-bains-day-view-color"); - - e_binding_new ( - shell_settings, "cal-marcus-bains-time-bar-color", - day_view, "marcus-bains-time-bar-color"); - - e_binding_new ( - shell_settings, "cal-time-divisions", - day_view, "mins-per-row"); - - e_binding_new ( - shell_settings, "cal-work-day-end-hour", - day_view, "work-day-end-hour"); - - e_binding_new ( - shell_settings, "cal-work-day-end-minute", - day_view, "work-day-end-minute"); - - e_binding_new ( - shell_settings, "cal-work-day-start-hour", - day_view, "work-day-start-hour"); - - e_binding_new ( - shell_settings, "cal-work-day-start-minute", - day_view, "work-day-start-minute"); - e_binding_new ( - shell_settings, "cal-working-days-bitset", - day_view, "working-days"); + model = e_calendar_view_get_model (E_CALENDAR_VIEW (object)); g_signal_connect_swapped ( model, "notify::week-start-day", - G_CALLBACK (day_view_notify_week_start_day_cb), day_view); + G_CALLBACK (day_view_notify_week_start_day_cb), object); } static void diff --git a/calendar/gui/e-meeting-store.c b/calendar/gui/e-meeting-store.c index 35bd87f3e2..6cfaecabfa 100644 --- a/calendar/gui/e-meeting-store.c +++ b/calendar/gui/e-meeting-store.c @@ -31,6 +31,7 @@ #include <libecal/e-cal-util.h> #include <libecal/e-cal-time-util.h> #include <libedataserver/e-data-server-util.h> +#include <e-util/e-extensible.h> #include "itip-utils.h" #include "e-meeting-utils.h" #include "e-meeting-attendee.h" @@ -87,7 +88,13 @@ enum { PROP_TIMEZONE }; -static gpointer parent_class; +/* Forward Declarations */ +static void ems_tree_model_init (GtkTreeModelIface *iface); + +G_DEFINE_TYPE_WITH_CODE ( + EMeetingStore, e_meeting_store, GTK_TYPE_LIST_STORE, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL) + G_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL, ems_tree_model_init)) static icalparameter_cutype text_to_type (const gchar *type) @@ -624,15 +631,14 @@ meeting_store_finalize (GObject *object) g_mutex_free (priv->mutex); /* Chain up to parent's finalize() method. */ - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (e_meeting_store_parent_class)->finalize (object); } static void -meeting_store_class_init (GObjectClass *class) +e_meeting_store_class_init (EMeetingStoreClass *class) { GObjectClass *object_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EMeetingStorePrivate)); object_class = G_OBJECT_CLASS (class); @@ -671,7 +677,7 @@ meeting_store_class_init (GObjectClass *class) } static void -meeting_store_init (EMeetingStore *store) +e_meeting_store_init (EMeetingStore *store) { store->priv = E_MEETING_STORE_GET_PRIVATE (store); @@ -682,41 +688,8 @@ meeting_store_init (EMeetingStore *store) store->priv->mutex = g_mutex_new (); store->priv->num_queries = 0; -} - -GType -e_meeting_store_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - static const GTypeInfo type_info = { - sizeof (EMeetingStoreClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) meeting_store_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EMeetingStore), - 0, /* n_preallocs */ - (GInstanceInitFunc) meeting_store_init, - NULL /* value_table */ - }; - - static const GInterfaceInfo tree_model_info = { - (GInterfaceInitFunc) ems_tree_model_init, - NULL, - NULL - }; - - type = g_type_register_static ( - GTK_TYPE_LIST_STORE, "EMeetingStore", &type_info, 0); - - g_type_add_interface_static ( - type, GTK_TYPE_TREE_MODEL, &tree_model_info); - } - return type; + e_extensible_load_extensions (E_EXTENSIBLE (store)); } GObject * diff --git a/calendar/gui/e-meeting-time-sel.c b/calendar/gui/e-meeting-time-sel.c index 19a572d6d8..dd3f49df75 100644 --- a/calendar/gui/e-meeting-time-sel.c +++ b/calendar/gui/e-meeting-time-sel.c @@ -40,6 +40,7 @@ #include "misc/e-dateedit.h" #include "e-util/e-binding.h" +#include "e-util/e-extensible.h" #include "e-util/e-util.h" #include "e-meeting-utils.h" @@ -203,7 +204,9 @@ static void row_deleted_cb (GtkTreeModel *model, GtkTreePath *path, gpointer dat static void free_busy_template_changed_cb (EMeetingTimeSelector *mts); -G_DEFINE_TYPE (EMeetingTimeSelector, e_meeting_time_selector, GTK_TYPE_TABLE) +G_DEFINE_TYPE_WITH_CODE ( + EMeetingTimeSelector, e_meeting_time_selector, GTK_TYPE_TABLE, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) static void meeting_time_selector_set_property (GObject *object, @@ -391,6 +394,8 @@ e_meeting_time_selector_init (EMeetingTimeSelector * mts) mts->fb_refresh_not = 0; mts->style_change_idle_id = 0; + + e_extensible_load_extensions (E_EXTENSIBLE (mts)); } void @@ -1415,6 +1420,10 @@ e_meeting_time_selector_refresh_free_busy (EMeetingTimeSelector *mts, gint row, GdkCursor *cursor; GdkWindow *window; + /* nothing to refresh, lets not leak a busy cursor */ + if (e_meeting_store_count_actual_attendees (mts->model) <= 0) + return; + start = mts->meeting_start_time; g_date_subtract_days (&start.date, E_MEETING_TIME_SELECTOR_FB_DAYS_BEFORE); start.hour = 0; diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c index b96ec7e093..696113987b 100644 --- a/calendar/gui/e-week-view.c +++ b/calendar/gui/e-week-view.c @@ -523,19 +523,9 @@ week_view_constructed (GObject *object) { ECalModel *model; ECalendarView *calendar_view; - EShellSettings *shell_settings; calendar_view = E_CALENDAR_VIEW (object); model = e_calendar_view_get_model (calendar_view); - shell_settings = e_cal_model_get_shell_settings (model); - - e_binding_new ( - shell_settings, "cal-compress-weekend", - object, "compress-weekend"); - - e_binding_new ( - shell_settings, "cal-show-event-end-times", - object, "show-event-end-times"); g_signal_connect_swapped ( model, "notify::week-start-day", diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 670512bb43..aa64c74564 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -76,8 +76,6 @@ static GHashTable *non_intrusive_error_table = NULL; /* Private part of the GnomeCalendar structure */ struct _GnomeCalendarPrivate { - EShellSettings *shell_settings; - ECalModel *model; /* @@ -329,16 +327,6 @@ gnome_calendar_update_time_range (GnomeCalendar *gcal) } static void -gnome_calendar_set_shell_settings (GnomeCalendar *gcal, - EShellSettings *shell_settings) -{ - g_return_if_fail (E_IS_SHELL_SETTINGS (shell_settings)); - g_return_if_fail (gcal->priv->shell_settings == NULL); - - gcal->priv->shell_settings = g_object_ref (shell_settings); -} - -static void gnome_calendar_set_property (GObject *object, guint property_id, const GValue *value, @@ -351,12 +339,6 @@ gnome_calendar_set_property (GObject *object, g_value_get_object (value)); return; - case PROP_SHELL_SETTINGS: - gnome_calendar_set_shell_settings ( - GNOME_CALENDAR (object), - g_value_get_object (value)); - return; - case PROP_VIEW: gnome_calendar_set_view ( GNOME_CALENDAR (object), @@ -392,12 +374,6 @@ gnome_calendar_get_property (GObject *object, GNOME_CALENDAR (object))); return; - case PROP_SHELL_SETTINGS: - g_value_set_object ( - value, gnome_calendar_get_shell_settings ( - GNOME_CALENDAR (object))); - return; - case PROP_VIEW: g_value_set_int ( value, gnome_calendar_get_view ( @@ -424,15 +400,12 @@ static void gnome_calendar_constructed (GObject *object) { GnomeCalendar *gcal = GNOME_CALENDAR (object); - EShellSettings *shell_settings; ECalendarView *calendar_view; ECalModel *model; GtkAdjustment *adjustment; - shell_settings = gnome_calendar_get_shell_settings (gcal); - /* Create the model for the views. */ - model = e_cal_model_calendar_new (shell_settings); + model = e_cal_model_calendar_new (); e_cal_model_set_flags (model, E_CAL_MODEL_FLAGS_EXPAND_RECURRENCES); gcal->priv->model = model; @@ -545,17 +518,6 @@ gnome_calendar_class_init (GnomeCalendarClass *class) g_object_class_install_property ( object_class, - PROP_SHELL_SETTINGS, - g_param_spec_object ( - "shell-settings", - _("Shell Settings"), - _("Application-wide settings"), - E_TYPE_SHELL_SETTINGS, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property ( - object_class, PROP_VIEW, g_param_spec_int ( "view", @@ -1462,7 +1424,7 @@ gnome_calendar_init (GnomeCalendar *gcal) priv->todo_update_lock = g_mutex_new (); priv->dn_query_lock = g_mutex_new (); - priv->current_view_type = GNOME_CAL_DAY_VIEW; + priv->current_view_type = GNOME_CAL_WORK_WEEK_VIEW; priv->range_selected = FALSE; priv->lview_select_daten_range = TRUE; @@ -1492,11 +1454,6 @@ gnome_calendar_do_dispose (GObject *object) priv = gcal->priv; - if (priv->shell_settings != NULL) { - g_object_unref (priv->shell_settings); - priv->shell_settings = NULL; - } - if (priv->model != NULL) { g_signal_handlers_disconnect_by_func ( priv->model, view_progress_cb, gcal); @@ -1906,21 +1863,9 @@ non_intrusive_error_remove(GtkWidget *w, gpointer data) } GtkWidget * -gnome_calendar_new (EShellSettings *shell_settings) +gnome_calendar_new (void) { - g_return_val_if_fail (E_IS_SHELL_SETTINGS (shell_settings), NULL); - - return g_object_new ( - GNOME_TYPE_CALENDAR, - "shell-settings", shell_settings, NULL); -} - -EShellSettings * -gnome_calendar_get_shell_settings (GnomeCalendar *gcal) -{ - g_return_val_if_fail (GNOME_IS_CALENDAR (gcal), NULL); - - return gcal->priv->shell_settings; + return g_object_new (GNOME_TYPE_CALENDAR, NULL); } ECalendar * diff --git a/calendar/gui/gnome-cal.h b/calendar/gui/gnome-cal.h index 4fa36b1446..52047a0e19 100644 --- a/calendar/gui/gnome-cal.h +++ b/calendar/gui/gnome-cal.h @@ -31,7 +31,6 @@ #include <gtk/gtk.h> #include <misc/e-calendar.h> #include <libecal/e-cal.h> -#include <shell/e-shell-settings.h> #include "e-cal-model.h" @@ -113,10 +112,8 @@ struct _GnomeCalendarClass { }; GType gnome_calendar_get_type (void); -GtkWidget * gnome_calendar_new (EShellSettings *shell_settings); +GtkWidget * gnome_calendar_new (void); void gnome_calendar_dispose (GnomeCalendar *gcal); -EShellSettings *gnome_calendar_get_shell_settings - (GnomeCalendar *gcal); ECalendar * gnome_calendar_get_date_navigator (GnomeCalendar *gcal); void gnome_calendar_set_date_navigator diff --git a/capplet/settings/Makefile.am b/capplet/settings/Makefile.am index dde24ee7ec..61b74c888b 100644 --- a/capplet/settings/Makefile.am +++ b/capplet/settings/Makefile.am @@ -1,3 +1,4 @@ +SUBDIRS = mail-autoconfig privsolib_LTLIBRARIES = libevolution-mail-settings.la diff --git a/capplet/settings/mail-account-view.c b/capplet/settings/mail-account-view.c index e97abdc6dc..a6751b9a1b 100644 --- a/capplet/settings/mail-account-view.c +++ b/capplet/settings/mail-account-view.c @@ -26,14 +26,31 @@ #include <glib/gi18n.h> #include "mail-account-view.h" +#include <libedataserverui/e-passwords.h> +#include <libedataserver/e-source-group.h> +#include <libedataserver/e-source-list.h> #include <libedataserver/e-account-list.h> #include "mail-view.h" #include "e-util/e-config.h" #include "mail/mail-config.h" +#include "mail/mail-session.h" #include "mail-guess-servers.h" struct _MailAccountViewPrivate { GtkWidget *tab_str; + + GtkWidget *calendar; + GtkWidget *gcontacts; + GtkWidget *gmail_info_label; + + gboolean is_gmail; + gboolean is_yahoo; + gboolean do_gcontacts; + gboolean do_calendar; + + char *username; + + GtkWidget *yahoo_cal_entry; }; G_DEFINE_TYPE (MailAccountView, mail_account_view, GTK_TYPE_VBOX) @@ -47,6 +64,7 @@ enum { ERROR_NO_FULLNAME = 1, ERROR_NO_EMAIL = 2, ERROR_INVALID_EMAIL = 3, + ERROR_NO_PASSWORD = 4, }; struct _dialog_errors { @@ -56,6 +74,7 @@ struct _dialog_errors { { ERROR_NO_FULLNAME, N_("Please enter your full name.") }, { ERROR_NO_EMAIL, N_("Please enter your email address.") }, { ERROR_INVALID_EMAIL, N_("The email address you have entered is invalid.") }, + { ERROR_NO_PASSWORD, N_("Please enter your password.") } }; static guint signals[LAST_SIGNAL] = { 0 }; @@ -64,12 +83,17 @@ mail_account_view_init (MailAccountView *shell) { shell->priv = g_new0(MailAccountViewPrivate, 1); + shell->priv->is_gmail = FALSE; + shell->priv->is_yahoo = FALSE; + shell->priv->username = NULL; } static void mail_account_view_finalize (GObject *object) { - /*MailAccountView *shell = (MailAccountView *)object;*/ + MailAccountView *shell = (MailAccountView *)object; + + g_free(shell->priv->username); G_OBJECT_CLASS (mail_account_view_parent_class)->finalize (object); } @@ -136,11 +160,17 @@ validate_identity (MailAccountView *view) gchar *user = (gchar *)e_account_get_string(em_account_editor_get_modified_account(view->edit), E_ACCOUNT_ID_NAME); gchar *email = (gchar *)e_account_get_string(em_account_editor_get_modified_account(view->edit), E_ACCOUNT_ID_ADDRESS); gchar *tmp; + const gchar *pwd = gtk_entry_get_text ((GtkEntry *)view->password); if (!user || !*user) return ERROR_NO_FULLNAME; if (!email || !*email) return ERROR_NO_EMAIL; + if (view->original) /* We don't query/store pwd on edit. */ + return 0; + if (!pwd || !*pwd) + return ERROR_NO_PASSWORD; + tmp = strchr(email, '@'); if (!tmp || tmp[1] == 0) return ERROR_INVALID_EMAIL; @@ -162,6 +192,260 @@ save_account (MailAccountView *view) #define PACK_BOX(w) box = gtk_hbox_new(FALSE, 0); gtk_box_pack_start((GtkBox *)box, w, FALSE, FALSE, 12); gtk_widget_show(box); #define PACK_BOXF(w) box = gtk_hbox_new(FALSE, 0); gtk_box_pack_start((GtkBox *)box, w, FALSE, FALSE, 0); gtk_widget_show(box); +#define CALENDAR_CALDAV_URI "caldav://%s@www.google.com/calendar/dav/%s/events" +#define GMAIL_CALENDAR_LOCATION "://www.google.com/calendar/feeds/" +#define CALENDAR_DEFAULT_PATH "/private/full" +#define SELECTED_CALENDARS "/apps/evolution/calendar/display/selected_calendars" +#define YAHOO_CALENDAR_LOCATION "%s@caldav.calendar.yahoo.com/dav/%s/Calendar/%s" +static gboolean +is_email (const gchar *address) +{ + /* This is supposed to check if the address's domain could be + an FQDN but alas, it's not worth the pain and suffering. */ + const gchar *at; + + at = strchr (address, '@'); + /* make sure we have an '@' and that it's not the first or last gchar */ + if (!at || at == address || *(at + 1) == '\0') + return FALSE; + + return TRUE; +} + +static gchar * +sanitize_user_mail (const gchar *user) +{ + if (!user) + return NULL; + + if (strstr (user, "%40") != NULL) { + return g_strdup (user); + } else if (!is_email (user)) { + return g_strconcat (user, "%40gmail.com", NULL); + } else { + gchar *tmp = g_malloc0 (sizeof (gchar) * (1 + strlen (user) + 2)); + gchar *at = strchr (user, '@'); + + strncpy (tmp, user, at - user); + strcat (tmp, "%40"); + strcat (tmp, at + 1); + + return tmp; + } +} + +static void +setup_yahoo_account (MailAccountView *mav) +{ + GConfClient *gconf = gconf_client_get_default (); + + mav->priv->do_gcontacts = gtk_toggle_button_get_active((GtkToggleButton *)mav->priv->gcontacts); + mav->priv->do_calendar = gtk_toggle_button_get_active((GtkToggleButton *)mav->priv->calendar); + + if (mav->priv->do_calendar) { + ESourceList *slist; + ESourceGroup *sgrp; + ESource *calendar; + char *sanitize_uname, *abs_uri, *rel_uri; + GSList *ids, *temp; + const char *email = e_account_get_string(em_account_editor_get_modified_account(mav->edit), E_ACCOUNT_ID_ADDRESS); + + slist = e_source_list_new_for_gconf (gconf, "/apps/evolution/calendar/sources"); + sgrp = e_source_list_peek_group_by_base_uri (slist, "caldav://"); + if (!sgrp) { + sgrp = e_source_list_ensure_group (slist, _("CalDAV"), "caldav://", TRUE); + } + + printf("Setting up Yahoo Calendar: list:%p CalDAVGrp: %p\n", slist, sgrp); + + /* FIXME: Not sure if we should localize 'Calendar' */ + calendar = e_source_new ("Yahoo", ""); + e_source_set_property (calendar, "ssl", "1"); + e_source_set_property (calendar, "refresh", "30"); + e_source_set_property (calendar, "refresh-type", "0"); + e_source_set_property (calendar, "auth", "1"); + e_source_set_property (calendar, "offline_sync", "1"); + e_source_set_property (calendar, "username", email); + e_source_set_property (calendar, "default", "true"); + e_source_set_property (calendar, "alarm", "true"); + + e_source_set_readonly (calendar, FALSE); + + sanitize_uname = sanitize_user_mail (email); + + abs_uri = g_strdup_printf ("caldav://%s@caldav.calendar.yahoo.com/dav/%s/Calendar/%s/", sanitize_uname, email, gtk_entry_get_text((GtkEntry *)mav->priv->yahoo_cal_entry)); + e_passwords_add_password (abs_uri, gtk_entry_get_text((GtkEntry *)mav->password)); + e_passwords_remember_password ("Calendar", abs_uri); + + rel_uri = g_strdup_printf (YAHOO_CALENDAR_LOCATION, sanitize_uname, email, gtk_entry_get_text((GtkEntry *)mav->priv->yahoo_cal_entry)); + e_source_set_relative_uri (calendar, rel_uri); + + e_source_group_add_source (sgrp, calendar, -1); + e_source_list_sync (slist, NULL); + + ids = gconf_client_get_list (gconf, SELECTED_CALENDARS, GCONF_VALUE_STRING, NULL); + ids = g_slist_append (ids, g_strdup (e_source_peek_uid (calendar))); + gconf_client_set_list (gconf, SELECTED_CALENDARS, GCONF_VALUE_STRING, ids, NULL); + temp = ids; + + for (; temp != NULL; temp = g_slist_next (temp)) + g_free (temp->data); + g_slist_free (ids); + + g_free(abs_uri); + g_free(rel_uri); + g_free(sanitize_uname); + g_object_unref(slist); + g_object_unref(sgrp); + g_object_unref(calendar); + } else + printf("Not setting up Yahoo Calendar\n"); + + if (mav->priv->do_gcontacts) { + ESourceList *slist; + ESourceGroup *sgrp; + ESource *abook; + char *rel_uri;; + + slist = e_source_list_new_for_gconf (gconf, "/apps/evolution/addressbook/sources" ); + + sgrp = e_source_list_peek_group_by_base_uri (slist, "google://"); + + /* FIXME: Not sure if we should localize 'Contacts' */ + abook = e_source_new ("Contacts", ""); + e_source_set_property (abook, "default", "true"); + e_source_set_property (abook, "offline_sync", "1"); + e_source_set_property (abook, "auth", "plain/password"); + e_source_set_property (abook, "use-ssl", "true"); + e_source_set_property (abook, "remember_password", "true"); + e_source_set_property (abook, "refresh-interval", "86400"); + e_source_set_property (abook, "completion", "true"); + e_source_set_property (abook, "username", mav->priv->username); + e_source_set_relative_uri (abook, mav->priv->username); + + rel_uri = g_strdup_printf("google://%s/", mav->priv->username); + e_passwords_add_password (rel_uri, gtk_entry_get_text((GtkEntry *)mav->password)); + e_passwords_remember_password ("Addressbook", rel_uri); + e_source_group_add_source (sgrp, abook, -1); + e_source_list_sync (slist, NULL); + + g_free(rel_uri); + g_object_unref(slist); + g_object_unref(sgrp); + g_object_unref(abook); + + + } + + g_object_unref (gconf); +} + +static void +setup_google_accounts (MailAccountView *mav) +{ + GConfClient *gconf = gconf_client_get_default (); + + mav->priv->do_gcontacts = gtk_toggle_button_get_active((GtkToggleButton *)mav->priv->gcontacts); + mav->priv->do_calendar = gtk_toggle_button_get_active((GtkToggleButton *)mav->priv->calendar); + + if (mav->priv->do_calendar) { + ESourceList *slist; + ESourceGroup *sgrp; + ESource *calendar; + char *sanitize_uname, *abs_uri, *rel_uri; + GSList *ids, *temp; + + slist = e_source_list_new_for_gconf (gconf, "/apps/evolution/calendar/sources"); + sgrp = e_source_list_peek_group_by_base_uri (slist, "google://"); + if (!sgrp) { + sgrp = e_source_list_ensure_group (slist, _("Google"), "google://", TRUE); + } + + printf("Setting up Google Calendar: list:%p GoogleGrp: %p\n", slist, sgrp); + + /* FIXME: Not sure if we should localize 'Calendar' */ + calendar = e_source_new ("Calendar", ""); + e_source_set_property (calendar, "ssl", "1"); + e_source_set_property (calendar, "refresh", "30"); + e_source_set_property (calendar, "auth", "1"); + e_source_set_property (calendar, "offline_sync", "1"); + e_source_set_property (calendar, "username", mav->priv->username); + e_source_set_property (calendar, "setup-username", mav->priv->username); + e_source_set_property (calendar, "default", "true"); + e_source_set_readonly (calendar, FALSE); + + sanitize_uname = sanitize_user_mail (mav->priv->username); + + abs_uri = g_strdup_printf (CALENDAR_CALDAV_URI, sanitize_uname, mav->priv->username); + e_source_set_absolute_uri (calendar, abs_uri); + + e_passwords_add_password (abs_uri, gtk_entry_get_text((GtkEntry *)mav->password)); + e_passwords_remember_password ("Calendar", abs_uri); + rel_uri = g_strconcat ("https", GMAIL_CALENDAR_LOCATION, sanitize_uname, CALENDAR_DEFAULT_PATH, NULL); + e_source_set_relative_uri (calendar, rel_uri); + + e_source_group_add_source (sgrp, calendar, -1); + e_source_list_sync (slist, NULL); + + ids = gconf_client_get_list (gconf, SELECTED_CALENDARS, GCONF_VALUE_STRING, NULL); + ids = g_slist_append (ids, g_strdup (e_source_peek_uid (calendar))); + gconf_client_set_list (gconf, SELECTED_CALENDARS, GCONF_VALUE_STRING, ids, NULL); + temp = ids; + + for (; temp != NULL; temp = g_slist_next (temp)) + g_free (temp->data); + g_slist_free (ids); + + g_free(abs_uri); + g_free(rel_uri); + g_free(sanitize_uname); + g_object_unref(slist); + g_object_unref(sgrp); + g_object_unref(calendar); + } else + printf("Not setting up Google Calendar\n"); + + if (mav->priv->do_gcontacts) { + ESourceList *slist; + ESourceGroup *sgrp; + ESource *abook; + char *rel_uri;; + + slist = e_source_list_new_for_gconf (gconf, "/apps/evolution/addressbook/sources" ); + + sgrp = e_source_list_peek_group_by_base_uri (slist, "google://"); + + /* FIXME: Not sure if we should localize 'Contacts' */ + abook = e_source_new ("Contacts", ""); + e_source_set_property (abook, "default", "true"); + e_source_set_property (abook, "offline_sync", "1"); + e_source_set_property (abook, "auth", "plain/password"); + e_source_set_property (abook, "use-ssl", "true"); + e_source_set_property (abook, "remember_password", "true"); + e_source_set_property (abook, "refresh-interval", "86400"); + e_source_set_property (abook, "completion", "true"); + e_source_set_property (abook, "username", mav->priv->username); + e_source_set_relative_uri (abook, mav->priv->username); + + rel_uri = g_strdup_printf("google://%s/", mav->priv->username); + e_passwords_add_password (rel_uri, gtk_entry_get_text((GtkEntry *)mav->password)); + e_passwords_remember_password ("Addressbook", rel_uri); + e_source_group_add_source (sgrp, abook, -1); + e_source_list_sync (slist, NULL); + + g_free(rel_uri); + g_object_unref(slist); + g_object_unref(sgrp); + g_object_unref(abook); + + + } + + g_object_unref (gconf); +} + +#define INDENTATION 10 + static GtkWidget * create_review (MailAccountView *view) { @@ -181,124 +465,115 @@ create_review (MailAccountView *view) gtk_label_set_markup ((GtkLabel *)label, _("<span size=\"large\" weight=\"bold\">Personal details:</span>")); gtk_widget_show (label); PACK_BOXF(label) - gtk_table_attach ((GtkTable *)table, box, 0, 1, 0, 1, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 0, 1, 0, 1, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); label = gtk_label_new (_("Name:")); gtk_widget_show (label); PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 1, 2, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 0, 1, 1, 2, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); entry = gtk_label_new(e_account_get_string(em_account_editor_get_modified_account(view->edit), E_ACCOUNT_ID_NAME)); gtk_widget_show(entry); PACK_BOX(entry) - gtk_table_attach ((GtkTable *)table, box, 1, 2, 1, 2, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 1, 2, 1, 2, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); label = gtk_label_new (_("Email address:")); gtk_widget_show (label); PACK_BOX(label) - gtk_table_attach ((GtkTable *)table, box, 0, 1, 2, 3, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 0, 1, 2, 3, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); entry = gtk_label_new (e_account_get_string(em_account_editor_get_modified_account(view->edit), E_ACCOUNT_ID_ADDRESS)); gtk_widget_show(entry); PACK_BOX(entry) - gtk_table_attach ((GtkTable *)table, box, 1, 2, 2, 3, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 1, 2, 2, 3, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); + + label = gtk_label_new (NULL); + gtk_label_set_markup ((GtkLabel *)label, _("<span size=\"large\" weight=\"bold\">Details:</span>")); + gtk_widget_show (label); + PACK_BOXF(label); + gtk_table_attach ((GtkTable *)table, box, 0, 1, 3, 4, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); label = gtk_label_new (NULL); - gtk_label_set_markup ((GtkLabel *)label, _("<span size=\"large\" weight=\"bold\">Receiving details:</span>")); + gtk_label_set_markup ((GtkLabel *)label, _("<span size=\"large\" weight=\"bold\">Receiving</span>")); gtk_widget_show (label); PACK_BOXF(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 3, 4, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 1, 2, 3, 4, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); label = gtk_label_new (_("Server type:")); gtk_widget_show (label); PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 4, 5, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 0, 1, 4, 5, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); entry = gtk_label_new (url->protocol); gtk_widget_show(entry); PACK_BOX(entry) - gtk_table_attach ((GtkTable *)table, box, 1, 2, 4, 5, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 1, 2, 4, 5, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); label = gtk_label_new (_("Server address:")); gtk_widget_show (label); PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 5, 6, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 0, 1, 5, 6, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); entry = gtk_label_new (url->host); gtk_widget_show(entry); PACK_BOX(entry); - gtk_table_attach ((GtkTable *)table, box, 1, 2, 5, 6, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 1, 2, 5, 6, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); label = gtk_label_new (_("Username:")); gtk_widget_show (label); PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 6, 7, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 0, 1, 6, 7, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); entry = gtk_label_new (url->user); gtk_widget_show(entry); PACK_BOX(entry); - gtk_table_attach ((GtkTable *)table, box, 1, 2, 6, 7, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 1, 2, 6, 7, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); label = gtk_label_new (_("Use encryption:")); gtk_widget_show (label); PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 7, 8, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 0, 1, 7, 8, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); enc = (gchar *)camel_url_get_param(url, "use_ssl"); entry = gtk_label_new (enc ? enc : _("never")); gtk_widget_show(entry); PACK_BOX(entry); - gtk_table_attach ((GtkTable *)table, box, 1, 2, 7, 8, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 1, 2, 7, 8, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); + view->priv->username = g_strdup(url->user); camel_url_free(url); uri =(gchar *) e_account_get_string(em_account_editor_get_modified_account(view->edit), E_ACCOUNT_TRANSPORT_URL); if (!uri || (url = camel_url_new(uri, NULL)) == NULL) return NULL; label = gtk_label_new (NULL); - gtk_label_set_markup ((GtkLabel *)label, _("<span size=\"large\" weight=\"bold\">Sending details:</span>")); + gtk_label_set_markup ((GtkLabel *)label, _("<span size=\"large\" weight=\"bold\">Sending</span>")); gtk_widget_show (label); PACK_BOXF(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 8, 9, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 2, 3, 3, 4, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); - label = gtk_label_new (_("Server type:")); - gtk_widget_show (label); - PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 9, 10, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); entry = gtk_label_new (url->protocol); gtk_widget_show(entry); PACK_BOX(entry) - gtk_table_attach ((GtkTable *)table, box, 1, 2, 9, 10, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 2, 3, 4, 5, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); - label = gtk_label_new (_("Server address:")); - gtk_widget_show (label); - PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 10, 11, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); entry = gtk_label_new (url->host); gtk_widget_show(entry); PACK_BOX(entry); - gtk_table_attach ((GtkTable *)table, box, 1, 2, 10, 11, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 2, 3, 5, 6, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); - label = gtk_label_new (_("Username:")); - gtk_widget_show (label); - PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 11, 12, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); entry = gtk_label_new (url->user); gtk_widget_show(entry); PACK_BOX(entry); - gtk_table_attach ((GtkTable *)table, box, 1, 2, 11, 12, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 2, 3, 6, 7, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); - label = gtk_label_new (_("Use encryption:")); - gtk_widget_show (label); - PACK_BOX(label); - gtk_table_attach ((GtkTable *)table, box, 0, 1, 12, 13, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); enc = (gchar *)camel_url_get_param(url, "use_ssl"); entry = gtk_label_new (enc ? enc : _("never")); gtk_widget_show(entry); PACK_BOX(entry); - gtk_table_attach ((GtkTable *)table, box, 1, 2, 12, 13, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach ((GtkTable *)table, box, 2, 3, 7, 8, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); /* label = gtk_label_new (_("Organization:")); gtk_widget_show (label); entry = gtk_entry_new (); gtk_widget_show(entry); - gtk_table_attach (table, label, 0, 1, 3, 4, GTK_SHRINK, GTK_SHRINK, 10, 3); - gtk_table_attach (table, entry, 1, 2, 3, 4, GTK_EXPAND|GTK_FILL, GTK_SHRINK, 10, 3); + gtk_table_attach (table, label, 0, 1, 3, 4, GTK_SHRINK, GTK_SHRINK, INDENTATION, 0); + gtk_table_attach (table, entry, 1, 2, 3, 4, GTK_EXPAND|GTK_FILL, GTK_SHRINK, INDENTATION, 0); */ gtk_widget_show(table); @@ -378,6 +653,25 @@ mav_next_pressed (GtkButton *button, MailAccountView *mav) g_free(uri); camel_url_free(url); } + + if (!mav->original) { + EAccount *account = em_account_editor_get_modified_account(mav->edit); + CamelURL *aurl; + char *surl; + /* Save the password ahead of time */ + aurl = camel_url_new (account->source->url, NULL); + surl = camel_url_to_string(aurl, CAMEL_URL_HIDE_ALL); + e_passwords_add_password (surl, gtk_entry_get_text((GtkEntry *)mav->password)); + e_passwords_remember_password ("Mail", surl); + camel_url_free(aurl); + g_free(surl); + } + + if (mav->priv->is_gmail && !mav->original) + setup_google_accounts (mav); + else if (mav->priv->is_yahoo && !mav->original) + setup_yahoo_account (mav); + em_account_editor_commit (mav->edit); g_signal_emit (mav, signals[VIEW_CLOSE], 0); return; @@ -393,7 +687,8 @@ mav_next_pressed (GtkButton *button, MailAccountView *mav) if (mav->current_page == MAV_LAST - 1) { MAVPage *page = mav->pages[mav->current_page]; GtkWidget *tmp; - + EAccount *account = em_account_editor_get_modified_account(mav->edit); + if (page->main) gtk_widget_destroy (page->main); @@ -403,6 +698,96 @@ mav_next_pressed (GtkButton *button, MailAccountView *mav) gtk_box_pack_start((GtkBox *)page->main, tmp, FALSE, FALSE, 0); gtk_widget_show(tmp); gtk_box_pack_start((GtkBox *)page->box, page->main, FALSE, FALSE, 3); + + if (mav->priv->is_gmail) { + gtk_widget_destroy (mav->priv->gcontacts); + gtk_widget_destroy (mav->priv->calendar); + gtk_widget_destroy (mav->priv->gmail_info_label); + } else if (mav->priv->is_yahoo) { + gtk_widget_destroy (mav->priv->calendar); + gtk_widget_destroy (mav->priv->gmail_info_label); + gtk_widget_destroy (mav->priv->yahoo_cal_entry); + } + + if (mav->original == NULL && (g_strrstr(account->source->url, "gmail") || + g_strrstr(account->source->url, "googlemail"))) { + /* Google accounts*/ + GtkWidget *tmp; + mav->priv->is_gmail = TRUE; + + mav->priv->gcontacts = gtk_check_button_new_with_label (_("Setup Google contacts with Evolution")); + mav->priv->calendar = gtk_check_button_new_with_label (_("Setup Google calendar with Evolution")); + + gtk_toggle_button_set_active ((GtkToggleButton *)mav->priv->gcontacts, TRUE); + gtk_toggle_button_set_active ((GtkToggleButton *)mav->priv->calendar, TRUE); + + mav->priv->gmail_info_label = gtk_label_new (_("You may need to enable IMAP access.")); + gtk_label_set_selectable ((GtkLabel *)mav->priv->gmail_info_label, TRUE); + + gtk_widget_show (mav->priv->gcontacts); + gtk_widget_show (mav->priv->calendar); + gtk_widget_show (mav->priv->gmail_info_label); + + tmp = gtk_label_new (NULL); + gtk_label_set_markup ((GtkLabel *)tmp, _("<span size=\"large\" weight=\"bold\">Google account settings:</span>")); + gtk_widget_show(tmp); + +#define PACK_IN_BOX(wid,child,num) { GtkWidget *tbox; tbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start ((GtkBox *)tbox, child, FALSE, FALSE, num); gtk_widget_show (tbox); gtk_box_pack_start ((GtkBox *)wid, tbox, FALSE, FALSE, 0); } + + PACK_IN_BOX(page->box,tmp,12); + PACK_IN_BOX(page->box,mav->priv->gcontacts,24); + PACK_IN_BOX(page->box,mav->priv->calendar,24); +#undef PACK_IN_BOX +#define PACK_IN_BOX(wid,child1,child2,num1,num2) { GtkWidget *tbox; tbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start ((GtkBox *)tbox, child1, FALSE, FALSE, num1); gtk_box_pack_start ((GtkBox *)tbox, child2, FALSE, FALSE, num2); gtk_widget_show_all (tbox); gtk_box_pack_start ((GtkBox *)wid, tbox, FALSE, FALSE, 0); } + + PACK_IN_BOX(page->box,mav->priv->gmail_info_label,gtk_link_button_new("https://mail.google.com/mail/?ui=2&shva=1#settings/fwdandpop"), 24, 0); +#undef PACK_IN_BOX + } else if (mav->original == NULL && + (g_strrstr(account->source->url, "yahoo.") || + g_strrstr(account->source->url, "ymail.") || + g_strrstr(account->source->url, "rocketmail."))) { + /* Yahoo accounts*/ + GtkWidget *tmp; + char *cal_name; + GtkWidget *tmpbox; + + mav->priv->is_yahoo = TRUE; + printf("Google account: %s\n", account->source->url); + mav->priv->calendar = gtk_check_button_new_with_label (_("Setup Yahoo calendar with Evolution")); + + gtk_toggle_button_set_active ((GtkToggleButton *)mav->priv->calendar, TRUE); + + mav->priv->gmail_info_label = gtk_label_new (_("Yahoo calendars are named as firstname_lastname. We have tried to form the calendar name. So please confirm and re-enter the calendar name if it is not correct.")); + gtk_label_set_selectable ((GtkLabel *)mav->priv->gmail_info_label, TRUE); + + gtk_widget_show (mav->priv->calendar); + gtk_widget_show (mav->priv->gmail_info_label); + + tmp = gtk_label_new (NULL); + gtk_label_set_markup ((GtkLabel *)tmp, _("<span size=\"large\" weight=\"bold\">Yahoo account settings:</span>")); + gtk_widget_show(tmp); + +#define PACK_IN_BOX(wid,child,num) { GtkWidget *tbox; tbox = gtk_hbox_new (FALSE, 0); gtk_box_pack_start ((GtkBox *)tbox, child, FALSE, FALSE, num); gtk_widget_show (tbox); gtk_box_pack_start ((GtkBox *)wid, tbox, FALSE, FALSE, 0); } +#define PACK_IN_BOX_AND_TEXT(txt, child,num) { GtkWidget *txtlbl = gtk_label_new (txt); tmpbox = gtk_hbox_new (FALSE, 12); gtk_box_pack_start ((GtkBox *)tmpbox, txtlbl, FALSE, FALSE, num); gtk_box_pack_start ((GtkBox *)tmpbox, child, FALSE, FALSE, num); gtk_widget_show_all (tmpbox);} + + PACK_IN_BOX(page->box,tmp,12); + PACK_IN_BOX(page->box,mav->priv->calendar,24); + + mav->priv->yahoo_cal_entry = gtk_entry_new (); + gtk_widget_show (mav->priv->yahoo_cal_entry); + PACK_IN_BOX(page->box,mav->priv->gmail_info_label, 24); + PACK_IN_BOX_AND_TEXT(_("Yahoo Calendar name:"), mav->priv->yahoo_cal_entry, 0); + PACK_IN_BOX(page->box, tmpbox, 24); + cal_name = g_strdup(e_account_get_string(em_account_editor_get_modified_account(mav->edit), E_ACCOUNT_ID_NAME)); + cal_name = g_strdelimit(cal_name, " ", '_'); + gtk_entry_set_text ((GtkEntry *)mav->priv->yahoo_cal_entry, cal_name); + g_free (cal_name); +#undef PACK_IN_BOX + } else { + mav->priv->is_gmail = FALSE; + mav->priv->is_yahoo = FALSE; + } + } gtk_widget_show (mav->pages[mav->current_page]->box); @@ -509,6 +894,9 @@ mav_construct_page(MailAccountView *view, MAVPageType type) gtk_box_pack_start((GtkBox *)box, tmp, FALSE, FALSE, 0); } page->next = gtk_button_new (); + gtk_widget_set_can_default (page->next, TRUE); + g_signal_connect (page->next, "hierarchy-changed", + G_CALLBACK (gtk_widget_grab_default), NULL); gtk_container_add ((GtkContainer *)page->next, box); gtk_widget_show_all(page->next); g_signal_connect(page->next, "clicked", G_CALLBACK(mav_next_pressed), view); @@ -586,9 +974,16 @@ emae_check_servers (const gchar *email) } static void +next_page (GtkWidget *entry, MailAccountView *mav) +{ + mav_next_pressed (NULL, mav); +} + +static void mail_account_view_construct (MailAccountView *view) { gint i; + EShell *shell; view->scroll = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy ((GtkScrolledWindow *)view->scroll, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); @@ -616,8 +1011,29 @@ mail_account_view_construct (MailAccountView *view) em_account_editor_check (view->edit, mail_account_pages[0].path); view->pages[0]->done = TRUE; - if (e_shell_get_express_mode (e_shell_get_default ())) + shell = e_shell_get_default (); + if (!shell || e_shell_get_express_mode (shell)) { + GtkWidget *table = em_account_editor_get_widget (view->edit, "identity_required_table"); + GtkWidget *label, *pwd; gtk_widget_hide (em_account_editor_get_widget (view->edit, "identity_optional_frame")); + + if (!view->original) { + label = gtk_label_new (_("Password:")); + pwd = gtk_entry_new (); + gtk_entry_set_visibility ((GtkEntry *)pwd, FALSE); +/* gtk_entry_set_activates_default ((GtkEntry *)pwd, TRUE); */ + g_signal_connect (pwd, "activate", G_CALLBACK (next_page), view); + gtk_widget_show(label); + gtk_widget_show(pwd); + gtk_table_attach ((GtkTable *)table, label, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); + gtk_table_attach ((GtkTable *)table, pwd, 1, 2, 2, 3, GTK_FILL|GTK_EXPAND, 0, 0, 0); + + view->password = pwd; + } + } + + /* assume the full name is known from the system */ + gtk_widget_grab_focus (em_account_editor_get_widget (view->edit, "identity_address")); } MailAccountView * diff --git a/capplet/settings/mail-account-view.h b/capplet/settings/mail-account-view.h index 618dce5361..7d5153172b 100644 --- a/capplet/settings/mail-account-view.h +++ b/capplet/settings/mail-account-view.h @@ -75,6 +75,7 @@ typedef struct _MailAccountView { GtkWidget *wpages[6]; gint current_page; struct _EMAccountEditor *edit; + GtkWidget *password; MailAccountViewPrivate *priv; } MailAccountView; diff --git a/capplet/settings/mail-autoconfig/Makefile.am b/capplet/settings/mail-autoconfig/Makefile.am new file mode 100644 index 0000000000..451101d364 --- /dev/null +++ b/capplet/settings/mail-autoconfig/Makefile.am @@ -0,0 +1,186 @@ +autoconfig_DATA = \ + abc.plala.or.jp \ + agate.plala.or.jp \ + amail.plala.or.jp \ + amber.plala.or.jp \ + a.memail.jp \ + amethyst.broba.cc \ + aol.com \ + apost.plala.or.jp \ + aqua.plala.or.jp \ + arcor.de \ + ballade.plala.or.jp \ + bay.gunmanet.ne.jp \ + bb-niigata.jp \ + bc.iij4u.or.jp \ + beige.plala.or.jp \ + blue.plala.or.jp \ + bmail.plala.or.jp \ + bolero.plala.or.jp \ + bpost.plala.or.jp \ + brown.plala.or.jp \ + camel.plala.or.jp \ + cameo.plala.or.jp \ + cc9.ne.jp \ + cek.ne.jp \ + clio.ne.jp \ + cmail.plala.or.jp \ + co1.wind.jp \ + co2.wind.jp \ + co3.wind.jp \ + cocoa.plala.or.jp \ + coda.plala.or.jp \ + comcast.net \ + concerto.plala.or.jp \ + coral.plala.or.jp \ + courante.plala.or.jp \ + cpost.plala.or.jp \ + cream.plala.or.jp \ + dance.plala.or.jp \ + dan.gunmanet.ne.jp \ + dmail.plala.or.jp \ + e23.jp \ + earthlink.net \ + ebony.plala.or.jp \ + email.plala.or.jp \ + fantasy.plala.or.jp \ + flamenco.plala.or.jp \ + fmail.plala.or.jp \ + free.fr \ + freenet.de \ + fuga.plala.or.jp \ + gmail.com \ + gmail.plala.or.jp \ + gmx.com \ + gmx.net \ + googlemail.com \ + goo.jp \ + go.tvm.ne.jp \ + grape.plala.or.jp \ + gray.plala.or.jp \ + hal.ne.jp \ + hana.or.jp \ + hotmail.co.jp \ + hotmail.com \ + hotmail.co.uk \ + hotmail.de \ + hotmail.fr \ + hotmail.it \ + ic-net.or.jp \ + iiyama-catv.ne.jp \ + imail.plala.or.jp \ + inbox.lt \ + inbox.lv \ + indigo.plala.or.jp \ + inet-shibata.or.jp \ + ivory.plala.or.jp \ + iwafune.ne.jp \ + jade.plala.or.jp \ + janis.or.jp \ + jet.ne.jp \ + ji.jet.ne.jp \ + jmail.plala.or.jp \ + k1.wind.jp \ + khaki.plala.or.jp \ + kmail.plala.or.jp \ + kokuyou.ne.jp \ + lapis.plala.or.jp \ + laposte.net \ + lemon.plala.or.jp \ + lilac.plala.or.jp \ + lime.plala.or.jp \ + live.co.jp \ + live.com \ + live.co.uk \ + live.de \ + live.fr \ + live.it \ + ma100.tiki.ne.jp \ + mac.com \ + mahoroba.ne.jp \ + mail.gunmanet.jp \ + mail.iwafune.ne.jp \ + maroon.plala.or.jp \ + me.com \ + minuet.plala.or.jp \ + ml.murakami.ne.jp \ + ml.shibata.ne.jp \ + mnet.ne.jp \ + mopera.net \ + msn.com \ + navy.plala.or.jp \ + nifty.com \ + nsat.jp \ + olive.plala.or.jp \ + online.de \ + opal.plala.or.jp \ + orange.fr \ + orange.plala.or.jp \ + orchid.plala.or.jp \ + palette.plala.or.jp \ + pal.kijimadaira.jp \ + parabox.or.jp \ + peach.plala.or.jp \ + peoplepc.com \ + plum.plala.or.jp \ + po.dcn.ne.jp \ + polka.plala.or.jp \ + pop.shibata.ne.jp \ + po.wind.jp \ + purple.plala.or.jp \ + rainbow.plala.or.jp \ + red.plala.or.jp \ + rmail.plala.or.jp \ + rondo.plala.or.jp \ + rose.plala.or.jp \ + rouge.plala.or.jp \ + ruby.plala.or.jp \ + sakunet.ne.jp \ + sea.plala.or.jp \ + sepia.plala.or.jp \ + serenade.plala.or.jp \ + silk.plala.or.jp \ + silver.plala.or.jp \ + sky.plala.or.jp \ + smail.plala.or.jp \ + snow.plala.or.jp \ + sonata.plala.or.jp \ + so.wind.ne.jp \ + suite.plala.or.jp \ + symphony.plala.or.jp \ + taupe.plala.or.jp \ + tiki.ne.jp \ + tmail.plala.or.jp \ + toccata.plala.or.jp \ + t-online.de \ + topaz.plala.or.jp \ + trio.plala.or.jp \ + umail.plala.or.jp \ + verizon.net \ + violet.plala.or.jp \ + vm.aikis.or.jp \ + vmail.plala.or.jp \ + vp.tiki.ne.jp \ + waltz.plala.or.jp \ + wanadoo.fr \ + wave.plala.or.jp \ + web.de \ + white.plala.or.jp \ + wine.plala.or.jp \ + wmail.plala.or.jp \ + xmail.plala.or.jp \ + xpost.plala.or.jp \ + xp.wind.jp \ + xs4all.nl \ + yahoo.com \ + ybb.ne.jp \ + yellow.plala.or.jp \ + ymail.plala.or.jp \ + ypost.plala.or.jp \ + zmail.plala.or.jp + +autoconfigdir = $(privdatadir)/mail-autoconfig + +EXTRA_DIST = \ + $(autoconfig_DATA) \ + README diff --git a/capplet/settings/mail-autoconfig/README b/capplet/settings/mail-autoconfig/README new file mode 100644 index 0000000000..f9fc70ccc6 --- /dev/null +++ b/capplet/settings/mail-autoconfig/README @@ -0,0 +1,12 @@ +The files in this directory are used by Evolution's control center +capplet to automatically configure email accounts. This so that you +can tell it, "My mail is example@gmail.com" and it will automatically +figure out that it must use imap.googlemail.com and smtp.googlemail.com. + +These files are copied from +http://live.mozillamessaging.com/autoconfig/ + +We should update these files periodically, maybe. + + Federico Mena Quintero + March 2010 diff --git a/capplet/settings/mail-autoconfig/a.memail.jp b/capplet/settings/mail-autoconfig/a.memail.jp new file mode 100644 index 0000000000..61eb90d86d --- /dev/null +++ b/capplet/settings/mail-autoconfig/a.memail.jp @@ -0,0 +1,1423 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="biglobe.ne.jp"> + <domain>007.biglobe.ne.jp</domain> + <domain>2001.biglobe.ne.jp</domain> + <domain>4649.biglobe.ne.jp</domain> + <domain>777.biglobe.ne.jp</domain> + <domain>a.biglobe.ne.jp</domain> + <domain>a.memail.jp</domain> + <domain>ab.biglobe.ne.jp</domain> + <domain>ab.memail.jp</domain> + <domain>abashiri.eeyo.jp</domain> + <domain>abukuma.eeyo.jp</domain> + <domain>ace.biglobe.ne.jp</domain> + <domain>ace.memail.jp</domain> + <domain>achoo.biglobe.ne.jp</domain> + <domain>achoo.memail.jp</domain> + <domain>adachi.eeyo.jp</domain> + <domain>aizu.eeyo.jp</domain> + <domain>akan.eeyo.jp</domain> + <domain>aki.eeyo.jp</domain> + <domain>akita.eeyo.jp</domain> + <domain>alien.biglobe.ne.jp</domain> + <domain>alien.memail.jp</domain> + <domain>aloha.biglobe.ne.jp</domain> + <domain>aloha.memail.jp</domain> + <domain>amakusa.eeyo.jp</domain> + <domain>amami.eeyo.jp</domain> + <domain>amethyst.biglobe.ne.jp</domain> + <domain>amethyst.memail.jp</domain> + <domain>amigo.biglobe.ne.jp</domain> + <domain>amigo.memail.jp</domain> + <domain>angel.biglobe.ne.jp</domain> + <domain>angel.memail.jp</domain> + <domain>angler.biglobe.ne.jp</domain> + <domain>angler.memail.jp</domain> + <domain>aomori.eeyo.jp</domain> + <domain>appi.eeyo.jp</domain> + <domain>apricot.biglobe.ne.jp</domain> + <domain>apricot.memail.jp</domain> + <domain>aqua.biglobe.ne.jp</domain> + <domain>aqua.memail.jp</domain> + <domain>aquamarine.biglobe.ne.jp</domain> + <domain>aquamarine.memail.jp</domain> + <domain>aquarius.biglobe.ne.jp</domain> + <domain>aquarius.memail.jp</domain> + <domain>arashiyama.eeyo.jp</domain> + <domain>aries.biglobe.ne.jp</domain> + <domain>aries.memail.jp</domain> + <domain>arima.eeyo.jp</domain> + <domain>asahikawa.eeyo.jp</domain> + <domain>asakusa.eeyo.jp</domain> + <domain>asama.eeyo.jp</domain> + <domain>ashizuri.eeyo.jp</domain> + <domain>aso.eeyo.jp</domain> + <domain>asuka.eeyo.jp</domain> + <domain>atami.eeyo.jp</domain> + <domain>atsumi.eeyo.jp</domain> + <domain>autumn.biglobe.ne.jp</domain> + <domain>autumn.memail.jp</domain> + <domain>awa.eeyo.jp</domain> + <domain>awaji.eeyo.jp</domain> + <domain>ayu.biglobe.ne.jp</domain> + <domain>ayu.memail.jp</domain> + <domain>azumino.eeyo.jp</domain> + <domain>b.biglobe.ne.jp</domain> + <domain>b.memail.jp</domain> + <domain>bamboo.biglobe.ne.jp</domain> + <domain>bamboo.memail.jp</domain> + <domain>banana.biglobe.ne.jp</domain> + <domain>banana.memail.jp</domain> + <domain>bandai.eeyo.jp</domain> + <domain>baseball.biglobe.ne.jp</domain> + <domain>baseball.memail.jp</domain> + <domain>basil.biglobe.ne.jp</domain> + <domain>basil.memail.jp</domain> + <domain>basketball.biglobe.ne.jp</domain> + <domain>basketball.memail.jp</domain> + <domain>bass.biglobe.ne.jp</domain> + <domain>bass.memail.jp</domain> + <domain>bat.biglobe.ne.jp</domain> + <domain>bat.memail.jp</domain> + <domain>bazar.de.gozarre.jp</domain> + <domain>bcs.biglobe.ne.jp</domain> + <domain>bear.biglobe.ne.jp</domain> + <domain>bear.memail.jp</domain> + <domain>beat.biglobe.ne.jp</domain> + <domain>beat.memail.jp</domain> + <domain>beautiful.biglobe.ne.jp</domain> + <domain>beautiful.memail.jp</domain> + <domain>beer.biglobe.ne.jp</domain> + <domain>beer.memail.jp</domain> + <domain>believe.biglobe.ne.jp</domain> + <domain>believe.memail.jp</domain> + <domain>bell.biglobe.ne.jp</domain> + <domain>bell.memail.jp</domain> + <domain>beppu.eeyo.jp</domain> + <domain>bike.biglobe.ne.jp</domain> + <domain>bike.memail.jp</domain> + <domain>bingo.eeyo.jp</domain> + <domain>bird.biglobe.ne.jp</domain> + <domain>bird.memail.jp</domain> + <domain>bitchu.eeyo.jp</domain> + <domain>biwako.eeyo.jp</domain> + <domain>bizen.eeyo.jp</domain> + <domain>black.biglobe.ne.jp</domain> + <domain>black.memail.jp</domain> + <domain>blue.biglobe.ne.jp</domain> + <domain>blue.memail.jp</domain> + <domain>blues.biglobe.ne.jp</domain> + <domain>blues.memail.jp</domain> + <domain>bluesky.biglobe.ne.jp</domain> + <domain>bluesky.memail.jp</domain> + <domain>bma.biglobe.ne.jp</domain> + <domain>boar.biglobe.ne.jp</domain> + <domain>boar.memail.jp</domain> + <domain>bohemian.biglobe.ne.jp</domain> + <domain>bohemian.memail.jp</domain> + <domain>boso.eeyo.jp</domain> + <domain>bowwow.biglobe.ne.jp</domain> + <domain>bowwow.memail.jp</domain> + <domain>bqd.biglobe.ne.jp</domain> + <domain>bravo.biglobe.ne.jp</domain> + <domain>bravo.memail.jp</domain> + <domain>breeze.biglobe.ne.jp</domain> + <domain>breeze.memail.jp</domain> + <domain>bridge.biglobe.ne.jp</domain> + <domain>bridge.memail.jp</domain> + <domain>bro.biglobe.ne.jp</domain> + <domain>bro.memail.jp</domain> + <domain>bungo.eeyo.jp</domain> + <domain>butterfly.biglobe.ne.jp</domain> + <domain>butterfly.memail.jp</domain> + <domain>buzen.eeyo.jp</domain> + <domain>c.biglobe.ne.jp</domain> + <domain>c.memail.jp</domain> + <domain>cafe.biglobe.ne.jp</domain> + <domain>cafe.memail.jp</domain> + <domain>cake.biglobe.ne.jp</domain> + <domain>cake.memail.jp</domain> + <domain>cancer.biglobe.ne.jp</domain> + <domain>cancer.memail.jp</domain> + <domain>candy.biglobe.ne.jp</domain> + <domain>candy.memail.jp</domain> + <domain>capricorn.biglobe.ne.jp</domain> + <domain>capricorn.memail.jp</domain> + <domain>cat.biglobe.ne.jp</domain> + <domain>cat.memail.jp</domain> + <domain>catch.biglobe.ne.jp</domain> + <domain>catch.memail.jp</domain> + <domain>center.biglobe.ne.jp</domain> + <domain>center.memail.jp</domain> + <domain>chameleon.biglobe.ne.jp</domain> + <domain>chameleon.memail.jp</domain> + <domain>cheers.biglobe.ne.jp</domain> + <domain>cheers.memail.jp</domain> + <domain>cheetah.biglobe.ne.jp</domain> + <domain>cheetah.memail.jp</domain> + <domain>cherry.biglobe.ne.jp</domain> + <domain>cherry.memail.jp</domain> + <domain>chiba.eeyo.jp</domain> + <domain>chichibu.eeyo.jp</domain> + <domain>chikugo.eeyo.jp</domain> + <domain>chikuho.eeyo.jp</domain> + <domain>chikushi.eeyo.jp</domain> + <domain>chikuzen.eeyo.jp</domain> + <domain>chita.eeyo.jp</domain> + <domain>chocolate.biglobe.ne.jp</domain> + <domain>chocolate.memail.jp</domain> + <domain>chokaisan.eeyo.jp</domain> + <domain>chu.biglobe.ne.jp</domain> + <domain>chu.memail.jp</domain> + <domain>chubu.eeyo.jp</domain> + <domain>chugoku.eeyo.jp</domain> + <domain>ciao.biglobe.ne.jp</domain> + <domain>ciao.memail.jp</domain> + <domain>classical.biglobe.ne.jp</domain> + <domain>classical.memail.jp</domain> + <domain>clever.biglobe.ne.jp</domain> + <domain>clever.memail.jp</domain> + <domain>club.biglobe.ne.jp</domain> + <domain>club.memail.jp</domain> + <domain>cobra.biglobe.ne.jp</domain> + <domain>cobra.memail.jp</domain> + <domain>comet.biglobe.ne.jp</domain> + <domain>comet.memail.jp</domain> + <domain>condor.biglobe.ne.jp</domain> + <domain>condor.memail.jp</domain> + <domain>cool.biglobe.ne.jp</domain> + <domain>cool.memail.jp</domain> + <domain>coral.biglobe.ne.jp</domain> + <domain>coral.memail.jp</domain> + <domain>cow.biglobe.ne.jp</domain> + <domain>cow.memail.jp</domain> + <domain>crow.biglobe.ne.jp</domain> + <domain>crow.memail.jp</domain> + <domain>cute.biglobe.ne.jp</domain> + <domain>cute.memail.jp</domain> + <domain>d.biglobe.ne.jp</domain> + <domain>d.memail.jp</domain> + <domain>dad.biglobe.ne.jp</domain> + <domain>dad.memail.jp</domain> + <domain>daisen.eeyo.jp</domain> + <domain>daisuki.biglobe.ne.jp</domain> + <domain>daisuki.memail.jp</domain> + <domain>dance.biglobe.ne.jp</domain> + <domain>dance.memail.jp</domain> + <domain>darling.biglobe.ne.jp</domain> + <domain>darling.memail.jp</domain> + <domain>dazaifu.eeyo.jp</domain> + <domain>de.gozarre.jp</domain> + <domain>dear.biglobe.ne.jp</domain> + <domain>dear.memail.jp</domain> + <domain>denbe.biglobe.ne.jp</domain> + <domain>denbe.memail.jp</domain> + <domain>dewa.eeyo.jp</domain> + <domain>diamond.biglobe.ne.jp</domain> + <domain>diamond.memail.jp</domain> + <domain>dog.biglobe.ne.jp</domain> + <domain>dog.memail.jp</domain> + <domain>dogo.eeyo.jp</domain> + <domain>dokidoki.biglobe.ne.jp</domain> + <domain>dokidoki.memail.jp</domain> + <domain>doll.biglobe.ne.jp</domain> + <domain>doll.memail.jp</domain> + <domain>dolphin.biglobe.ne.jp</domain> + <domain>dolphin.memail.jp</domain> + <domain>dotonbori.eeyo.jp</domain> + <domain>dr.biglobe.ne.jp</domain> + <domain>dr.memail.jp</domain> + <domain>dragon.biglobe.ne.jp</domain> + <domain>dragon.memail.jp</domain> + <domain>dreamer.biglobe.ne.jp</domain> + <domain>dreamer.memail.jp</domain> + <domain>drum.biglobe.ne.jp</domain> + <domain>drum.memail.jp</domain> + <domain>duck.biglobe.ne.jp</domain> + <domain>duck.memail.jp</domain> + <domain>dunk.biglobe.ne.jp</domain> + <domain>dunk.memail.jp</domain> + <domain>e.biglobe.ne.jp</domain> + <domain>e.memail.jp</domain> + <domain>eagle.biglobe.ne.jp</domain> + <domain>eagle.memail.jp</domain> + <domain>earth.biglobe.ne.jp</domain> + <domain>earth.memail.jp</domain> + <domain>east.biglobe.ne.jp</domain> + <domain>east.memail.jp</domain> + <domain>echigo.eeyo.jp</domain> + <domain>echizen.eeyo.jp</domain> + <domain>edo.eeyo.jp</domain> + <domain>ehime.eeyo.jp</domain> + <domain>eight.biglobe.ne.jp</domain> + <domain>eight.memail.jp</domain> + <domain>elephant.biglobe.ne.jp</domain> + <domain>elephant.memail.jp</domain> + <domain>eleven.biglobe.ne.jp</domain> + <domain>eleven.memail.jp</domain> + <domain>emerald.biglobe.ne.jp</domain> + <domain>emerald.memail.jp</domain> + <domain>energy.biglobe.ne.jp</domain> + <domain>energy.memail.jp</domain> + <domain>enjoy.biglobe.ne.jp</domain> + <domain>enjoy.memail.jp</domain> + <domain>erimo.eeyo.jp</domain> + <domain>etchu.eeyo.jp</domain> + <domain>f.biglobe.ne.jp</domain> + <domain>f.memail.jp</domain> + <domain>fairy.biglobe.ne.jp</domain> + <domain>fairy.memail.jp</domain> + <domain>falcon.biglobe.ne.jp</domain> + <domain>falcon.memail.jp</domain> + <domain>fan.biglobe.ne.jp</domain> + <domain>fan.memail.jp</domain> + <domain>fantasy.biglobe.ne.jp</domain> + <domain>fantasy.memail.jp</domain> + <domain>fawn.biglobe.ne.jp</domain> + <domain>fawn.memail.jp</domain> + <domain>ferret.biglobe.ne.jp</domain> + <domain>ferret.memail.jp</domain> + <domain>fever.biglobe.ne.jp</domain> + <domain>fever.memail.jp</domain> + <domain>fight.biglobe.ne.jp</domain> + <domain>fight.memail.jp</domain> + <domain>fine.biglobe.ne.jp</domain> + <domain>fine.memail.jp</domain> + <domain>fire.biglobe.ne.jp</domain> + <domain>fire.memail.jp</domain> + <domain>first.biglobe.ne.jp</domain> + <domain>first.memail.jp</domain> + <domain>fish.biglobe.ne.jp</domain> + <domain>fish.memail.jp</domain> + <domain>fist.biglobe.ne.jp</domain> + <domain>fist.memail.jp</domain> + <domain>five.biglobe.ne.jp</domain> + <domain>five.memail.jp</domain> + <domain>folk.biglobe.ne.jp</domain> + <domain>folk.memail.jp</domain> + <domain>force.biglobe.ne.jp</domain> + <domain>force.memail.jp</domain> + <domain>forest.biglobe.ne.jp</domain> + <domain>forest.memail.jp</domain> + <domain>four.biglobe.ne.jp</domain> + <domain>four.memail.jp</domain> + <domain>fox.biglobe.ne.jp</domain> + <domain>fox.memail.jp</domain> + <domain>fresh.biglobe.ne.jp</domain> + <domain>fresh.memail.jp</domain> + <domain>fruit.biglobe.ne.jp</domain> + <domain>fruit.memail.jp</domain> + <domain>fuji.eeyo.jp</domain> + <domain>fukui.eeyo.jp</domain> + <domain>fukuoka.eeyo.jp</domain> + <domain>fukushima.eeyo.jp</domain> + <domain>fukuyama.eeyo.jp</domain> + <domain>funky.biglobe.ne.jp</domain> + <domain>funky.memail.jp</domain> + <domain>furano.eeyo.jp</domain> + <domain>future.biglobe.ne.jp</domain> + <domain>future.memail.jp</domain> + <domain>g.biglobe.ne.jp</domain> + <domain>g.memail.jp</domain> + <domain>gaia.biglobe.ne.jp</domain> + <domain>gaia.memail.jp</domain> + <domain>galaxy.biglobe.ne.jp</domain> + <domain>galaxy.memail.jp</domain> + <domain>gambler.biglobe.ne.jp</domain> + <domain>gambler.memail.jp</domain> + <domain>gamer.biglobe.ne.jp</domain> + <domain>gamer.memail.jp</domain> + <domain>garnet.biglobe.ne.jp</domain> + <domain>garnet.memail.jp</domain> + <domain>gassan.eeyo.jp</domain> + <domain>gem.biglobe.ne.jp</domain> + <domain>gem.memail.jp</domain> + <domain>gemini.biglobe.ne.jp</domain> + <domain>gemini.memail.jp</domain> + <domain>genius.biglobe.ne.jp</domain> + <domain>genius.memail.jp</domain> + <domain>genki.biglobe.ne.jp</domain> + <domain>genki.memail.jp</domain> + <domain>george.biglobe.ne.jp</domain> + <domain>gifu.eeyo.jp</domain> + <domain>ginga.biglobe.ne.jp</domain> + <domain>ginga.memail.jp</domain> + <domain>giraffe.biglobe.ne.jp</domain> + <domain>giraffe.memail.jp</domain> + <domain>glasses.biglobe.ne.jp</domain> + <domain>glasses.memail.jp</domain> + <domain>globe.biglobe.ne.jp</domain> + <domain>globe.memail.jp</domain> + <domain>gold.biglobe.ne.jp</domain> + <domain>gold.memail.jp</domain> + <domain>golden.biglobe.ne.jp</domain> + <domain>golden.memail.jp</domain> + <domain>golf.biglobe.ne.jp</domain> + <domain>golf.memail.jp</domain> + <domain>good.biglobe.ne.jp</domain> + <domain>good.memail.jp</domain> + <domain>grace.biglobe.ne.jp</domain> + <domain>grace.memail.jp</domain> + <domain>grandma.biglobe.ne.jp</domain> + <domain>grandma.memail.jp</domain> + <domain>grandpa.biglobe.ne.jp</domain> + <domain>grandpa.memail.jp</domain> + <domain>grazie.biglobe.ne.jp</domain> + <domain>grazie.memail.jp</domain> + <domain>great.biglobe.ne.jp</domain> + <domain>great.memail.jp</domain> + <domain>green.biglobe.ne.jp</domain> + <domain>green.memail.jp</domain> + <domain>groove.biglobe.ne.jp</domain> + <domain>groove.memail.jp</domain> + <domain>guitar.biglobe.ne.jp</domain> + <domain>guitar.memail.jp</domain> + <domain>gunma.eeyo.jp</domain> + <domain>guts.biglobe.ne.jp</domain> + <domain>guts.memail.jp</domain> + <domain>guy.biglobe.ne.jp</domain> + <domain>guy.memail.jp</domain> + <domain>h.biglobe.ne.jp</domain> + <domain>h.memail.jp</domain> + <domain>hachijo.eeyo.jp</domain> + <domain>hachinohe.eeyo.jp</domain> + <domain>hachioji.eeyo.jp</domain> + <domain>hagi.eeyo.jp</domain> + <domain>hakata.eeyo.jp</domain> + <domain>hakkoda.eeyo.jp</domain> + <domain>hakodate.eeyo.jp</domain> + <domain>hakone.eeyo.jp</domain> + <domain>hakuba.eeyo.jp</domain> + <domain>hakusan.eeyo.jp</domain> + <domain>hamamatsu.eeyo.jp</domain> + <domain>hamster.biglobe.ne.jp</domain> + <domain>hamster.memail.jp</domain> + <domain>hanabi.biglobe.ne.jp</domain> + <domain>hanabi.memail.jp</domain> + <domain>handsome.biglobe.ne.jp</domain> + <domain>handsome.memail.jp</domain> + <domain>happo.eeyo.jp</domain> + <domain>happy.biglobe.ne.jp</domain> + <domain>happy.memail.jp</domain> + <domain>harajuku.eeyo.jp</domain> + <domain>harima.eeyo.jp</domain> + <domain>harmony.biglobe.ne.jp</domain> + <domain>harmony.memail.jp</domain> + <domain>hawk.biglobe.ne.jp</domain> + <domain>hawk.memail.jp</domain> + <domain>heart.biglobe.ne.jp</domain> + <domain>heart.memail.jp</domain> + <domain>hello.biglobe.ne.jp</domain> + <domain>hello.memail.jp</domain> + <domain>hey.biglobe.ne.jp</domain> + <domain>hey.memail.jp</domain> + <domain>hi.biglobe.ne.jp</domain> + <domain>hi.memail.jp</domain> + <domain>hida.eeyo.jp</domain> + <domain>hidaka.eeyo.jp</domain> + <domain>hiei.eeyo.jp</domain> + <domain>higo.eeyo.jp</domain> + <domain>himeji.eeyo.jp</domain> + <domain>hiphop.biglobe.ne.jp</domain> + <domain>hiphop.memail.jp</domain> + <domain>hippo.biglobe.ne.jp</domain> + <domain>hippo.memail.jp</domain> + <domain>hirosaki.eeyo.jp</domain> + <domain>hiroshima.eeyo.jp</domain> + <domain>hit.biglobe.ne.jp</domain> + <domain>hit.memail.jp</domain> + <domain>hita.eeyo.jp</domain> + <domain>hitachi.eeyo.jp</domain> + <domain>hizen.eeyo.jp</domain> + <domain>hobby.biglobe.ne.jp</domain> + <domain>hobby.memail.jp</domain> + <domain>hockey.biglobe.ne.jp</domain> + <domain>hockey.memail.jp</domain> + <domain>hodaka.eeyo.jp</domain> + <domain>hokkaido.eeyo.jp</domain> + <domain>hokuriku.eeyo.jp</domain> + <domain>honey.biglobe.ne.jp</domain> + <domain>honey.memail.jp</domain> + <domain>hoop.biglobe.ne.jp</domain> + <domain>hoop.memail.jp</domain> + <domain>horse.biglobe.ne.jp</domain> + <domain>horse.memail.jp</domain> + <domain>hot.biglobe.ne.jp</domain> + <domain>hot.memail.jp</domain> + <domain>houki.eeyo.jp</domain> + <domain>hyoryugai.biglobe.ne.jp</domain> + <domain>hyuga.eeyo.jp</domain> + <domain>i.biglobe.ne.jp</domain> + <domain>i.memail.jp</domain> + <domain>ibusuki.eeyo.jp</domain> + <domain>ice.biglobe.ne.jp</domain> + <domain>ice.memail.jp</domain> + <domain>ichigo.biglobe.ne.jp</domain> + <domain>ichigo.memail.jp</domain> + <domain>ichihara.eeyo.jp</domain> + <domain>iga.eeyo.jp</domain> + <domain>ikaho.eeyo.jp</domain> + <domain>ikaruga.eeyo.jp</domain> + <domain>ikebukuro.eeyo.jp</domain> + <domain>iki.eeyo.jp</domain> + <domain>imari.eeyo.jp</domain> + <domain>inaba.eeyo.jp</domain> + <domain>iriomote.eeyo.jp</domain> + <domain>iron.biglobe.ne.jp</domain> + <domain>iron.memail.jp</domain> + <domain>ise.eeyo.jp</domain> + <domain>ishigaki.eeyo.jp</domain> + <domain>ishikari.eeyo.jp</domain> + <domain>ishikawa.eeyo.jp</domain> + <domain>ishizuchi.eeyo.jp</domain> + <domain>ivory.biglobe.ne.jp</domain> + <domain>ivory.memail.jp</domain> + <domain>ivy.biglobe.ne.jp</domain> + <domain>ivy.memail.jp</domain> + <domain>iwaki.eeyo.jp</domain> + <domain>iwami.eeyo.jp</domain> + <domain>iwashiro.eeyo.jp</domain> + <domain>iwata.eeyo.jp</domain> + <domain>iwate.eeyo.jp</domain> + <domain>iyo.eeyo.jp</domain> + <domain>izu.eeyo.jp</domain> + <domain>izuhara.eeyo.jp</domain> + <domain>izumi.eeyo.jp</domain> + <domain>izumo.eeyo.jp</domain> + <domain>j.biglobe.ne.jp</domain> + <domain>j.memail.jp</domain> + <domain>jambo.biglobe.ne.jp</domain> + <domain>jambo.memail.jp</domain> + <domain>jazz.biglobe.ne.jp</domain> + <domain>jazz.memail.jp</domain> + <domain>jewel.biglobe.ne.jp</domain> + <domain>jewel.memail.jp</domain> + <domain>joetsu.eeyo.jp</domain> + <domain>joke.biglobe.ne.jp</domain> + <domain>joke.memail.jp</domain> + <domain>joy.biglobe.ne.jp</domain> + <domain>joy.memail.jp</domain> + <domain>jr.biglobe.ne.jp</domain> + <domain>jr.memail.jp</domain> + <domain>jumbo.biglobe.ne.jp</domain> + <domain>jumbo.memail.jp</domain> + <domain>jump.biglobe.ne.jp</domain> + <domain>jump.memail.jp</domain> + <domain>jungle.biglobe.ne.jp</domain> + <domain>jungle.memail.jp</domain> + <domain>jupiter.biglobe.ne.jp</domain> + <domain>jupiter.memail.jp</domain> + <domain>k.biglobe.ne.jp</domain> + <domain>k.memail.jp</domain> + <domain>kaga.eeyo.jp</domain> + <domain>kagawa.eeyo.jp</domain> + <domain>kagoshima.eeyo.jp</domain> + <domain>kai.eeyo.jp</domain> + <domain>kamakura.eeyo.jp</domain> + <domain>kamikochi.eeyo.jp</domain> + <domain>kanazawa.eeyo.jp</domain> + <domain>kanto.eeyo.jp</domain> + <domain>karatsu.eeyo.jp</domain> + <domain>karuizawa.eeyo.jp</domain> + <domain>kashima.eeyo.jp</domain> + <domain>kashiwa.eeyo.jp</domain> + <domain>kasukabe.eeyo.jp</domain> + <domain>katsuyama.eeyo.jp</domain> + <domain>kawachi.eeyo.jp</domain> + <domain>kawasaki.eeyo.jp</domain> + <domain>kazusa.eeyo.jp</domain> + <domain>kba.biglobe.ne.jp</domain> + <domain>kbd.biglobe.ne.jp</domain> + <domain>kbe.biglobe.ne.jp</domain> + <domain>kbf.biglobe.ne.jp</domain> + <domain>kbh.biglobe.ne.jp</domain> + <domain>kca.biglobe.ne.jp</domain> + <domain>kcd.biglobe.ne.jp</domain> + <domain>kce.biglobe.ne.jp</domain> + <domain>kcf.biglobe.ne.jp</domain> + <domain>kch.biglobe.ne.jp</domain> + <domain>kde.biglobe.ne.jp</domain> + <domain>kdn.biglobe.ne.jp</domain> + <domain>kdp.biglobe.ne.jp</domain> + <domain>kdr.biglobe.ne.jp</domain> + <domain>kdt.biglobe.ne.jp</domain> + <domain>keb.biglobe.ne.jp</domain> + <domain>ked.biglobe.ne.jp</domain> + <domain>keh.biglobe.ne.jp</domain> + <domain>kej.biglobe.ne.jp</domain> + <domain>kem.biglobe.ne.jp</domain> + <domain>kfa.biglobe.ne.jp</domain> + <domain>kfd.biglobe.ne.jp</domain> + <domain>kfx.biglobe.ne.jp</domain> + <domain>kfy.biglobe.ne.jp</domain> + <domain>kfz.biglobe.ne.jp</domain> + <domain>kha.biglobe.ne.jp</domain> + <domain>khc.biglobe.ne.jp</domain> + <domain>khe.biglobe.ne.jp</domain> + <domain>khf.biglobe.ne.jp</domain> + <domain>khh.biglobe.ne.jp</domain> + <domain>kib.biglobe.ne.jp</domain> + <domain>kichijoji.eeyo.jp</domain> + <domain>kif.biglobe.ne.jp</domain> + <domain>kih.biglobe.ne.jp</domain> + <domain>kii.eeyo.jp</domain> + <domain>king.biglobe.ne.jp</domain> + <domain>king.memail.jp</domain> + <domain>kinki.eeyo.jp</domain> + <domain>kinugawa.eeyo.jp</domain> + <domain>kir.biglobe.ne.jp</domain> + <domain>kirigamine.eeyo.jp</domain> + <domain>kirishima.eeyo.jp</domain> + <domain>kiso.eeyo.jp</domain> + <domain>kiss.biglobe.ne.jp</domain> + <domain>kiss.memail.jp</domain> + <domain>kitakata.eeyo.jp</domain> + <domain>kitakyushu.eeyo.jp</domain> + <domain>kitami.eeyo.jp</domain> + <domain>kiu.biglobe.ne.jp</domain> + <domain>kiyosato.eeyo.jp</domain> + <domain>kjb.biglobe.ne.jp</domain> + <domain>kjc.biglobe.ne.jp</domain> + <domain>kjd.biglobe.ne.jp</domain> + <domain>kje.biglobe.ne.jp</domain> + <domain>kjf.biglobe.ne.jp</domain> + <domain>kkd.biglobe.ne.jp</domain> + <domain>kke.biglobe.ne.jp</domain> + <domain>kkf.biglobe.ne.jp</domain> + <domain>kkh.biglobe.ne.jp</domain> + <domain>kki.biglobe.ne.jp</domain> + <domain>kmd.biglobe.ne.jp</domain> + <domain>kme.biglobe.ne.jp</domain> + <domain>kmf.biglobe.ne.jp</domain> + <domain>kmh.biglobe.ne.jp</domain> + <domain>kmj.biglobe.ne.jp</domain> + <domain>kna.biglobe.ne.jp</domain> + <domain>knd.biglobe.ne.jp</domain> + <domain>kne.biglobe.ne.jp</domain> + <domain>knh.biglobe.ne.jp</domain> + <domain>kni.biglobe.ne.jp</domain> + <domain>knight.biglobe.ne.jp</domain> + <domain>knight.memail.jp</domain> + <domain>koala.biglobe.ne.jp</domain> + <domain>koala.memail.jp</domain> + <domain>kobe.eeyo.jp</domain> + <domain>kochi.eeyo.jp</domain> + <domain>kofu.eeyo.jp</domain> + <domain>koga.eeyo.jp</domain> + <domain>koiwai.eeyo.jp</domain> + <domain>konpira.eeyo.jp</domain> + <domain>kotohira.eeyo.jp</domain> + <domain>kozuke.eeyo.jp</domain> + <domain>kpa.biglobe.ne.jp</domain> + <domain>kpb.biglobe.ne.jp</domain> + <domain>kpd.biglobe.ne.jp</domain> + <domain>kpe.biglobe.ne.jp</domain> + <domain>kph.biglobe.ne.jp</domain> + <domain>kra.biglobe.ne.jp</domain> + <domain>krb.biglobe.ne.jp</domain> + <domain>krc.biglobe.ne.jp</domain> + <domain>krd.biglobe.ne.jp</domain> + <domain>krf.biglobe.ne.jp</domain> + <domain>ksf.biglobe.ne.jp</domain> + <domain>ksh.biglobe.ne.jp</domain> + <domain>ksj.biglobe.ne.jp</domain> + <domain>ksn.biglobe.ne.jp</domain> + <domain>kss.biglobe.ne.jp</domain> + <domain>kta.biglobe.ne.jp</domain> + <domain>ktb.biglobe.ne.jp</domain> + <domain>ktd.biglobe.ne.jp</domain> + <domain>ktf.biglobe.ne.jp</domain> + <domain>ktj.biglobe.ne.jp</domain> + <domain>kub.biglobe.ne.jp</domain> + <domain>kuc.biglobe.ne.jp</domain> + <domain>kud.biglobe.ne.jp</domain> + <domain>kuf.biglobe.ne.jp</domain> + <domain>kuh.biglobe.ne.jp</domain> + <domain>kuju.eeyo.jp</domain> + <domain>kumagaya.eeyo.jp</domain> + <domain>kumamoto.eeyo.jp</domain> + <domain>kumano.eeyo.jp</domain> + <domain>kunisaki.eeyo.jp</domain> + <domain>kurama.eeyo.jp</domain> + <domain>kurashiki.eeyo.jp</domain> + <domain>kurobe.eeyo.jp</domain> + <domain>kurume.eeyo.jp</domain> + <domain>kusatsu.eeyo.jp</domain> + <domain>kushiro.eeyo.jp</domain> + <domain>kvd.biglobe.ne.jp</domain> + <domain>kve.biglobe.ne.jp</domain> + <domain>kvf.biglobe.ne.jp</domain> + <domain>kvj.biglobe.ne.jp</domain> + <domain>kvp.biglobe.ne.jp</domain> + <domain>kxa.biglobe.ne.jp</domain> + <domain>kxb.biglobe.ne.jp</domain> + <domain>kxd.biglobe.ne.jp</domain> + <domain>kxe.biglobe.ne.jp</domain> + <domain>kxf.biglobe.ne.jp</domain> + <domain>kyf.biglobe.ne.jp</domain> + <domain>kyi.biglobe.ne.jp</domain> + <domain>kyj.biglobe.ne.jp</domain> + <domain>kym.biglobe.ne.jp</domain> + <domain>kyoto.eeyo.jp</domain> + <domain>kyp.biglobe.ne.jp</domain> + <domain>kyushu.eeyo.jp</domain> + <domain>kza.biglobe.ne.jp</domain> + <domain>kzc.biglobe.ne.jp</domain> + <domain>kzd.biglobe.ne.jp</domain> + <domain>kzf.biglobe.ne.jp</domain> + <domain>kzh.biglobe.ne.jp</domain> + <domain>l.biglobe.ne.jp</domain> + <domain>l.memail.jp</domain> + <domain>lady.biglobe.ne.jp</domain> + <domain>lady.memail.jp</domain> + <domain>lake.biglobe.ne.jp</domain> + <domain>lake.memail.jp</domain> + <domain>latin.biglobe.ne.jp</domain> + <domain>latin.memail.jp</domain> + <domain>lavender.biglobe.ne.jp</domain> + <domain>lavender.memail.jp</domain> + <domain>lavie.biglobe.ne.jp</domain> + <domain>lavie.memail.jp</domain> + <domain>leaf.biglobe.ne.jp</domain> + <domain>leaf.memail.jp</domain> + <domain>left.biglobe.ne.jp</domain> + <domain>left.memail.jp</domain> + <domain>lefty.biglobe.ne.jp</domain> + <domain>lefty.memail.jp</domain> + <domain>lemon.biglobe.ne.jp</domain> + <domain>lemon.memail.jp</domain> + <domain>leo.biglobe.ne.jp</domain> + <domain>leo.memail.jp</domain> + <domain>libra.biglobe.ne.jp</domain> + <domain>libra.memail.jp</domain> + <domain>lily.biglobe.ne.jp</domain> + <domain>lily.memail.jp</domain> + <domain>lime.biglobe.ne.jp</domain> + <domain>lime.memail.jp</domain> + <domain>lion.biglobe.ne.jp</domain> + <domain>lion.memail.jp</domain> + <domain>lonely.biglobe.ne.jp</domain> + <domain>lonely.memail.jp</domain> + <domain>long.biglobe.ne.jp</domain> + <domain>long.memail.jp</domain> + <domain>love.biglobe.ne.jp</domain> + <domain>love.memail.jp</domain> + <domain>lovelove.biglobe.ne.jp</domain> + <domain>lovelove.memail.jp</domain> + <domain>lovely.biglobe.ne.jp</domain> + <domain>lovely.memail.jp</domain> + <domain>lucky.biglobe.ne.jp</domain> + <domain>lucky.memail.jp</domain> + <domain>luna.biglobe.ne.jp</domain> + <domain>luna.memail.jp</domain> + <domain>m.biglobe.ne.jp</domain> + <domain>m.memail.jp</domain> + <domain>macho.biglobe.ne.jp</domain> + <domain>macho.memail.jp</domain> + <domain>magic.biglobe.ne.jp</domain> + <domain>magic.memail.jp</domain> + <domain>mama.biglobe.ne.jp</domain> + <domain>mama.memail.jp</domain> + <domain>mambo.biglobe.ne.jp</domain> + <domain>mambo.memail.jp</domain> + <domain>marine.biglobe.ne.jp</domain> + <domain>marine.memail.jp</domain> + <domain>maroon.biglobe.ne.jp</domain> + <domain>maroon.memail.jp</domain> + <domain>mars.biglobe.ne.jp</domain> + <domain>mars.memail.jp</domain> + <domain>matsue.eeyo.jp</domain> + <domain>matsumoto.eeyo.jp</domain> + <domain>matsusaka.eeyo.jp</domain> + <domain>matsushima.eeyo.jp</domain> + <domain>melody.biglobe.ne.jp</domain> + <domain>melody.memail.jp</domain> + <domain>melon.biglobe.ne.jp</domain> + <domain>melon.memail.jp</domain> + <domain>memoad.jp</domain> + <domain>meow.biglobe.ne.jp</domain> + <domain>meow.memail.jp</domain> + <domain>mercury.biglobe.ne.jp</domain> + <domain>mercury.memail.jp</domain> + <domain>mermaid.biglobe.ne.jp</domain> + <domain>mermaid.memail.jp</domain> + <domain>mie.eeyo.jp</domain> + <domain>mikawa.eeyo.jp</domain> + <domain>milk.biglobe.ne.jp</domain> + <domain>milk.memail.jp</domain> + <domain>mimasaka.eeyo.jp</domain> + <domain>minakami.eeyo.jp</domain> + <domain>mino.eeyo.jp</domain> + <domain>mint.biglobe.ne.jp</domain> + <domain>mint.memail.jp</domain> + <domain>miracle.biglobe.ne.jp</domain> + <domain>miracle.memail.jp</domain> + <domain>mito.eeyo.jp</domain> + <domain>miura.eeyo.jp</domain> + <domain>miyagi.eeyo.jp</domain> + <domain>miyajima.eeyo.jp</domain> + <domain>miyako.eeyo.jp</domain> + <domain>miyazaki.eeyo.jp</domain> + <domain>mocha.biglobe.ne.jp</domain> + <domain>mocha.memail.jp</domain> + <domain>mogami.eeyo.jp</domain> + <domain>momo.biglobe.ne.jp</domain> + <domain>momo.memail.jp</domain> + <domain>monkey.biglobe.ne.jp</domain> + <domain>monkey.memail.jp</domain> + <domain>moon.biglobe.ne.jp</domain> + <domain>moon.memail.jp</domain> + <domain>moonstone.biglobe.ne.jp</domain> + <domain>moonstone.memail.jp</domain> + <domain>motor.biglobe.ne.jp</domain> + <domain>motor.memail.jp</domain> + <domain>motto.biglobe.ne.jp</domain> + <domain>motto.memail.jp</domain> + <domain>mount.biglobe.ne.jp</domain> + <domain>mount.memail.jp</domain> + <domain>mouse.biglobe.ne.jp</domain> + <domain>mouse.memail.jp</domain> + <domain>mpd.biglobe.ne.jp</domain> + <domain>mqb.biglobe.ne.jp</domain> + <domain>mqc.biglobe.ne.jp</domain> + <domain>mqd.biglobe.ne.jp</domain> + <domain>mqe.biglobe.ne.jp</domain> + <domain>mqf.biglobe.ne.jp</domain> + <domain>mqg.biglobe.ne.jp</domain> + <domain>mqh.biglobe.ne.jp</domain> + <domain>mqi.biglobe.ne.jp</domain> + <domain>mqj.biglobe.ne.jp</domain> + <domain>mra.biglobe.ne.jp</domain> + <domain>mrb.biglobe.ne.jp</domain> + <domain>mrc.biglobe.ne.jp</domain> + <domain>mrd.biglobe.ne.jp</domain> + <domain>mre.biglobe.ne.jp</domain> + <domain>mrf.biglobe.ne.jp</domain> + <domain>mrg.biglobe.ne.jp</domain> + <domain>mrh.biglobe.ne.jp</domain> + <domain>mri.biglobe.ne.jp</domain> + <domain>mrj.biglobe.ne.jp</domain> + <domain>msa.biglobe.ne.jp</domain> + <domain>msb.biglobe.ne.jp</domain> + <domain>msc.biglobe.ne.jp</domain> + <domain>msd.biglobe.ne.jp</domain> + <domain>mse.biglobe.ne.jp</domain> + <domain>msf.biglobe.ne.jp</domain> + <domain>msg.biglobe.ne.jp</domain> + <domain>msh.biglobe.ne.jp</domain> + <domain>msi.biglobe.ne.jp</domain> + <domain>msj.biglobe.ne.jp</domain> + <domain>mta.biglobe.ne.jp</domain> + <domain>mtb.biglobe.ne.jp</domain> + <domain>mtc.biglobe.ne.jp</domain> + <domain>mtd.biglobe.ne.jp</domain> + <domain>mte.biglobe.ne.jp</domain> + <domain>mtf.biglobe.ne.jp</domain> + <domain>mtg.biglobe.ne.jp</domain> + <domain>mth.biglobe.ne.jp</domain> + <domain>mti.biglobe.ne.jp</domain> + <domain>mtj.biglobe.ne.jp</domain> + <domain>mua.biglobe.ne.jp</domain> + <domain>mub.biglobe.ne.jp</domain> + <domain>muc.biglobe.ne.jp</domain> + <domain>mud.biglobe.ne.jp</domain> + <domain>mue.biglobe.ne.jp</domain> + <domain>muf.biglobe.ne.jp</domain> + <domain>mug.biglobe.ne.jp</domain> + <domain>muh.biglobe.ne.jp</domain> + <domain>mui.biglobe.ne.jp</domain> + <domain>muj.biglobe.ne.jp</domain> + <domain>muroran.eeyo.jp</domain> + <domain>muroto.eeyo.jp</domain> + <domain>musashi.eeyo.jp</domain> + <domain>muscle.biglobe.ne.jp</domain> + <domain>muscle.memail.jp</domain> + <domain>mutsu.eeyo.jp</domain> + <domain>mva.biglobe.ne.jp</domain> + <domain>mvb.biglobe.ne.jp</domain> + <domain>mvc.biglobe.ne.jp</domain> + <domain>mvd.biglobe.ne.jp</domain> + <domain>mve.biglobe.ne.jp</domain> + <domain>mvf.biglobe.ne.jp</domain> + <domain>mvg.biglobe.ne.jp</domain> + <domain>mvh.biglobe.ne.jp</domain> + <domain>mvi.biglobe.ne.jp</domain> + <domain>mvj.biglobe.ne.jp</domain> + <domain>mwa.biglobe.ne.jp</domain> + <domain>mwb.biglobe.ne.jp</domain> + <domain>mwc.biglobe.ne.jp</domain> + <domain>mwd.biglobe.ne.jp</domain> + <domain>mwe.biglobe.ne.jp</domain> + <domain>myad.jp</domain> + <domain>myoko.eeyo.jp</domain> + <domain>n.biglobe.ne.jp</domain> + <domain>n.memail.jp</domain> + <domain>nada.eeyo.jp</domain> + <domain>naeba.eeyo.jp</domain> + <domain>nagano.eeyo.jp</domain> + <domain>nagaoka.eeyo.jp</domain> + <domain>nagara.eeyo.jp</domain> + <domain>nagasaki.eeyo.jp</domain> + <domain>nagato.eeyo.jp</domain> + <domain>nagoya.eeyo.jp</domain> + <domain>naniwa.eeyo.jp</domain> + <domain>nara.eeyo.jp</domain> + <domain>narashino.eeyo.jp</domain> + <domain>naruto.eeyo.jp</domain> + <domain>nasu.eeyo.jp</domain> + <domain>neko.biglobe.ne.jp</domain> + <domain>neko.memail.jp</domain> + <domain>nemuro.eeyo.jp</domain> + <domain>neptune.biglobe.ne.jp</domain> + <domain>neptune.memail.jp</domain> + <domain>nerima.eeyo.jp</domain> + <domain>nice.biglobe.ne.jp</domain> + <domain>nice.memail.jp</domain> + <domain>nigata.eeyo.jp</domain> + <domain>nikko.eeyo.jp</domain> + <domain>nine.biglobe.ne.jp</domain> + <domain>nine.memail.jp</domain> + <domain>no1.biglobe.ne.jp</domain> + <domain>no1.memail.jp</domain> + <domain>noboribetsu.eeyo.jp</domain> + <domain>noda.eeyo.jp</domain> + <domain>noodle.biglobe.ne.jp</domain> + <domain>noodle.memail.jp</domain> + <domain>north.biglobe.ne.jp</domain> + <domain>north.memail.jp</domain> + <domain>note.biglobe.ne.jp</domain> + <domain>note.memail.jp</domain> + <domain>noto.eeyo.jp</domain> + <domain>nozawa.eeyo.jp</domain> + <domain>numazu.eeyo.jp</domain> + <domain>o.biglobe.ne.jp</domain> + <domain>o.memail.jp</domain> + <domain>obihiro.eeyo.jp</domain> + <domain>octopus.biglobe.ne.jp</domain> + <domain>octopus.memail.jp</domain> + <domain>oga.eeyo.jp</domain> + <domain>ogasawara.eeyo.jp</domain> + <domain>ohara.eeyo.jp</domain> + <domain>ohu.eeyo.jp</domain> + <domain>oita.eeyo.jp</domain> + <domain>ok.biglobe.ne.jp</domain> + <domain>ok.memail.jp</domain> + <domain>okayama.eeyo.jp</domain> + <domain>oki.eeyo.jp</domain> + <domain>okinawa.eeyo.jp</domain> + <domain>ole.biglobe.ne.jp</domain> + <domain>ole.memail.jp</domain> + <domain>omi.eeyo.jp</domain> + <domain>omiya.eeyo.jp</domain> + <domain>one.biglobe.ne.jp</domain> + <domain>one.memail.jp</domain> + <domain>onomichi.eeyo.jp</domain> + <domain>opal.biglobe.ne.jp</domain> + <domain>opal.memail.jp</domain> + <domain>opera.biglobe.ne.jp</domain> + <domain>opera.memail.jp</domain> + <domain>orange.biglobe.ne.jp</domain> + <domain>orange.memail.jp</domain> + <domain>osaka.eeyo.jp</domain> + <domain>osumi.eeyo.jp</domain> + <domain>otaru.eeyo.jp</domain> + <domain>owari.eeyo.jp</domain> + <domain>owl.biglobe.ne.jp</domain> + <domain>owl.memail.jp</domain> + <domain>oyaji.biglobe.ne.jp</domain> + <domain>oyaji.memail.jp</domain> + <domain>oze.eeyo.jp</domain> + <domain>p.biglobe.ne.jp</domain> + <domain>p.memail.jp</domain> + <domain>pan.biglobe.ne.jp</domain> + <domain>pan.memail.jp</domain> + <domain>panda.biglobe.ne.jp</domain> + <domain>panda.memail.jp</domain> + <domain>pansy.biglobe.ne.jp</domain> + <domain>pansy.memail.jp</domain> + <domain>panther.biglobe.ne.jp</domain> + <domain>panther.memail.jp</domain> + <domain>papa.biglobe.ne.jp</domain> + <domain>papa.memail.jp</domain> + <domain>parapara.biglobe.ne.jp</domain> + <domain>parapara.memail.jp</domain> + <domain>passion.biglobe.ne.jp</domain> + <domain>passion.memail.jp</domain> + <domain>peace.biglobe.ne.jp</domain> + <domain>peace.memail.jp</domain> + <domain>peach.biglobe.ne.jp</domain> + <domain>peach.memail.jp</domain> + <domain>pearl.biglobe.ne.jp</domain> + <domain>pearl.memail.jp</domain> + <domain>pegasus.biglobe.ne.jp</domain> + <domain>pegasus.memail.jp</domain> + <domain>penguin.biglobe.ne.jp</domain> + <domain>penguin.memail.jp</domain> + <domain>peridot.biglobe.ne.jp</domain> + <domain>peridot.memail.jp</domain> + <domain>piano.biglobe.ne.jp</domain> + <domain>piano.memail.jp</domain> + <domain>pig.biglobe.ne.jp</domain> + <domain>pig.memail.jp</domain> + <domain>pine.biglobe.ne.jp</domain> + <domain>pine.memail.jp</domain> + <domain>pink.biglobe.ne.jp</domain> + <domain>pink.memail.jp</domain> + <domain>pisces.biglobe.ne.jp</domain> + <domain>pisces.memail.jp</domain> + <domain>piyo.biglobe.ne.jp</domain> + <domain>piyo.memail.jp</domain> + <domain>plum.biglobe.ne.jp</domain> + <domain>plum.memail.jp</domain> + <domain>pony.biglobe.ne.jp</domain> + <domain>pony.memail.jp</domain> + <domain>pops.biglobe.ne.jp</domain> + <domain>pops.memail.jp</domain> + <domain>potato.biglobe.ne.jp</domain> + <domain>potato.memail.jp</domain> + <domain>power.biglobe.ne.jp</domain> + <domain>power.memail.jp</domain> + <domain>pretty.biglobe.ne.jp</domain> + <domain>pretty.memail.jp</domain> + <domain>pride.biglobe.ne.jp</domain> + <domain>pride.memail.jp</domain> + <domain>private.biglobe.ne.jp</domain> + <domain>private.memail.jp</domain> + <domain>punk.biglobe.ne.jp</domain> + <domain>punk.memail.jp</domain> + <domain>puppy.biglobe.ne.jp</domain> + <domain>puppy.memail.jp</domain> + <domain>pure.biglobe.ne.jp</domain> + <domain>pure.memail.jp</domain> + <domain>purin.biglobe.ne.jp</domain> + <domain>purin.memail.jp</domain> + <domain>puripuri.biglobe.ne.jp</domain> + <domain>puripuri.memail.jp</domain> + <domain>q.biglobe.ne.jp</domain> + <domain>q.memail.jp</domain> + <domain>queen.biglobe.ne.jp</domain> + <domain>queen.memail.jp</domain> + <domain>r.biglobe.ne.jp</domain> + <domain>r.memail.jp</domain> + <domain>rabbit.biglobe.ne.jp</domain> + <domain>rabbit.memail.jp</domain> + <domain>raccoondog.biglobe.ne.jp</domain> + <domain>raccoondog.memail.jp</domain> + <domain>racer.biglobe.ne.jp</domain> + <domain>racer.memail.jp</domain> + <domain>rain.biglobe.ne.jp</domain> + <domain>rain.memail.jp</domain> + <domain>rainbow.biglobe.ne.jp</domain> + <domain>rainbow.memail.jp</domain> + <domain>rap.biglobe.ne.jp</domain> + <domain>rap.memail.jp</domain> + <domain>red.biglobe.ne.jp</domain> + <domain>red.memail.jp</domain> + <domain>rhythm.biglobe.ne.jp</domain> + <domain>rhythm.memail.jp</domain> + <domain>rice.biglobe.ne.jp</domain> + <domain>rice.memail.jp</domain> + <domain>rider.biglobe.ne.jp</domain> + <domain>rider.memail.jp</domain> + <domain>right.biglobe.ne.jp</domain> + <domain>right.memail.jp</domain> + <domain>rikuchu.eeyo.jp</domain> + <domain>rikuzen.eeyo.jp</domain> + <domain>river.biglobe.ne.jp</domain> + <domain>river.memail.jp</domain> + <domain>robin.biglobe.ne.jp</domain> + <domain>robin.memail.jp</domain> + <domain>rock.biglobe.ne.jp</domain> + <domain>rock.memail.jp</domain> + <domain>rokko.eeyo.jp</domain> + <domain>rookie.biglobe.ne.jp</domain> + <domain>rookie.memail.jp</domain> + <domain>rose.biglobe.ne.jp</domain> + <domain>rose.memail.jp</domain> + <domain>ruby.biglobe.ne.jp</domain> + <domain>ruby.memail.jp</domain> + <domain>runrun.biglobe.ne.jp</domain> + <domain>runrun.memail.jp</domain> + <domain>ryukyu.eeyo.jp</domain> + <domain>s.biglobe.ne.jp</domain> + <domain>s.memail.jp</domain> + <domain>sado.eeyo.jp</domain> + <domain>safari.biglobe.ne.jp</domain> + <domain>safari.memail.jp</domain> + <domain>saga.eeyo.jp</domain> + <domain>sagami.eeyo.jp</domain> + <domain>sagittarius.biglobe.ne.jp</domain> + <domain>sagittarius.memail.jp</domain> + <domain>saitama.eeyo.jp</domain> + <domain>sakai.eeyo.jp</domain> + <domain>sakura.biglobe.ne.jp</domain> + <domain>sakura.memail.jp</domain> + <domain>salt.biglobe.ne.jp</domain> + <domain>salt.memail.jp</domain> + <domain>samba.biglobe.ne.jp</domain> + <domain>samba.memail.jp</domain> + <domain>sanin.eeyo.jp</domain> + <domain>sanriku.eeyo.jp</domain> + <domain>sanuki.eeyo.jp</domain> + <domain>sanyo.eeyo.jp</domain> + <domain>sapphire.biglobe.ne.jp</domain> + <domain>sapphire.memail.jp</domain> + <domain>sapporo.eeyo.jp</domain> + <domain>sasebo.eeyo.jp</domain> + <domain>sata.eeyo.jp</domain> + <domain>satsuma.eeyo.jp</domain> + <domain>saturn.biglobe.ne.jp</domain> + <domain>saturn.memail.jp</domain> + <domain>scorpio.biglobe.ne.jp</domain> + <domain>scorpio.memail.jp</domain> + <domain>sea.biglobe.ne.jp</domain> + <domain>sea.memail.jp</domain> + <domain>seabass.biglobe.ne.jp</domain> + <domain>seabass.memail.jp</domain> + <domain>second.biglobe.ne.jp</domain> + <domain>second.memail.jp</domain> + <domain>seeya.biglobe.ne.jp</domain> + <domain>seeya.memail.jp</domain> + <domain>sendai.eeyo.jp</domain> + <domain>sepia.biglobe.ne.jp</domain> + <domain>sepia.memail.jp</domain> + <domain>setagaya.eeyo.jp</domain> + <domain>setouchi.eeyo.jp</domain> + <domain>settu.eeyo.jp</domain> + <domain>seven.biglobe.ne.jp</domain> + <domain>seven.memail.jp</domain> + <domain>sf.biglobe.ne.jp</domain> + <domain>sf.memail.jp</domain> + <domain>shake.biglobe.ne.jp</domain> + <domain>shake.memail.jp</domain> + <domain>shakotan.eeyo.jp</domain> + <domain>sheep.biglobe.ne.jp</domain> + <domain>sheep.memail.jp</domain> + <domain>shibuya.eeyo.jp</domain> + <domain>shiga.eeyo.jp</domain> + <domain>shikoku.eeyo.jp</domain> + <domain>shikotsu.eeyo.jp</domain> + <domain>shima.eeyo.jp</domain> + <domain>shimane.eeyo.jp</domain> + <domain>shimanto.eeyo.jp</domain> + <domain>shimizu.eeyo.jp</domain> + <domain>shimokita.eeyo.jp</domain> + <domain>shimotsuke.eeyo.jp</domain> + <domain>shimousa.eeyo.jp</domain> + <domain>shinagawa.eeyo.jp</domain> + <domain>shinano.eeyo.jp</domain> + <domain>shine.biglobe.ne.jp</domain> + <domain>shine.memail.jp</domain> + <domain>shinjuku.eeyo.jp</domain> + <domain>shiobara.eeyo.jp</domain> + <domain>shirahama.eeyo.jp</domain> + <domain>shirakami.eeyo.jp</domain> + <domain>shiretoko.eeyo.jp</domain> + <domain>shizuoka.eeyo.jp</domain> + <domain>shonai.eeyo.jp</domain> + <domain>shonan.eeyo.jp</domain> + <domain>shoot.biglobe.ne.jp</domain> + <domain>shoot.memail.jp</domain> + <domain>short.biglobe.ne.jp</domain> + <domain>short.memail.jp</domain> + <domain>shout.biglobe.ne.jp</domain> + <domain>shout.memail.jp</domain> + <domain>shrimp.biglobe.ne.jp</domain> + <domain>shrimp.memail.jp</domain> + <domain>silver.biglobe.ne.jp</domain> + <domain>silver.memail.jp</domain> + <domain>simplem.biglobe.ne.jp</domain> + <domain>simplem.memail.jp</domain> + <domain>six.biglobe.ne.jp</domain> + <domain>six.memail.jp</domain> + <domain>ski.biglobe.ne.jp</domain> + <domain>ski.memail.jp</domain> + <domain>sky.biglobe.ne.jp</domain> + <domain>sky.memail.jp</domain> + <domain>smart.biglobe.ne.jp</domain> + <domain>smart.memail.jp</domain> + <domain>smash.biglobe.ne.jp</domain> + <domain>smash.memail.jp</domain> + <domain>smile.biglobe.ne.jp</domain> + <domain>smile.memail.jp</domain> + <domain>snake.biglobe.ne.jp</domain> + <domain>snake.memail.jp</domain> + <domain>snowboard.biglobe.ne.jp</domain> + <domain>snowboard.memail.jp</domain> + <domain>snowy.biglobe.ne.jp</domain> + <domain>snowy.memail.jp</domain> + <domain>soccer.biglobe.ne.jp</domain> + <domain>soccer.memail.jp</domain> + <domain>sodegaura.eeyo.jp</domain> + <domain>soul.biglobe.ne.jp</domain> + <domain>soul.memail.jp</domain> + <domain>south.biglobe.ne.jp</domain> + <domain>south.memail.jp</domain> + <domain>soya.eeyo.jp</domain> + <domain>space.biglobe.ne.jp</domain> + <domain>space.memail.jp</domain> + <domain>spice.biglobe.ne.jp</domain> + <domain>spice.memail.jp</domain> + <domain>spider.biglobe.ne.jp</domain> + <domain>spider.memail.jp</domain> + <domain>spring.biglobe.ne.jp</domain> + <domain>spring.memail.jp</domain> + <domain>star.biglobe.ne.jp</domain> + <domain>star.memail.jp</domain> + <domain>step.biglobe.ne.jp</domain> + <domain>step.memail.jp</domain> + <domain>stone.biglobe.ne.jp</domain> + <domain>stone.memail.jp</domain> + <domain>storm.biglobe.ne.jp</domain> + <domain>storm.memail.jp</domain> + <domain>strawberry.biglobe.ne.jp</domain> + <domain>strawberry.memail.jp</domain> + <domain>string.biglobe.ne.jp</domain> + <domain>string.memail.jp</domain> + <domain>sugar.biglobe.ne.jp</domain> + <domain>sugar.memail.jp</domain> + <domain>summer.biglobe.ne.jp</domain> + <domain>summer.memail.jp</domain> + <domain>sunflower.biglobe.ne.jp</domain> + <domain>sunflower.memail.jp</domain> + <domain>sunshine.biglobe.ne.jp</domain> + <domain>sunshine.memail.jp</domain> + <domain>suo.eeyo.jp</domain> + <domain>super.biglobe.ne.jp</domain> + <domain>super.memail.jp</domain> + <domain>surfing.biglobe.ne.jp</domain> + <domain>surfing.memail.jp</domain> + <domain>suruga.eeyo.jp</domain> + <domain>suzuka.eeyo.jp</domain> + <domain>swallow.biglobe.ne.jp</domain> + <domain>swallow.memail.jp</domain> + <domain>swan.biglobe.ne.jp</domain> + <domain>swan.memail.jp</domain> + <domain>sweet.biglobe.ne.jp</domain> + <domain>sweet.memail.jp</domain> + <domain>swing.biglobe.ne.jp</domain> + <domain>swing.memail.jp</domain> + <domain>symphony.biglobe.ne.jp</domain> + <domain>symphony.memail.jp</domain> + <domain>t.biglobe.ne.jp</domain> + <domain>t.memail.jp</domain> + <domain>tai.biglobe.ne.jp</domain> + <domain>tai.memail.jp</domain> + <domain>tajima.eeyo.jp</domain> + <domain>takachiho.eeyo.jp</domain> + <domain>takamatsu.eeyo.jp</domain> + <domain>takayama.eeyo.jp</domain> + <domain>tama.eeyo.jp</domain> + <domain>tanba.eeyo.jp</domain> + <domain>tango.biglobe.ne.jp</domain> + <domain>tango.eeyo.jp</domain> + <domain>tango.memail.jp</domain> + <domain>tanzawa.eeyo.jp</domain> + <domain>tateshina.eeyo.jp</domain> + <domain>tateyama.eeyo.jp</domain> + <domain>taurus.biglobe.ne.jp</domain> + <domain>taurus.memail.jp</domain> + <domain>tazawako.eeyo.jp</domain> + <domain>tea.biglobe.ne.jp</domain> + <domain>tea.memail.jp</domain> + <domain>techno.biglobe.ne.jp</domain> + <domain>techno.memail.jp</domain> + <domain>ten.biglobe.ne.jp</domain> + <domain>ten.memail.jp</domain> + <domain>tender.biglobe.ne.jp</domain> + <domain>tender.memail.jp</domain> + <domain>tennis.biglobe.ne.jp</domain> + <domain>tennis.memail.jp</domain> + <domain>terra.biglobe.ne.jp</domain> + <domain>terra.memail.jp</domain> + <domain>test.test.biglobe.ne.jp</domain> + <domain>thanks.biglobe.ne.jp</domain> + <domain>thanks.memail.jp</domain> + <domain>third.biglobe.ne.jp</domain> + <domain>third.memail.jp</domain> + <domain>three.biglobe.ne.jp</domain> + <domain>three.memail.jp</domain> + <domain>thunder.biglobe.ne.jp</domain> + <domain>thunder.memail.jp</domain> + <domain>tiger.biglobe.ne.jp</domain> + <domain>tiger.memail.jp</domain> + <domain>tiny.biglobe.ne.jp</domain> + <domain>tiny.memail.jp</domain> + <domain>tochigi.eeyo.jp</domain> + <domain>togakushi.eeyo.jp</domain> + <domain>tohoku.eeyo.jp</domain> + <domain>toi.eeyo.jp</domain> + <domain>tokachi.eeyo.jp</domain> + <domain>tokai.eeyo.jp</domain> + <domain>tokoro.biglobe.ne.jp</domain> + <domain>tokorozawa.eeyo.jp</domain> + <domain>tokushima.eeyo.jp</domain> + <domain>tokyo.eeyo.jp</domain> + <domain>tone.eeyo.jp</domain> + <domain>tono.eeyo.jp</domain> + <domain>topaz.biglobe.ne.jp</domain> + <domain>topaz.memail.jp</domain> + <domain>tornado.biglobe.ne.jp</domain> + <domain>tornado.memail.jp</domain> + <domain>tosa.eeyo.jp</domain> + <domain>tosu.eeyo.jp</domain> + <domain>totoumi.eeyo.jp</domain> + <domain>tottori.eeyo.jp</domain> + <domain>tough.biglobe.ne.jp</domain> + <domain>tough.memail.jp</domain> + <domain>tourmaline.biglobe.ne.jp</domain> + <domain>tourmaline.memail.jp</domain> + <domain>towada.eeyo.jp</domain> + <domain>toya.eeyo.jp</domain> + <domain>toyama.eeyo.jp</domain> + <domain>toyohashi.eeyo.jp</domain> + <domain>traveler.biglobe.ne.jp</domain> + <domain>traveler.memail.jp</domain> + <domain>tree.biglobe.ne.jp</domain> + <domain>tree.memail.jp</domain> + <domain>tropical.biglobe.ne.jp</domain> + <domain>tropical.memail.jp</domain> + <domain>tsuchiura.eeyo.jp</domain> + <domain>tsugaike.eeyo.jp</domain> + <domain>tsugaru.eeyo.jp</domain> + <domain>tsukuba.eeyo.jp</domain> + <domain>tsumagoi.eeyo.jp</domain> + <domain>tsushima.eeyo.jp</domain> + <domain>tsuwano.eeyo.jp</domain> + <domain>tsuyama.eeyo.jp</domain> + <domain>tulip.biglobe.ne.jp</domain> + <domain>tulip.memail.jp</domain> + <domain>turbo.biglobe.ne.jp</domain> + <domain>turbo.memail.jp</domain> + <domain>turquoise.biglobe.ne.jp</domain> + <domain>turquoise.memail.jp</domain> + <domain>twelve.biglobe.ne.jp</domain> + <domain>twelve.memail.jp</domain> + <domain>twist.biglobe.ne.jp</domain> + <domain>twist.memail.jp</domain> + <domain>two.biglobe.ne.jp</domain> + <domain>two.memail.jp</domain> + <domain>typhoon.biglobe.ne.jp</domain> + <domain>typhoon.memail.jp</domain> + <domain>u.biglobe.ne.jp</domain> + <domain>u.memail.jp</domain> + <domain>ueno.eeyo.jp</domain> + <domain>ugo.eeyo.jp</domain> + <domain>uji.eeyo.jp</domain> + <domain>ultra.biglobe.ne.jp</domain> + <domain>ultra.memail.jp</domain> + <domain>ume.biglobe.ne.jp</domain> + <domain>ume.memail.jp</domain> + <domain>umeda.eeyo.jp</domain> + <domain>unicorn.biglobe.ne.jp</domain> + <domain>unicorn.memail.jp</domain> + <domain>unzen.eeyo.jp</domain> + <domain>uonuma.eeyo.jp</domain> + <domain>urawa.eeyo.jp</domain> + <domain>uwa.eeyo.jp</domain> + <domain>uzen.eeyo.jp</domain> + <domain>v.biglobe.ne.jp</domain> + <domain>v.memail.jp</domain> + <domain>valuestar.biglobe.ne.jp</domain> + <domain>valuestar.memail.jp</domain> + <domain>venus.biglobe.ne.jp</domain> + <domain>venus.memail.jp</domain> + <domain>violet.biglobe.ne.jp</domain> + <domain>violet.memail.jp</domain> + <domain>virgo.biglobe.ne.jp</domain> + <domain>virgo.memail.jp</domain> + <domain>viva.biglobe.ne.jp</domain> + <domain>viva.memail.jp</domain> + <domain>volleyball.biglobe.ne.jp</domain> + <domain>volleyball.memail.jp</domain> + <domain>w.biglobe.ne.jp</domain> + <domain>w.memail.jp</domain> + <domain>wakasa.eeyo.jp</domain> + <domain>wakayama.eeyo.jp</domain> + <domain>wakkanai.eeyo.jp</domain> + <domain>west.biglobe.ne.jp</domain> + <domain>west.memail.jp</domain> + <domain>whale.biglobe.ne.jp</domain> + <domain>whale.memail.jp</domain> + <domain>white.biglobe.ne.jp</domain> + <domain>white.memail.jp</domain> + <domain>wild.biglobe.ne.jp</domain> + <domain>wild.memail.jp</domain> + <domain>winter.biglobe.ne.jp</domain> + <domain>winter.memail.jp</domain> + <domain>with.biglobe.ne.jp</domain> + <domain>with.memail.jp</domain> + <domain>wolf.biglobe.ne.jp</domain> + <domain>wolf.memail.jp</domain> + <domain>wonder.biglobe.ne.jp</domain> + <domain>wonder.memail.jp</domain> + <domain>wood.biglobe.ne.jp</domain> + <domain>wood.memail.jp</domain> + <domain>x.biglobe.ne.jp</domain> + <domain>x.memail.jp</domain> + <domain>xqb.biglobe.ne.jp</domain> + <domain>xqd.biglobe.ne.jp</domain> + <domain>xqe.biglobe.ne.jp</domain> + <domain>xqg.biglobe.ne.jp</domain> + <domain>xqh.biglobe.ne.jp</domain> + <domain>xqj.biglobe.ne.jp</domain> + <domain>xrh.biglobe.ne.jp</domain> + <domain>xrj.biglobe.ne.jp</domain> + <domain>xsj.biglobe.ne.jp</domain> + <domain>xug.biglobe.ne.jp</domain> + <domain>xui.biglobe.ne.jp</domain> + <domain>xvb.biglobe.ne.jp</domain> + <domain>xvf.biglobe.ne.jp</domain> + <domain>xvg.biglobe.ne.jp</domain> + <domain>xvh.biglobe.ne.jp</domain> + <domain>y.biglobe.ne.jp</domain> + <domain>y.memail.jp</domain> + <domain>yaeyama.eeyo.jp</domain> + <domain>yakushima.eeyo.jp</domain> + <domain>yamagata.eeyo.jp</domain> + <domain>yamaguchi.eeyo.jp</domain> + <domain>yamame.biglobe.ne.jp</domain> + <domain>yamame.memail.jp</domain> + <domain>yamanashi.eeyo.jp</domain> + <domain>yamashiro.eeyo.jp</domain> + <domain>yamato.eeyo.jp</domain> + <domain>yeah.biglobe.ne.jp</domain> + <domain>yeah.memail.jp</domain> + <domain>yes.biglobe.ne.jp</domain> + <domain>yes.memail.jp</domain> + <domain>yodogawa.eeyo.jp</domain> + <domain>yokohama.eeyo.jp</domain> + <domain>yoron.eeyo.jp</domain> + <domain>yoshino.eeyo.jp</domain> + <domain>yours.biglobe.ne.jp</domain> + <domain>yours.memail.jp</domain> + <domain>yufuin.eeyo.jp</domain> + <domain>yuzawa.eeyo.jp</domain> + <domain>z.biglobe.ne.jp</domain> + <domain>z.memail.jp</domain> + <domain>zao.eeyo.jp</domain> + <domain>zoo.biglobe.ne.jp</domain> + <domain>zoo.memail.jp</domain> + <domain>zzz.biglobe.ne.jp</domain> + <domain>zzz.memail.jp</domain> + <displayName>BIGLOBE</displayName> + <displayShortName>BIGLOBE</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.biglobe.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.biglobe.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/abc.plala.or.jp b/capplet/settings/mail-autoconfig/abc.plala.or.jp new file mode 100644 index 0000000000..549bed6cb3 --- /dev/null +++ b/capplet/settings/mail-autoconfig/abc.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="abc.plala.or.jp"> + <domain>abc.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>abc.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>abc.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/agate.plala.or.jp b/capplet/settings/mail-autoconfig/agate.plala.or.jp new file mode 100644 index 0000000000..6195f58519 --- /dev/null +++ b/capplet/settings/mail-autoconfig/agate.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="agate.plala.or.jp"> + <domain>agate.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>agate.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>agate.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/amail.plala.or.jp b/capplet/settings/mail-autoconfig/amail.plala.or.jp new file mode 100644 index 0000000000..b4bd8af5fc --- /dev/null +++ b/capplet/settings/mail-autoconfig/amail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="amail.plala.or.jp"> + <domain>amail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>amail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>amail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/amber.plala.or.jp b/capplet/settings/mail-autoconfig/amber.plala.or.jp new file mode 100644 index 0000000000..ae682933ee --- /dev/null +++ b/capplet/settings/mail-autoconfig/amber.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="amber.plala.or.jp"> + <domain>amber.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>amber.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>amber.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/amethyst.broba.cc b/capplet/settings/mail-autoconfig/amethyst.broba.cc new file mode 100644 index 0000000000..86276cc517 --- /dev/null +++ b/capplet/settings/mail-autoconfig/amethyst.broba.cc @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="broba.cc"> + <domain>garnet.broba.cc</domain> + <domain>amethyst.broba.cc</domain> + <domain>coral.broba.ccv</domain> + <domain>diamond.broba.cc</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.broba.cc</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.broba.cc</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/aol.com b/capplet/settings/mail-autoconfig/aol.com new file mode 100644 index 0000000000..7e16ab5335 --- /dev/null +++ b/capplet/settings/mail-autoconfig/aol.com @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="aol.com"> + <domain>aol.com</domain> + <domain>aim.com</domain> + + <displayName>AOL</displayName> + <displayShortName>AOL</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.aol.com</hostname> + <port>143</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.aol.com</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/apost.plala.or.jp b/capplet/settings/mail-autoconfig/apost.plala.or.jp new file mode 100644 index 0000000000..c4f936a7c1 --- /dev/null +++ b/capplet/settings/mail-autoconfig/apost.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="apost.plala.or.jp"> + <domain>apost.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>apost.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>apost.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/aqua.plala.or.jp b/capplet/settings/mail-autoconfig/aqua.plala.or.jp new file mode 100644 index 0000000000..0c78abc615 --- /dev/null +++ b/capplet/settings/mail-autoconfig/aqua.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="aqua.plala.or.jp"> + <domain>aqua.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>aqua.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>aqua.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/arcor.de b/capplet/settings/mail-autoconfig/arcor.de new file mode 100644 index 0000000000..953f669fd8 --- /dev/null +++ b/capplet/settings/mail-autoconfig/arcor.de @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="arcor.de"> + <domain>arcor.de</domain> + + <displayName>Arcor</displayName> + <displayShortName>Arcor</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.arcor.de</hostname> + <port>993</port> + <socketType>SSL</socketType> + <!-- also works: <port>143</port> <socketType>STARTTLS</socketType> --> + <authentication>plain</authentication> + <username>%EMAILLOCALPART%</username> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>mail.arcor.de</hostname> + <port>465</port> + <socketType>SSL</socketType> + <!-- also works: <port>587</port> <socketType>STARTTLS</socketType> --> + <authentication>plain</authentication> + <username>%EMAILLOCALPART%</username> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + <!-- + http://www.arcor.de/hilfe/neu/index.php?aktion=anzeigen&rubrik=040006001&id=181 + http://www.arcor.de/hilfe/neu/index.php?aktion=anzeigen&rubrik=006001003&id=1241 + Sent Folder: SentMail + Draft Folder: Drafts + + IMAP-Server is a Courier. + --> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ballade.plala.or.jp b/capplet/settings/mail-autoconfig/ballade.plala.or.jp new file mode 100644 index 0000000000..913390f9ee --- /dev/null +++ b/capplet/settings/mail-autoconfig/ballade.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ballade.plala.or.jp"> + <domain>ballade.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>ballade.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>ballade.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/bay.gunmanet.ne.jp b/capplet/settings/mail-autoconfig/bay.gunmanet.ne.jp new file mode 100644 index 0000000000..930cf3ab09 --- /dev/null +++ b/capplet/settings/mail-autoconfig/bay.gunmanet.ne.jp @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="bay.wind.ne.jp"> + <domain>bay.wind.ne.jp</domain> + <domain>bay.wind.jp</domain> + <domain>bay.wind.co.jp</domain> + <domain>bay.gunmanet.or.jp</domain> + <domain>bay.gunmanet.ne.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>bay.wind.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>bay.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/bb-niigata.jp b/capplet/settings/mail-autoconfig/bb-niigata.jp new file mode 100644 index 0000000000..174f5cbc74 --- /dev/null +++ b/capplet/settings/mail-autoconfig/bb-niigata.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="bb-niigata.jp"> + <domain>bb-niigata.jp</domain> + <displayName>BBにいがた</displayName> + <displayShortName>BB-NIIGATA</displayShortName> + <incomingServer type="pop3"> + <hostname>pop.bb-niigata.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>pop.bb-niigata.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/bc.iij4u.or.jp b/capplet/settings/mail-autoconfig/bc.iij4u.or.jp new file mode 100644 index 0000000000..baa1d0e7a0 --- /dev/null +++ b/capplet/settings/mail-autoconfig/bc.iij4u.or.jp @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="dd.iij4u.or.jp"> + <domain>dd.iij4u.or.jp</domain> + <domain>ff.iij4u.or.jp</domain> + <domain>hh.iij4u.or.jp</domain> + <domain>kk.iij4u.or.jp</domain> + <domain>nn.iij4u.or.jp</domain> + <domain>pp.iij4u.or.jp</domain> + <domain>rr.iij4u.or.jp</domain> + <domain>ss.iij4u.or.jp</domain> + <domain>bc.iij4u.or.jp</domain> + <domain>bk.iij4u.or.jp</domain> + <domain>bp.iij4u.or.jp</domain> + <domain>bu.iij4u.or.jp</domain> + <displayName>IIJ4U</displayName> + <displayShortName>IIJ4U</displayShortName> + <incomingServer type="pop3"> + <hostname>mbox.iij4u.or.jp</hostname> + <port>110</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%.%EMAILDOMAIN%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mbox.iij4u.or.jp</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%.%EMAILDOMAIN%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/beige.plala.or.jp b/capplet/settings/mail-autoconfig/beige.plala.or.jp new file mode 100644 index 0000000000..1da18eb675 --- /dev/null +++ b/capplet/settings/mail-autoconfig/beige.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="beige.plala.or.jp"> + <domain>beige.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>beige.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>beige.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/blue.plala.or.jp b/capplet/settings/mail-autoconfig/blue.plala.or.jp new file mode 100644 index 0000000000..510042ee9e --- /dev/null +++ b/capplet/settings/mail-autoconfig/blue.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="blue.plala.or.jp"> + <domain>blue.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>blue.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>blue.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/bmail.plala.or.jp b/capplet/settings/mail-autoconfig/bmail.plala.or.jp new file mode 100644 index 0000000000..f849e6e4b6 --- /dev/null +++ b/capplet/settings/mail-autoconfig/bmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="bmail.plala.or.jp"> + <domain>bmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>bmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>bmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/bolero.plala.or.jp b/capplet/settings/mail-autoconfig/bolero.plala.or.jp new file mode 100644 index 0000000000..171776a28b --- /dev/null +++ b/capplet/settings/mail-autoconfig/bolero.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="bolero.plala.or.jp"> + <domain>bolero.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>bolero.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>bolero.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/bpost.plala.or.jp b/capplet/settings/mail-autoconfig/bpost.plala.or.jp new file mode 100644 index 0000000000..24c8ebd843 --- /dev/null +++ b/capplet/settings/mail-autoconfig/bpost.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="bpost.plala.or.jp"> + <domain>bpost.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>bpost.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>bpost.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/brown.plala.or.jp b/capplet/settings/mail-autoconfig/brown.plala.or.jp new file mode 100644 index 0000000000..3bd4be2168 --- /dev/null +++ b/capplet/settings/mail-autoconfig/brown.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="brown.plala.or.jp"> + <domain>brown.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>brown.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>brown.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/camel.plala.or.jp b/capplet/settings/mail-autoconfig/camel.plala.or.jp new file mode 100644 index 0000000000..c55faa8270 --- /dev/null +++ b/capplet/settings/mail-autoconfig/camel.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="camel.plala.or.jp"> + <domain>camel.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>camel.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>camel.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/cameo.plala.or.jp b/capplet/settings/mail-autoconfig/cameo.plala.or.jp new file mode 100644 index 0000000000..7376c1fffe --- /dev/null +++ b/capplet/settings/mail-autoconfig/cameo.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="cameo.plala.or.jp"> + <domain>cameo.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>cameo.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>cameo.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/cc9.ne.jp b/capplet/settings/mail-autoconfig/cc9.ne.jp new file mode 100644 index 0000000000..28bad2cd01 --- /dev/null +++ b/capplet/settings/mail-autoconfig/cc9.ne.jp @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="cc9.ne.jp"> + <domain>cc9.ne.jp</domain> + <displayName>CC9インターネットサービス</displayName> + <displayShortName>CC9</displayShortName> + <incomingServer type="pop3"> + <hostname>pop.cc9.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.cc9.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <authentication>none</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/cek.ne.jp b/capplet/settings/mail-autoconfig/cek.ne.jp new file mode 100644 index 0000000000..0af49bd435 --- /dev/null +++ b/capplet/settings/mail-autoconfig/cek.ne.jp @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="cek.ne.jp"> + <domain>cek.ne.jp</domain> + <displayName>エコーシティー・駒ケ岳</displayName> + <displayShortName>CEK-Net</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.cek.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.cek.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <authentication>none</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/clio.ne.jp b/capplet/settings/mail-autoconfig/clio.ne.jp new file mode 100644 index 0000000000..90f1a41ba3 --- /dev/null +++ b/capplet/settings/mail-autoconfig/clio.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="clio.ne.jp"> + <domain>clio.ne.jp</domain> + <displayName>CLIO-Net移管サービス</displayName> + <displayShortName>CLIO-Net</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.clio.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.clio.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/cmail.plala.or.jp b/capplet/settings/mail-autoconfig/cmail.plala.or.jp new file mode 100644 index 0000000000..eb2558272b --- /dev/null +++ b/capplet/settings/mail-autoconfig/cmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="cmail.plala.or.jp"> + <domain>cmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>cmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>cmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/co1.wind.jp b/capplet/settings/mail-autoconfig/co1.wind.jp new file mode 100644 index 0000000000..e086cd7785 --- /dev/null +++ b/capplet/settings/mail-autoconfig/co1.wind.jp @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="co1.wind.ne.jp"> + <domain>co1.wind.ne.jp</domain> + <domain>co1.wind.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>co1.wind.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>co1.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/co2.wind.jp b/capplet/settings/mail-autoconfig/co2.wind.jp new file mode 100644 index 0000000000..010477274d --- /dev/null +++ b/capplet/settings/mail-autoconfig/co2.wind.jp @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="co2.wind.ne.jp"> + <domain>co2.wind.ne.jp</domain> + <domain>co2.wind.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>co2.wind.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>co2.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/co3.wind.jp b/capplet/settings/mail-autoconfig/co3.wind.jp new file mode 100644 index 0000000000..498384cb09 --- /dev/null +++ b/capplet/settings/mail-autoconfig/co3.wind.jp @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="co3.wind.ne.jp"> + <domain>co3.wind.ne.jp</domain> + <domain>co3.wind.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>co3.wind.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>co3.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/cocoa.plala.or.jp b/capplet/settings/mail-autoconfig/cocoa.plala.or.jp new file mode 100644 index 0000000000..5387cd368d --- /dev/null +++ b/capplet/settings/mail-autoconfig/cocoa.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="cocoa.plala.or.jp"> + <domain>cocoa.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>cocoa.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>cocoa.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/coda.plala.or.jp b/capplet/settings/mail-autoconfig/coda.plala.or.jp new file mode 100644 index 0000000000..f668775d84 --- /dev/null +++ b/capplet/settings/mail-autoconfig/coda.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="coda.plala.or.jp"> + <domain>coda.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>coda.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>coda.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/comcast.net b/capplet/settings/mail-autoconfig/comcast.net new file mode 100644 index 0000000000..56b1fa92bf --- /dev/null +++ b/capplet/settings/mail-autoconfig/comcast.net @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="comcast.net"> + <domain>comcast.net</domain> + + <displayName>Comcast</displayName> + <displayShortName>Comcast</displayShortName> + + <incomingServer type="pop3"> + <hostname>mail.comcast.net</hostname> + <port>110</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.comcast.net</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/concerto.plala.or.jp b/capplet/settings/mail-autoconfig/concerto.plala.or.jp new file mode 100644 index 0000000000..1c190b5d70 --- /dev/null +++ b/capplet/settings/mail-autoconfig/concerto.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="concerto.plala.or.jp"> + <domain>concerto.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>concerto.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>concerto.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/coral.plala.or.jp b/capplet/settings/mail-autoconfig/coral.plala.or.jp new file mode 100644 index 0000000000..1c52fcee37 --- /dev/null +++ b/capplet/settings/mail-autoconfig/coral.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="coral.plala.or.jp"> + <domain>coral.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>coral.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>coral.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/courante.plala.or.jp b/capplet/settings/mail-autoconfig/courante.plala.or.jp new file mode 100644 index 0000000000..05976ef0b3 --- /dev/null +++ b/capplet/settings/mail-autoconfig/courante.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="courante.plala.or.jp"> + <domain>courante.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>courante.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>courante.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/cpost.plala.or.jp b/capplet/settings/mail-autoconfig/cpost.plala.or.jp new file mode 100644 index 0000000000..613d3774b9 --- /dev/null +++ b/capplet/settings/mail-autoconfig/cpost.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="cpost.plala.or.jp"> + <domain>cpost.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>cpost.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>cpost.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/cream.plala.or.jp b/capplet/settings/mail-autoconfig/cream.plala.or.jp new file mode 100644 index 0000000000..16e232591b --- /dev/null +++ b/capplet/settings/mail-autoconfig/cream.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="cream.plala.or.jp"> + <domain>cream.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>cream.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>cream.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/dan.gunmanet.ne.jp b/capplet/settings/mail-autoconfig/dan.gunmanet.ne.jp new file mode 100644 index 0000000000..b027d98d04 --- /dev/null +++ b/capplet/settings/mail-autoconfig/dan.gunmanet.ne.jp @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="dan.wind.ne.jp"> + <domain>dan.wind.ne.jp</domain> + <domain>dan.wind.jp</domain> + <domain>dan.wind.co.jp</domain> + <domain>dan.gunmanet.or.jp</domain> + <domain>dan.gunmanet.ne.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>dan.wind.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>dan.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/dance.plala.or.jp b/capplet/settings/mail-autoconfig/dance.plala.or.jp new file mode 100644 index 0000000000..74f90c8fbc --- /dev/null +++ b/capplet/settings/mail-autoconfig/dance.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="dance.plala.or.jp"> + <domain>dance.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>dance.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>dance.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/dmail.plala.or.jp b/capplet/settings/mail-autoconfig/dmail.plala.or.jp new file mode 100644 index 0000000000..f742605b4f --- /dev/null +++ b/capplet/settings/mail-autoconfig/dmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="dmail.plala.or.jp"> + <domain>dmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>dmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>dmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/e23.jp b/capplet/settings/mail-autoconfig/e23.jp new file mode 100644 index 0000000000..f1f08b908a --- /dev/null +++ b/capplet/settings/mail-autoconfig/e23.jp @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="iijmio-mail.jp"> + <domain>iijmio-mail.jp</domain> + <domain>miomio.jp</domain> + <domain>miobox.jp</domain> + <domain>e23.jp</domain> + <domain>x-il.jp</domain> + <displayName>IIJmio セーフティメール</displayName> + <displayShortName>IIJmio</displayShortName> + <incomingServer type="pop3"> + <hostname>mbox.iijmio-mail.jp</hostname> + <port>110</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%.%EMAILDOMAIN%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mbox.iijmio-mail.jp</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%.%EMAILDOMAIN%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/earthlink.net b/capplet/settings/mail-autoconfig/earthlink.net new file mode 100644 index 0000000000..0f204b2bbd --- /dev/null +++ b/capplet/settings/mail-autoconfig/earthlink.net @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="earthlink.net"> + <domain>earthlink.net</domain> + + <displayName>EarthLink</displayName> + <displayShortName>EarthLink</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.earthlink.net</hostname> + <port>143</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtpauth.earthlink.net</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ebony.plala.or.jp b/capplet/settings/mail-autoconfig/ebony.plala.or.jp new file mode 100644 index 0000000000..11a275e990 --- /dev/null +++ b/capplet/settings/mail-autoconfig/ebony.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ebony.plala.or.jp"> + <domain>ebony.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>ebony.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>ebony.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/email.plala.or.jp b/capplet/settings/mail-autoconfig/email.plala.or.jp new file mode 100644 index 0000000000..45a8e0d500 --- /dev/null +++ b/capplet/settings/mail-autoconfig/email.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="email.plala.or.jp"> + <domain>email.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>email.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>email.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/fantasy.plala.or.jp b/capplet/settings/mail-autoconfig/fantasy.plala.or.jp new file mode 100644 index 0000000000..5774cc239a --- /dev/null +++ b/capplet/settings/mail-autoconfig/fantasy.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="fantasy.plala.or.jp"> + <domain>fantasy.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>fantasy.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>fantasy.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/flamenco.plala.or.jp b/capplet/settings/mail-autoconfig/flamenco.plala.or.jp new file mode 100644 index 0000000000..3a8ade7488 --- /dev/null +++ b/capplet/settings/mail-autoconfig/flamenco.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="flamenco.plala.or.jp"> + <domain>flamenco.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>flamenco.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>flamenco.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/fmail.plala.or.jp b/capplet/settings/mail-autoconfig/fmail.plala.or.jp new file mode 100644 index 0000000000..c4a4dbc14b --- /dev/null +++ b/capplet/settings/mail-autoconfig/fmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="fmail.plala.or.jp"> + <domain>fmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>fmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>fmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/free.fr b/capplet/settings/mail-autoconfig/free.fr new file mode 100644 index 0000000000..f97fe38504 --- /dev/null +++ b/capplet/settings/mail-autoconfig/free.fr @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="free.fr"> + <domain>free.fr</domain> + + <displayName>Free Telecom</displayName> + <displayShortName>free.fr</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.free.fr</hostname> + <port>143</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.free.fr</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <!-- IP-based auth: smtp server only allows connection from ISP network :-( --> + <useGlobalPreferredServer>true</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/freenet.de b/capplet/settings/mail-autoconfig/freenet.de new file mode 100644 index 0000000000..1144a80c6d --- /dev/null +++ b/capplet/settings/mail-autoconfig/freenet.de @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="freenet.de"> + <domain>freenet.de</domain> + + <displayName>Freenet Mail</displayName> + <displayShortName>Freenet</displayShortName> + + <incomingServer type="imap"> + <hostname>mx.freenet.de</hostname> + <!-- 143 STARTTLS also works --> + <port>993</port> + <socketType>SSL</socketType> + <authentication>secure</authentication> + <username>%EMAILADDRESS%</username> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>mx.freenet.de</hostname> + <!-- 587 STARTTLS also works --> + <port>465</port> + <socketType>SSL</socketType> + <authentication>secure</authentication> + <username>%EMAILADDRESS%</username> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <!-- config pages: + http://kundenservice.freenet.de/hilfe/email/programme/config/index.html + http://kundenservice.freenet.de/hilfe/email/programme/config/thunderbird/imap-thunderbird/imap/index.html + + STARTTLS and normal SSL on SSL ports both work fine (not mentioned on config pages). + CRAM-MD5 works even with SSL, very cool and exemplary, we'll do that. + --> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/fuga.plala.or.jp b/capplet/settings/mail-autoconfig/fuga.plala.or.jp new file mode 100644 index 0000000000..f41116addd --- /dev/null +++ b/capplet/settings/mail-autoconfig/fuga.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="fuga.plala.or.jp"> + <domain>fuga.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>fuga.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>fuga.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/gmail.com b/capplet/settings/mail-autoconfig/gmail.com new file mode 100644 index 0000000000..f73f7e0c7f --- /dev/null +++ b/capplet/settings/mail-autoconfig/gmail.com @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="googlemail.com"> + <domain>gmail.com</domain> + <domain>googlemail.com</domain> + + <displayName>Google Mail</displayName> + <displayShortName>GMail</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.googlemail.com</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.googlemail.com</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <enableURL url="https://mail.google.com/mail/?ui=2&shva=1#settings/fwdandpop">You need to enable IMAP access</enableURL> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/gmail.com imap b/capplet/settings/mail-autoconfig/gmail.com imap new file mode 100644 index 0000000000..f73f7e0c7f --- /dev/null +++ b/capplet/settings/mail-autoconfig/gmail.com imap @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="googlemail.com"> + <domain>gmail.com</domain> + <domain>googlemail.com</domain> + + <displayName>Google Mail</displayName> + <displayShortName>GMail</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.googlemail.com</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.googlemail.com</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <enableURL url="https://mail.google.com/mail/?ui=2&shva=1#settings/fwdandpop">You need to enable IMAP access</enableURL> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/gmail.com pop b/capplet/settings/mail-autoconfig/gmail.com pop new file mode 100644 index 0000000000..4b1a577561 --- /dev/null +++ b/capplet/settings/mail-autoconfig/gmail.com pop @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="googlemail.com"> + <domain>gmail.com</domain> + <domain>googlemail.com</domain> + + <displayName>Google Mail</displayName> + <displayShortName>GMail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop.googlemail.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <pop3> + <leaveMessagesOnServer>true</leaveMessagesOnServer> + </pop3> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.googlemail.com</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <enableURL url="https://mail.google.com/mail/?ui=2&shva=1#settings/fwdandpop">You need to enable POP access</enableURL> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/gmail.plala.or.jp b/capplet/settings/mail-autoconfig/gmail.plala.or.jp new file mode 100644 index 0000000000..d369859a43 --- /dev/null +++ b/capplet/settings/mail-autoconfig/gmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="gmail.plala.or.jp"> + <domain>gmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>gmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>gmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/gmx.com b/capplet/settings/mail-autoconfig/gmx.com new file mode 100644 index 0000000000..06782b48cc --- /dev/null +++ b/capplet/settings/mail-autoconfig/gmx.com @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="gmx.com"> + <domain>gmx.com</domain> + <displayName>GMX Freemail</displayName> + <displayShortName>GMX</displayShortName> + <incomingServer type="imap"> + <hostname>imap.gmx.com</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.gmx.com</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/gmx.net b/capplet/settings/mail-autoconfig/gmx.net new file mode 100644 index 0000000000..3a93fb9839 --- /dev/null +++ b/capplet/settings/mail-autoconfig/gmx.net @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="gmx.de"> + <domain>gmx.de</domain> + <domain>gmx.net</domain> + <domain>gmx.ch</domain> + <domain>gmx.at</domain> + <domain>gmx.li</domain> + <domain>gmx.fr</domain> + <domain>gmx.it</domain> + <domain>gmx.co.uk</domain> + <!-- siehe auch unten --> + + <displayName>GMX Freemail</displayName> + <displayShortName>GMX</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop.gmx.net</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> <!-- Kundennummer und Email-Adresse sollten beide funktionieren --> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>mail.gmx.net</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> <!-- s.o. --> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> + + <!-- Noch ne ganze Menge Vanity-Domains, die wir hier nicht hinzufügen werden: bist-eine-haelfte-von-mir.de, bleib-bei-mir.de, es-ist-liebe.de, fahr-zur-hoelle.org, ich-bin-verrueckt-nach-dir.de, ist-allein.info, ist-es-liebe.de, ist-ganz-allein.de, ist-willig.de, lass-es-geschehen.de, liebt-dich.info, loveyouforever.de, moechte-mit-dir-aufwachen.de, schmusemail.de, schreib-doch-mal-wieder.de, teilt-mit-dir-alle-geheimnisse.de, verlass-mich-nicht.de, vorsicht-scharf.de, weinenvorglueck.de, alphafrau.de, feinripptraeger.de, fettabernett.de, ist-einmalig.de, kaffeeschluerfer.com, liebt-den-mann-ihrer-chefin.de, liebt-die-frau-seines-chefs.de, maennerversteherin.com, partybombe.de, partyheld.de, polizisten-duzer.de, raubtierbaendiger.de, saeuferleber.de, tortenboxer.de, turboprinz.de, turboprinzessin.de, vorsicht-bissig.de, alpenjodel.de, das-spiel-hat-90-minuten.de, der-ball-ist-rund.net, die-genossen.de, die-optimisten.net, email-ausdrucker.de, fantasymail.de, freudenkinder.de, gentlemansclub.de, gmx-ist-cool.de, herr-der-mails.de, ich-habe-fertig.com, meine-wahrheit-deine-wahrheit.de, muskelshirt.de, quantentunnel.de, sags-per-mail.de, sonnenkinder.org, turnbeutel-vergesser.com, vollbio.de, volloeko.de, vorabend-einchecker.de, weibsvolk.org, wenns-um-email-geht.de, wir-sind-cool.org, wolke7.net, abwesend.de, baldmama.de, baldpapa.de, betriebsdirektor.de, buerotiger.de, habmalnefrage.de, hab-verschlafen.de, ich-will-net.de, kommespaeter.de, mailueberfall.de, netterchef.de, nurfuerspam.de, streber24.de, terminverpennt.de, unterderbruecke.de, will-hier-weg.de, wir-haben-nachwuchs.de, women-at-work.org, bin-wieder-da.de, coole-files.de, die-besten-bilder.de, digi-dia-freakshow.de, digital-filestore.de, digitalfoto-model-award.de, download-privat.de, gmx-topmail.de, meine-dateien.info, meine-diashow.de, meine-fotos.info, meine-urlaubsfotos.de, neue-dateien.de, office-dateien.de, peinliche-fotos.de, public-files.de, shared-files.de, topmail-files.de, war-im-urlaub.de --> diff --git a/capplet/settings/mail-autoconfig/go.tvm.ne.jp b/capplet/settings/mail-autoconfig/go.tvm.ne.jp new file mode 100644 index 0000000000..ccbb238eae --- /dev/null +++ b/capplet/settings/mail-autoconfig/go.tvm.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="go.tvm.ne.jp"> + <domain>go.tvm.ne.jp</domain> + <displayName>テレビ松本ケーブルインターネットサービス</displayName> + <displayShortName>TVM-Net</displayShortName> + <incomingServer type="pop3"> + <hostname>go.tvm.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>go.tvm.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/goo.jp b/capplet/settings/mail-autoconfig/goo.jp new file mode 100644 index 0000000000..6ddc1eadd4 --- /dev/null +++ b/capplet/settings/mail-autoconfig/goo.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="goo.jp"> + <domain>goo.jp</domain> + <displayName>goo メールアドバンス</displayName> + <displayShortName>goo</displayShortName> + <incomingServer type="pop3"> + <hostname>pop.mail.goo.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.mail.goo.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/googlemail.com b/capplet/settings/mail-autoconfig/googlemail.com new file mode 100644 index 0000000000..f73f7e0c7f --- /dev/null +++ b/capplet/settings/mail-autoconfig/googlemail.com @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="googlemail.com"> + <domain>gmail.com</domain> + <domain>googlemail.com</domain> + + <displayName>Google Mail</displayName> + <displayShortName>GMail</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.googlemail.com</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.googlemail.com</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <enableURL url="https://mail.google.com/mail/?ui=2&shva=1#settings/fwdandpop">You need to enable IMAP access</enableURL> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/grape.plala.or.jp b/capplet/settings/mail-autoconfig/grape.plala.or.jp new file mode 100644 index 0000000000..09fb378504 --- /dev/null +++ b/capplet/settings/mail-autoconfig/grape.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="grape.plala.or.jp"> + <domain>grape.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>grape.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>grape.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/gray.plala.or.jp b/capplet/settings/mail-autoconfig/gray.plala.or.jp new file mode 100644 index 0000000000..efeb3547f0 --- /dev/null +++ b/capplet/settings/mail-autoconfig/gray.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="gray.plala.or.jp"> + <domain>gray.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>gray.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>gray.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/hal.ne.jp b/capplet/settings/mail-autoconfig/hal.ne.jp new file mode 100644 index 0000000000..ad8e336c03 --- /dev/null +++ b/capplet/settings/mail-autoconfig/hal.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="hal.ne.jp"> + <domain>hal.ne.jp</domain> + <displayName>ハルインターネット</displayName> + <displayShortName>HAL</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.hal.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.hal.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/hana.or.jp b/capplet/settings/mail-autoconfig/hana.or.jp new file mode 100644 index 0000000000..b2dc624348 --- /dev/null +++ b/capplet/settings/mail-autoconfig/hana.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="hana.or.jp"> + <domain>hana.or.jp</domain> + <displayName>きたうら花ねっと</displayName> + <displayShortName>花ねっと</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.hana.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.hana.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/hotmail.co.jp b/capplet/settings/mail-autoconfig/hotmail.co.jp new file mode 100644 index 0000000000..35beb3fe57 --- /dev/null +++ b/capplet/settings/mail-autoconfig/hotmail.co.jp @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/hotmail.co.uk b/capplet/settings/mail-autoconfig/hotmail.co.uk new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/hotmail.co.uk @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/hotmail.com b/capplet/settings/mail-autoconfig/hotmail.com new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/hotmail.com @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/hotmail.de b/capplet/settings/mail-autoconfig/hotmail.de new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/hotmail.de @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/hotmail.fr b/capplet/settings/mail-autoconfig/hotmail.fr new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/hotmail.fr @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/hotmail.it b/capplet/settings/mail-autoconfig/hotmail.it new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/hotmail.it @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ic-net.or.jp b/capplet/settings/mail-autoconfig/ic-net.or.jp new file mode 100644 index 0000000000..8a89a3ec01 --- /dev/null +++ b/capplet/settings/mail-autoconfig/ic-net.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ic-net.or.jp"> + <domain>ic-net.or.jp</domain> + <displayName>IC-NET</displayName> + <displayShortName>IC-NET</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.ic-net.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.ic-net.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/iiyama-catv.ne.jp b/capplet/settings/mail-autoconfig/iiyama-catv.ne.jp new file mode 100644 index 0000000000..85f1a2725d --- /dev/null +++ b/capplet/settings/mail-autoconfig/iiyama-catv.ne.jp @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="iiyama-catv.ne.jp"> + <domain>iiyama-catv.ne.jp</domain> + <displayName>ケーブルテレビiネット飯山</displayName> + <displayShortName>iネット飯山</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.iiyama-catv.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.iiyama-catv.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <authentication>none</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/imail.plala.or.jp b/capplet/settings/mail-autoconfig/imail.plala.or.jp new file mode 100644 index 0000000000..d4c8897d22 --- /dev/null +++ b/capplet/settings/mail-autoconfig/imail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="imail.plala.or.jp"> + <domain>imail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>imail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>imail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/inbox.lt b/capplet/settings/mail-autoconfig/inbox.lt new file mode 100644 index 0000000000..c5f07659d0 --- /dev/null +++ b/capplet/settings/mail-autoconfig/inbox.lt @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="inbox.lt"> + <domain>inbox.lt</domain> + <displayName>Inbox.lt</displayName> + <displayShortName>Inbox.lt</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.inbox.lt</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <pop3> + <leaveMessagesOnServer>true</leaveMessagesOnServer> + <daysToLeaveMessagesOnServer>999</daysToLeaveMessagesOnServer> + </pop3> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.inbox.lt</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/inbox.lv b/capplet/settings/mail-autoconfig/inbox.lv new file mode 100644 index 0000000000..ac3b317315 --- /dev/null +++ b/capplet/settings/mail-autoconfig/inbox.lv @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="inbox.lv"> + <domain>inbox.lv</domain> + <displayName>Inbox.lv</displayName> + <displayShortName>Inbox.lv</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.inbox.lv</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <pop3> + <leaveMessagesOnServer>true</leaveMessagesOnServer> + <daysToLeaveMessagesOnServer>999</daysToLeaveMessagesOnServer> + </pop3> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.inbox.lv</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/indigo.plala.or.jp b/capplet/settings/mail-autoconfig/indigo.plala.or.jp new file mode 100644 index 0000000000..2d21e2d69e --- /dev/null +++ b/capplet/settings/mail-autoconfig/indigo.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="indigo.plala.or.jp"> + <domain>indigo.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>indigo.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>indigo.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/inet-shibata.or.jp b/capplet/settings/mail-autoconfig/inet-shibata.or.jp new file mode 100644 index 0000000000..8e09a319c0 --- /dev/null +++ b/capplet/settings/mail-autoconfig/inet-shibata.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="inet-shibata.or.jp"> + <domain>inet-shibata.or.jp</domain> + <displayName>インターネット新発田</displayName> + <displayShortName>INET-SHIBATA</displayShortName> + <incomingServer type="pop3"> + <hostname>po.inet-shibata.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>po.inet-shibata.or.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ivory.plala.or.jp b/capplet/settings/mail-autoconfig/ivory.plala.or.jp new file mode 100644 index 0000000000..a3a0b40c79 --- /dev/null +++ b/capplet/settings/mail-autoconfig/ivory.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ivory.plala.or.jp"> + <domain>ivory.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>ivory.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>ivory.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/iwafune.ne.jp b/capplet/settings/mail-autoconfig/iwafune.ne.jp new file mode 100644 index 0000000000..d45552f08b --- /dev/null +++ b/capplet/settings/mail-autoconfig/iwafune.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="iwafune.ne.jp"> + <domain>iwafune.ne.jp</domain> + <displayName>インターネットいわふね</displayName> + <displayShortName>IWAFUNE</displayShortName> + <incomingServer type="pop3"> + <hostname>po.iwafune.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>po.iwafune.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/jade.plala.or.jp b/capplet/settings/mail-autoconfig/jade.plala.or.jp new file mode 100644 index 0000000000..998ff0ce43 --- /dev/null +++ b/capplet/settings/mail-autoconfig/jade.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="jade.plala.or.jp"> + <domain>jade.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>jade.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>jade.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/janis.or.jp b/capplet/settings/mail-autoconfig/janis.or.jp new file mode 100644 index 0000000000..2092e32aaf --- /dev/null +++ b/capplet/settings/mail-autoconfig/janis.or.jp @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="janis.or.jp"> + <domain>janis.or.jp</domain> + <domain>azm.janis.or.jp</domain> + <domain>ckm.janis.or.jp</domain> + <domain>dhk.janis.or.jp</domain> + <domain>dia.janis.or.jp</domain> + <domain>grn.janis.or.jp</domain> + <domain>ina.janis.or.jp</domain> + <domain>kis.janis.or.jp</domain> + <domain>mhl.janis.or.jp</domain> + <domain>mid.janis.or.jp</domain> + <domain>mis.janis.or.jp</domain> + <domain>miy.janis.or.jp</domain> + <domain>ngn.janis.or.jp</domain> + <domain>nkn.janis.or.jp</domain> + <domain>osk.janis.or.jp</domain> + <domain>sas.janis.or.jp</domain> + <domain>sko.janis.or.jp</domain> + <domain>swk.janis.or.jp</domain> + <domain>tgk.janis.or.jp</domain> + <domain>tyt.janis.or.jp</domain> + <domain>ued.janis.or.jp</domain> + <domain>ytg.janis.or.jp</domain> + <displayName>JANIS</displayName> + <displayShortName>JANIS</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.%EMAILDOMAIN%</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.%EMAILDOMAIN%</hostname> + <port>25</port> + <socketType>plain</socketType> + <authentication>none</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/jet.ne.jp b/capplet/settings/mail-autoconfig/jet.ne.jp new file mode 100644 index 0000000000..dc2c794159 --- /dev/null +++ b/capplet/settings/mail-autoconfig/jet.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="jet.ne.jp"> + <domain>jet.ne.jp</domain> + <displayName>JETINTERNET</displayName> + <displayShortName>JET</displayShortName> + <incomingServer type="pop3"> + <hostname>pop.jet.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.jet.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/jet.ne.jp imap b/capplet/settings/mail-autoconfig/jet.ne.jp imap new file mode 100644 index 0000000000..2a8bdebbda --- /dev/null +++ b/capplet/settings/mail-autoconfig/jet.ne.jp imap @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="jet.ne.jp"> + <domain>jet.ne.jp</domain> + <displayName>JETINTERNET</displayName> + <displayShortName>JET</displayShortName> + <incomingServer type="imap"> + <hostname>imap.jet.ne.jp</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.jet.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/jet.ne.jp pop b/capplet/settings/mail-autoconfig/jet.ne.jp pop new file mode 100644 index 0000000000..dc2c794159 --- /dev/null +++ b/capplet/settings/mail-autoconfig/jet.ne.jp pop @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="jet.ne.jp"> + <domain>jet.ne.jp</domain> + <displayName>JETINTERNET</displayName> + <displayShortName>JET</displayShortName> + <incomingServer type="pop3"> + <hostname>pop.jet.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.jet.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ji.jet.ne.jp b/capplet/settings/mail-autoconfig/ji.jet.ne.jp new file mode 100644 index 0000000000..7c2dfa5b6a --- /dev/null +++ b/capplet/settings/mail-autoconfig/ji.jet.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ji.jet.ne.jp"> + <domain>jet.ne.jp</domain> + <displayName>JETINTERNET</displayName> + <displayShortName>JET</displayShortName> + <incomingServer type="pop3"> + <hostname>pop02.jet.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp02.jet.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/jmail.plala.or.jp b/capplet/settings/mail-autoconfig/jmail.plala.or.jp new file mode 100644 index 0000000000..a8c80b2026 --- /dev/null +++ b/capplet/settings/mail-autoconfig/jmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="jmail.plala.or.jp"> + <domain>jmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>jmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>jmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/k1.wind.jp b/capplet/settings/mail-autoconfig/k1.wind.jp new file mode 100644 index 0000000000..80bd91ee82 --- /dev/null +++ b/capplet/settings/mail-autoconfig/k1.wind.jp @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="kl.wind.ne.jp"> + <domain>kl.wind.ne.jp</domain> + <domain>kl.wind.jp</domain> + <domain>kl.wind.co.jp</domain> + <domain>kl.gunmanet.or.jp</domain> + <domain>kl.gunmanet.ne.jp</domain> + <domain>k1.wind.ne.jp</domain> + <domain>k1.wind.jp</domain> + <domain>k1.gunmanet.or.jp</domain> + <domain>k1.gunmanet.ne.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>kl.wind.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>kl.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/khaki.plala.or.jp b/capplet/settings/mail-autoconfig/khaki.plala.or.jp new file mode 100644 index 0000000000..09b562ce68 --- /dev/null +++ b/capplet/settings/mail-autoconfig/khaki.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="khaki.plala.or.jp"> + <domain>khaki.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>khaki.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>khaki.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/kmail.plala.or.jp b/capplet/settings/mail-autoconfig/kmail.plala.or.jp new file mode 100644 index 0000000000..7e88d5f88d --- /dev/null +++ b/capplet/settings/mail-autoconfig/kmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="kmail.plala.or.jp"> + <domain>kmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>kmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>kmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/kokuyou.ne.jp b/capplet/settings/mail-autoconfig/kokuyou.ne.jp new file mode 100644 index 0000000000..1a3e2a6830 --- /dev/null +++ b/capplet/settings/mail-autoconfig/kokuyou.ne.jp @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="kokuyou.ne.jp"> + <domain>kokuyou.ne.jp</domain> + <displayName>長和町黒耀の里ゆいねっと</displayName> + <displayShortName>ゆいねっと</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.kokuyou.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.kokuyou.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <authentication>none</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/lapis.plala.or.jp b/capplet/settings/mail-autoconfig/lapis.plala.or.jp new file mode 100644 index 0000000000..eb54651cb0 --- /dev/null +++ b/capplet/settings/mail-autoconfig/lapis.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="lapis.plala.or.jp"> + <domain>lapis.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>lapis.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>lapis.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/laposte.net b/capplet/settings/mail-autoconfig/laposte.net new file mode 100644 index 0000000000..e0b1bd45aa --- /dev/null +++ b/capplet/settings/mail-autoconfig/laposte.net @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="laposte.net"> + <domain>laposte.net</domain> + + <displayName>LaPoste.net</displayName> + <displayShortName>LaPoste</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.laposte.net</hostname> + <port>143</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.laposte.net</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/lemon.plala.or.jp b/capplet/settings/mail-autoconfig/lemon.plala.or.jp new file mode 100644 index 0000000000..26846d8f5c --- /dev/null +++ b/capplet/settings/mail-autoconfig/lemon.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="lemon.plala.or.jp"> + <domain>lemon.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>lemon.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>lemon.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/lilac.plala.or.jp b/capplet/settings/mail-autoconfig/lilac.plala.or.jp new file mode 100644 index 0000000000..1283c0246e --- /dev/null +++ b/capplet/settings/mail-autoconfig/lilac.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="lilac.plala.or.jp"> + <domain>lilac.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>lilac.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>lilac.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/lime.plala.or.jp b/capplet/settings/mail-autoconfig/lime.plala.or.jp new file mode 100644 index 0000000000..94e092548b --- /dev/null +++ b/capplet/settings/mail-autoconfig/lime.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="lime.plala.or.jp"> + <domain>lime.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>lime.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>lime.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/live.co.jp b/capplet/settings/mail-autoconfig/live.co.jp new file mode 100644 index 0000000000..35beb3fe57 --- /dev/null +++ b/capplet/settings/mail-autoconfig/live.co.jp @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/live.co.uk b/capplet/settings/mail-autoconfig/live.co.uk new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/live.co.uk @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/live.com b/capplet/settings/mail-autoconfig/live.com new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/live.com @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/live.de b/capplet/settings/mail-autoconfig/live.de new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/live.de @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/live.fr b/capplet/settings/mail-autoconfig/live.fr new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/live.fr @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/live.it b/capplet/settings/mail-autoconfig/live.it new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/live.it @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ma100.tiki.ne.jp b/capplet/settings/mail-autoconfig/ma100.tiki.ne.jp new file mode 100644 index 0000000000..d87f89eda9 --- /dev/null +++ b/capplet/settings/mail-autoconfig/ma100.tiki.ne.jp @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="mx1.tiki.ne.jp"> + <domain>mx1.tiki.ne.jp</domain> + <domain>mx2.et.tiki.ne.jp</domain> + <domain>mx2.tiki.ne.jp</domain> + <domain>mx2.wt.tiki.ne.jp</domain> + <domain>mx3.et.tiki.ne.jp</domain> + <domain>mx3.tiki.ne.jp</domain> + <domain>mx4.et.tiki.ne.jp</domain> + <domain>mx4.tiki.ne.jp</domain> + <domain>mx5.et.tiki.ne.jp</domain> + <domain>mx5.tiki.ne.jp</domain> + <domain>mx6.et.tiki.ne.jp</domain> + <domain>mx6.tiki.ne.jp</domain> + <domain>mx7.tiki.ne.jp</domain> + <domain>mx8.tiki.ne.jp</domain> + <domain>mx9.tiki.ne.jp</domain> + <domain>mx21.tiki.ne.jp</domain> + <domain>mx22.tiki.ne.jp</domain> + <domain>mx31.tiki.ne.jp</domain> + <domain>mx32.tiki.ne.jp</domain> + <domain>mx35.tiki.ne.jp</domain> + <domain>mx36.tiki.ne.jp</domain> + <domain>mx41.tiki.ne.jp</domain> + <domain>mx51.et.tiki.ne.jp</domain> + <domain>mx51.tiki.ne.jp</domain> + <domain>mx52.tiki.ne.jp</domain> + <domain>mx61.tiki.ne.jp</domain> + <domain>mx71.tiki.ne.jp</domain> + <domain>mx81.tiki.ne.jp</domain> + <domain>mx82.tiki.ne.jp</domain> + <domain>mx91.tiki.ne.jp</domain> + <domain>ma100.tiki.ne.jp</domain> + <displayName>TikiTikiインターネット</displayName> + <displayShortName>TikiTiki</displayShortName> + <incomingServer type="pop3"> + <hostname>%EMAILDOMAIN%</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp-auth.tiki.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/mac.com b/capplet/settings/mail-autoconfig/mac.com new file mode 100644 index 0000000000..094425578b --- /dev/null +++ b/capplet/settings/mail-autoconfig/mac.com @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="me.com"> + <domain>mac.com</domain> + <domain>me.com</domain> + + <displayName>Apple MobileMe</displayName> + <displayShortName>Apple</displayShortName> + + <incomingServer type="imap"> + <hostname>mail.me.com</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.me.com</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/mahoroba.ne.jp b/capplet/settings/mail-autoconfig/mahoroba.ne.jp new file mode 100644 index 0000000000..43679c1446 --- /dev/null +++ b/capplet/settings/mail-autoconfig/mahoroba.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="mahoroba.ne.jp"> + <domain>mahoroba.ne.jp</domain> + <displayName>インターネットまほろば</displayName> + <displayShortName>まほろば</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.mahoroba.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.mahoroba.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/mail.gunmanet.jp b/capplet/settings/mail-autoconfig/mail.gunmanet.jp new file mode 100644 index 0000000000..90bdf8ecf8 --- /dev/null +++ b/capplet/settings/mail-autoconfig/mail.gunmanet.jp @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="mail.wind.ne.jp"> + <domain>mail.wind.ne.jp</domain> + <domain>mail.wind.jp</domain> + <domain>mail.wind.co.jp</domain> + <domain>mail.gunmanet.or.jp</domain> + <domain>mail.gunmanet.ne.jp</domain> + <domain>mail.gunmanet.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.wind.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/mail.iwafune.ne.jp b/capplet/settings/mail-autoconfig/mail.iwafune.ne.jp new file mode 100644 index 0000000000..c6340450b9 --- /dev/null +++ b/capplet/settings/mail-autoconfig/mail.iwafune.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="mail.iwafune.ne.jp"> + <domain>mail.iwafune.ne.jp</domain> + <displayName>インターネットいわふね</displayName> + <displayShortName>IWAFUNE</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.iwafune.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.iwafune.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/maroon.plala.or.jp b/capplet/settings/mail-autoconfig/maroon.plala.or.jp new file mode 100644 index 0000000000..d2e00e2d0d --- /dev/null +++ b/capplet/settings/mail-autoconfig/maroon.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="maroon.plala.or.jp"> + <domain>maroon.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>maroon.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>maroon.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/me.com b/capplet/settings/mail-autoconfig/me.com new file mode 100644 index 0000000000..094425578b --- /dev/null +++ b/capplet/settings/mail-autoconfig/me.com @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="me.com"> + <domain>mac.com</domain> + <domain>me.com</domain> + + <displayName>Apple MobileMe</displayName> + <displayShortName>Apple</displayShortName> + + <incomingServer type="imap"> + <hostname>mail.me.com</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.me.com</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/minuet.plala.or.jp b/capplet/settings/mail-autoconfig/minuet.plala.or.jp new file mode 100644 index 0000000000..af72bf2644 --- /dev/null +++ b/capplet/settings/mail-autoconfig/minuet.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="minuet.plala.or.jp"> + <domain>minuet.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>minuet.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>minuet.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ml.murakami.ne.jp b/capplet/settings/mail-autoconfig/ml.murakami.ne.jp new file mode 100644 index 0000000000..54d20ae5f9 --- /dev/null +++ b/capplet/settings/mail-autoconfig/ml.murakami.ne.jp @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="ml.murakami.ne.jp"> + <domain>ml.murakami.ne.jp</domain> + + <displayName>インターネットいわふね</displayName> + <displayShortName>IWAFUNE</displayShortName> + + <incomingServer type="pop3"> + <hostname>ml.murakami.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>ml.murakami.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ml.shibata.ne.jp b/capplet/settings/mail-autoconfig/ml.shibata.ne.jp new file mode 100644 index 0000000000..a78346145b --- /dev/null +++ b/capplet/settings/mail-autoconfig/ml.shibata.ne.jp @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="pop.shibata.ne.jp"> + <domain>pop.shibata.ne.jp</domain> + <domain>ml.shibata.ne.jp</domain> + <displayName>インターネット新発田</displayName> + <displayShortName>INET-SHIBATA</displayShortName> + <incomingServer type="pop3"> + <hostname>%EMAILDOMAIN%</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>%EMAILDOMAIN%</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/mnet.ne.jp b/capplet/settings/mail-autoconfig/mnet.ne.jp new file mode 100644 index 0000000000..24a19b4795 --- /dev/null +++ b/capplet/settings/mail-autoconfig/mnet.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="mnet.ne.jp"> + <domain>mnet.ne.jp</domain> + <displayName>Mnet メール サービス</displayName> + <displayShortName>Mnetメール</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.mnet.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.mnet.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/mopera.net b/capplet/settings/mail-autoconfig/mopera.net new file mode 100644 index 0000000000..9f416f21d9 --- /dev/null +++ b/capplet/settings/mail-autoconfig/mopera.net @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="mopera.net"> + <domain>mopera.net</domain> + <displayName>mopera U</displayName> + <displayShortName>mopera U</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.mopera.net</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.mopera.net</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/msn.com b/capplet/settings/mail-autoconfig/msn.com new file mode 100644 index 0000000000..b0007493df --- /dev/null +++ b/capplet/settings/mail-autoconfig/msn.com @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="hotmail.com"> + <domain>hotmail.com</domain> + <domain>hotmail.co.uk</domain> + <domain>hotmail.co.jp</domain> + <domain>hotmail.de</domain> + <domain>hotmail.fr</domain> + <domain>hotmail.it</domain> + <domain>live.com</domain> + <domain>live.co.uk</domain> + <domain>live.co.jp</domain> + <domain>live.de</domain> + <domain>live.fr</domain> + <domain>live.it</domain> + <domain>msn.com</domain> + + <displayName>Microsoft Live Hotmail</displayName> + <displayShortName>Hotmail</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop3.live.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.live.com</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/navy.plala.or.jp b/capplet/settings/mail-autoconfig/navy.plala.or.jp new file mode 100644 index 0000000000..3935216659 --- /dev/null +++ b/capplet/settings/mail-autoconfig/navy.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="navy.plala.or.jp"> + <domain>navy.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>navy.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>navy.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/nifty.com b/capplet/settings/mail-autoconfig/nifty.com new file mode 100644 index 0000000000..5b38d6240e --- /dev/null +++ b/capplet/settings/mail-autoconfig/nifty.com @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="nifty.com"> + <domain>nifty.com</domain> + <displayName>@nifty</displayName> + <displayShortName>@nifty</displayShortName> + <incomingServer type="pop3"> + <hostname>pop.nifty.com</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.nifty.com</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/nsat.jp b/capplet/settings/mail-autoconfig/nsat.jp new file mode 100644 index 0000000000..32583b86d2 --- /dev/null +++ b/capplet/settings/mail-autoconfig/nsat.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="nsat.jp"> + <domain>nsat.jp</domain> + <displayName>BBにいがた</displayName> + <displayShortName>NSAT</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.nsat.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.nsat.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/olive.plala.or.jp b/capplet/settings/mail-autoconfig/olive.plala.or.jp new file mode 100644 index 0000000000..f85b0232ea --- /dev/null +++ b/capplet/settings/mail-autoconfig/olive.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="olive.plala.or.jp"> + <domain>olive.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>olive.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>olive.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/online.de b/capplet/settings/mail-autoconfig/online.de new file mode 100644 index 0000000000..12c4b1e722 --- /dev/null +++ b/capplet/settings/mail-autoconfig/online.de @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="1und1.de"> + <domain>online.de</domain> + <domain>onlinehome.de</domain> + <domain>sofortstart.de</domain> + <domain>sofort-start.de</domain> + <domain>sofortsurf.de</domain> + <domain>sofort-surf.de</domain> + <domain>go4more.de</domain> + + <displayName>1&1</displayName> + <displayShortName>1&1</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.1und1.de</hostname> + <port>993</port> + <socketType>SSL</socketType> + <!-- also works: <port>143</port> <socketType>STARTTLS</socketType> --> + <authentication>plain</authentication> + <username>%EMAILADDRESS%</username> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.1und1.de</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <authentication>plain</authentication> + <username>%EMAILADDRESS%</username> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + <!-- + http://hilfe-center.1und1.de/access/search/go.php?t=e698123 + Kundenservice: +49-721-9600 + Presse: +49-2602-961276 <presse@1und1.de> + + Failed: SMTP server doesn't answer me, apparently works only within the ISP network + --> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/opal.plala.or.jp b/capplet/settings/mail-autoconfig/opal.plala.or.jp new file mode 100644 index 0000000000..168f59fd01 --- /dev/null +++ b/capplet/settings/mail-autoconfig/opal.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="opal.plala.or.jp"> + <domain>opal.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>opal.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>opal.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/orange.fr b/capplet/settings/mail-autoconfig/orange.fr new file mode 100644 index 0000000000..c40c39e1ce --- /dev/null +++ b/capplet/settings/mail-autoconfig/orange.fr @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="francetelecom.fr"> + <domain>wanadoo.fr</domain> + <domain>orange.fr</domain> + + <displayName>France Telecom / Orange</displayName> + <displayShortName>Orange</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop.orange.fr</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.orange.fr</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/orange.plala.or.jp b/capplet/settings/mail-autoconfig/orange.plala.or.jp new file mode 100644 index 0000000000..7baa803144 --- /dev/null +++ b/capplet/settings/mail-autoconfig/orange.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="orange.plala.or.jp"> + <domain>orange.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>orange.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>orange.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/orchid.plala.or.jp b/capplet/settings/mail-autoconfig/orchid.plala.or.jp new file mode 100644 index 0000000000..b5c8bc2130 --- /dev/null +++ b/capplet/settings/mail-autoconfig/orchid.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="orchid.plala.or.jp"> + <domain>orchid.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>orchid.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>orchid.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/pal.kijimadaira.jp b/capplet/settings/mail-autoconfig/pal.kijimadaira.jp new file mode 100644 index 0000000000..1b91b71189 --- /dev/null +++ b/capplet/settings/mail-autoconfig/pal.kijimadaira.jp @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="pal.kijimadaira.jp"> + <domain>pal.kijimadaira.jp</domain> + <displayName>木島平村FTTH</displayName> + <displayShortName>木島平村FTTH</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.pal.kijimadaira.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.pal.kijimadaira.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <authentication>none</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/palette.plala.or.jp b/capplet/settings/mail-autoconfig/palette.plala.or.jp new file mode 100644 index 0000000000..1a64ad6643 --- /dev/null +++ b/capplet/settings/mail-autoconfig/palette.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="palette.plala.or.jp"> + <domain>palette.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>palette.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>palette.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/parabox.or.jp b/capplet/settings/mail-autoconfig/parabox.or.jp new file mode 100644 index 0000000000..0c99974741 --- /dev/null +++ b/capplet/settings/mail-autoconfig/parabox.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="parabox.or.jp"> + <domain>parabox.or.jp</domain> + <displayName>パラボックス</displayName> + <displayShortName>PARABOX</displayShortName> + <incomingServer type="pop3"> + <hostname>pop3.parabox.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.parabox.or.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/peach.plala.or.jp b/capplet/settings/mail-autoconfig/peach.plala.or.jp new file mode 100644 index 0000000000..34c7a3df41 --- /dev/null +++ b/capplet/settings/mail-autoconfig/peach.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="peach.plala.or.jp"> + <domain>peach.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>peach.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>peach.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/peoplepc.com b/capplet/settings/mail-autoconfig/peoplepc.com new file mode 100644 index 0000000000..b9ec01d797 --- /dev/null +++ b/capplet/settings/mail-autoconfig/peoplepc.com @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="peoplepc.com"> + <domain>peoplepc.com</domain> + + <displayName>PeoplePC</displayName> + <displayShortName>PeoplePC</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.peoplepc.com</hostname> + <port>143</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtpauth.peoplepc.com</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/plum.plala.or.jp b/capplet/settings/mail-autoconfig/plum.plala.or.jp new file mode 100644 index 0000000000..5696afd5ba --- /dev/null +++ b/capplet/settings/mail-autoconfig/plum.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="plum.plala.or.jp"> + <domain>plum.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>plum.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>plum.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/po.dcn.ne.jp b/capplet/settings/mail-autoconfig/po.dcn.ne.jp new file mode 100644 index 0000000000..e91d2affc7 --- /dev/null +++ b/capplet/settings/mail-autoconfig/po.dcn.ne.jp @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="po.dcn.ne.jp"> + <domain>po.dcn.ne.jp</domain> + <displayName>DCNインターネットサービス</displayName> + <displayShortName>DCN</displayShortName> + <incomingServer type="pop3"> + <hostname>po.dcn.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>po.dcn.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <authentication>none</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/po.wind.jp b/capplet/settings/mail-autoconfig/po.wind.jp new file mode 100644 index 0000000000..96b2d0f81b --- /dev/null +++ b/capplet/settings/mail-autoconfig/po.wind.jp @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="po.wind.ne.jp"> + <domain>po.wind.ne.jp</domain> + <domain>po.wind.jp</domain> + <domain>po.wind.co.jp</domain> + <domain>po.gunmanet.or.jp</domain> + <domain>po.gunmanet.ne.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>po.wind.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>po.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/polka.plala.or.jp b/capplet/settings/mail-autoconfig/polka.plala.or.jp new file mode 100644 index 0000000000..087065eb7f --- /dev/null +++ b/capplet/settings/mail-autoconfig/polka.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="polka.plala.or.jp"> + <domain>polka.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>polka.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>polka.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/pop.shibata.ne.jp b/capplet/settings/mail-autoconfig/pop.shibata.ne.jp new file mode 100644 index 0000000000..a78346145b --- /dev/null +++ b/capplet/settings/mail-autoconfig/pop.shibata.ne.jp @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="pop.shibata.ne.jp"> + <domain>pop.shibata.ne.jp</domain> + <domain>ml.shibata.ne.jp</domain> + <displayName>インターネット新発田</displayName> + <displayShortName>INET-SHIBATA</displayShortName> + <incomingServer type="pop3"> + <hostname>%EMAILDOMAIN%</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>%EMAILDOMAIN%</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/purple.plala.or.jp b/capplet/settings/mail-autoconfig/purple.plala.or.jp new file mode 100644 index 0000000000..393d2ac841 --- /dev/null +++ b/capplet/settings/mail-autoconfig/purple.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="purple.plala.or.jp"> + <domain>purple.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>purple.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>purple.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/rainbow.plala.or.jp b/capplet/settings/mail-autoconfig/rainbow.plala.or.jp new file mode 100644 index 0000000000..3718ed4868 --- /dev/null +++ b/capplet/settings/mail-autoconfig/rainbow.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="rainbow.plala.or.jp"> + <domain>rainbow.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>rainbow.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>rainbow.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/red.plala.or.jp b/capplet/settings/mail-autoconfig/red.plala.or.jp new file mode 100644 index 0000000000..a42e8893ff --- /dev/null +++ b/capplet/settings/mail-autoconfig/red.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="red.plala.or.jp"> + <domain>red.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>red.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>red.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/rmail.plala.or.jp b/capplet/settings/mail-autoconfig/rmail.plala.or.jp new file mode 100644 index 0000000000..7ecc703e01 --- /dev/null +++ b/capplet/settings/mail-autoconfig/rmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="rmail.plala.or.jp"> + <domain>rmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>rmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>rmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/rondo.plala.or.jp b/capplet/settings/mail-autoconfig/rondo.plala.or.jp new file mode 100644 index 0000000000..13616d3e41 --- /dev/null +++ b/capplet/settings/mail-autoconfig/rondo.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="rondo.plala.or.jp"> + <domain>rondo.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>rondo.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>rondo.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/rose.plala.or.jp b/capplet/settings/mail-autoconfig/rose.plala.or.jp new file mode 100644 index 0000000000..034f32cab4 --- /dev/null +++ b/capplet/settings/mail-autoconfig/rose.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="rose.plala.or.jp"> + <domain>rose.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>rose.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>rose.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/rouge.plala.or.jp b/capplet/settings/mail-autoconfig/rouge.plala.or.jp new file mode 100644 index 0000000000..cbbb43ce4d --- /dev/null +++ b/capplet/settings/mail-autoconfig/rouge.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="rouge.plala.or.jp"> + <domain>rouge.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>rouge.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>rouge.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ruby.plala.or.jp b/capplet/settings/mail-autoconfig/ruby.plala.or.jp new file mode 100644 index 0000000000..427be4b3cf --- /dev/null +++ b/capplet/settings/mail-autoconfig/ruby.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ruby.plala.or.jp"> + <domain>ruby.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>ruby.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>ruby.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/sakunet.ne.jp b/capplet/settings/mail-autoconfig/sakunet.ne.jp new file mode 100644 index 0000000000..695b7c70c2 --- /dev/null +++ b/capplet/settings/mail-autoconfig/sakunet.ne.jp @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="sakunet.ne.jp"> + <domain>sakunet.ne.jp</domain> + <displayName>佐久ケーブルテレビ</displayName> + <displayShortName>Saku-Net</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.sakunet.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp.sakunet.ne.jp</hostname> + <port>25</port> + <socketType>plain</socketType> + <authentication>none</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/sea.plala.or.jp b/capplet/settings/mail-autoconfig/sea.plala.or.jp new file mode 100644 index 0000000000..ddde2c1767 --- /dev/null +++ b/capplet/settings/mail-autoconfig/sea.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="sea.plala.or.jp"> + <domain>sea.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>sea.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>sea.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/sepia.plala.or.jp b/capplet/settings/mail-autoconfig/sepia.plala.or.jp new file mode 100644 index 0000000000..1dce9e1cf4 --- /dev/null +++ b/capplet/settings/mail-autoconfig/sepia.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="sepia.plala.or.jp"> + <domain>sepia.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>sepia.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>sepia.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/serenade.plala.or.jp b/capplet/settings/mail-autoconfig/serenade.plala.or.jp new file mode 100644 index 0000000000..83bf35b7ba --- /dev/null +++ b/capplet/settings/mail-autoconfig/serenade.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="serenade.plala.or.jp"> + <domain>serenade.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>serenade.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>serenade.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/silk.plala.or.jp b/capplet/settings/mail-autoconfig/silk.plala.or.jp new file mode 100644 index 0000000000..1aa4b81964 --- /dev/null +++ b/capplet/settings/mail-autoconfig/silk.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="silk.plala.or.jp"> + <domain>silk.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>silk.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>silk.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/silver.plala.or.jp b/capplet/settings/mail-autoconfig/silver.plala.or.jp new file mode 100644 index 0000000000..8ff9fd9ec8 --- /dev/null +++ b/capplet/settings/mail-autoconfig/silver.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="silver.plala.or.jp"> + <domain>silver.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>silver.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>silver.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/sky.plala.or.jp b/capplet/settings/mail-autoconfig/sky.plala.or.jp new file mode 100644 index 0000000000..9da6383b8c --- /dev/null +++ b/capplet/settings/mail-autoconfig/sky.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="sky.plala.or.jp"> + <domain>sky.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>sky.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>sky.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/smail.plala.or.jp b/capplet/settings/mail-autoconfig/smail.plala.or.jp new file mode 100644 index 0000000000..1768bfd9bc --- /dev/null +++ b/capplet/settings/mail-autoconfig/smail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="smail.plala.or.jp"> + <domain>smail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>smail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/snow.plala.or.jp b/capplet/settings/mail-autoconfig/snow.plala.or.jp new file mode 100644 index 0000000000..44267b99b1 --- /dev/null +++ b/capplet/settings/mail-autoconfig/snow.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="snow.plala.or.jp"> + <domain>snow.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>snow.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>snow.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/so.wind.ne.jp b/capplet/settings/mail-autoconfig/so.wind.ne.jp new file mode 100644 index 0000000000..50fd47ef1c --- /dev/null +++ b/capplet/settings/mail-autoconfig/so.wind.ne.jp @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="so.wind.ne.jp"> + <domain>so.wind.ne.jp</domain> + <domain>so.wind.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="imap"> + <hostname>so.wind.ne.jp</hostname> + <port>143</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>so.wind.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/sonata.plala.or.jp b/capplet/settings/mail-autoconfig/sonata.plala.or.jp new file mode 100644 index 0000000000..3834428fbd --- /dev/null +++ b/capplet/settings/mail-autoconfig/sonata.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="sonata.plala.or.jp"> + <domain>sonata.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>sonata.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>sonata.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/suite.plala.or.jp b/capplet/settings/mail-autoconfig/suite.plala.or.jp new file mode 100644 index 0000000000..c8beac6b9c --- /dev/null +++ b/capplet/settings/mail-autoconfig/suite.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="suite.plala.or.jp"> + <domain>suite.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>suite.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>suite.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/symphony.plala.or.jp b/capplet/settings/mail-autoconfig/symphony.plala.or.jp new file mode 100644 index 0000000000..311aa184ac --- /dev/null +++ b/capplet/settings/mail-autoconfig/symphony.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="symphony.plala.or.jp"> + <domain>symphony.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>symphony.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>symphony.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/t-online.de b/capplet/settings/mail-autoconfig/t-online.de new file mode 100644 index 0000000000..a80ac4c316 --- /dev/null +++ b/capplet/settings/mail-autoconfig/t-online.de @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="t-online.de"> + <domain>t-online.de</domain> + + <displayName>T-Online email Paket</displayName> + <displayShortName>T-Online</displayShortName> + + <incomingServer type="pop3"> + <hostname>popmail.t-online.de</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtpmail.t-online.de</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <!--<enableURL url="http://service.t-online.de/c/12/72/65/02/12726502.html">You need to enable POP access</enableURL>--> + <!--<enableURL url="http://hilfe.telekom.de/hsp/cms/content/HSP/de/3378/theme-45858870/theme-45858718/theme-45858716/theme-45858715/faq-45855229">Richten Sie Ihre Email-Adresse ein</enableURL>--> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/t-online.de free b/capplet/settings/mail-autoconfig/t-online.de free new file mode 100644 index 0000000000..a80ac4c316 --- /dev/null +++ b/capplet/settings/mail-autoconfig/t-online.de free @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="t-online.de"> + <domain>t-online.de</domain> + + <displayName>T-Online email Paket</displayName> + <displayShortName>T-Online</displayShortName> + + <incomingServer type="pop3"> + <hostname>popmail.t-online.de</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtpmail.t-online.de</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <!--<enableURL url="http://service.t-online.de/c/12/72/65/02/12726502.html">You need to enable POP access</enableURL>--> + <!--<enableURL url="http://hilfe.telekom.de/hsp/cms/content/HSP/de/3378/theme-45858870/theme-45858718/theme-45858716/theme-45858715/faq-45855229">Richten Sie Ihre Email-Adresse ein</enableURL>--> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/t-online.de imap ssl b/capplet/settings/mail-autoconfig/t-online.de imap ssl new file mode 100644 index 0000000000..e2e5fb1a76 --- /dev/null +++ b/capplet/settings/mail-autoconfig/t-online.de imap ssl @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="t-online.de"> + <domain>t-online.de</domain> + + <displayName>T-Online email Paket</displayName> + <displayShortName>T-Online</displayShortName> + + <incomingServer type="imap"> + <hostname>secure-imap.t-online.de</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>securesmtp.googlemail.com</hostname> + <port>25</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>secure</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <enableURL url="http://service.t-online.de/c/12/72/65/02/12726502.html">You need to enable POP access</enableURL> + <!--<enableURL url="http://hilfe.telekom.de/hsp/cms/content/HSP/de/3378/theme-45858870/theme-45858718/theme-45858716/theme-45858715/faq-45855229">Richten Sie Ihre Email-Adresse ein</enableURL>--> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/t-online.de pop ssl b/capplet/settings/mail-autoconfig/t-online.de pop ssl new file mode 100644 index 0000000000..264ad0582c --- /dev/null +++ b/capplet/settings/mail-autoconfig/t-online.de pop ssl @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="t-online.de"> + <domain>t-online.de</domain> + + <displayName>T-Online email Paket</displayName> + <displayShortName>T-Online</displayShortName> + + <incomingServer type="pop3"> + <hostname>securepop.t-online.de</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>securesmtp.t-online.de</hostname> + <port>25</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + <!--<enableURL url="http://service.t-online.de/c/12/72/65/02/12726502.html">You need to enable POP access</enableURL>--> + <!--<enableURL url="http://hilfe.telekom.de/hsp/cms/content/HSP/de/3378/theme-45858870/theme-45858718/theme-45858716/theme-45858715/faq-45855229">Richten Sie Ihre Email-Adresse ein</enableURL>--> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/taupe.plala.or.jp b/capplet/settings/mail-autoconfig/taupe.plala.or.jp new file mode 100644 index 0000000000..cec35b2df5 --- /dev/null +++ b/capplet/settings/mail-autoconfig/taupe.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="taupe.plala.or.jp"> + <domain>taupe.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>taupe.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>taupe.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/tiki.ne.jp b/capplet/settings/mail-autoconfig/tiki.ne.jp new file mode 100644 index 0000000000..9e54488ead --- /dev/null +++ b/capplet/settings/mail-autoconfig/tiki.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="tiki.ne.jp"> + <domain>tiki.ne.jp</domain> + <displayName>TikiTikiインターネット</displayName> + <displayShortName>TikiTiki</displayShortName> + <incomingServer type="pop3"> + <hostname>mx.tiki.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>smtp-auth.tiki.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/tmail.plala.or.jp b/capplet/settings/mail-autoconfig/tmail.plala.or.jp new file mode 100644 index 0000000000..d138304dc9 --- /dev/null +++ b/capplet/settings/mail-autoconfig/tmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="tmail.plala.or.jp"> + <domain>tmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>tmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>tmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/toccata.plala.or.jp b/capplet/settings/mail-autoconfig/toccata.plala.or.jp new file mode 100644 index 0000000000..41281a7d6c --- /dev/null +++ b/capplet/settings/mail-autoconfig/toccata.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="toccata.plala.or.jp"> + <domain>toccata.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>toccata.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>toccata.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/topaz.plala.or.jp b/capplet/settings/mail-autoconfig/topaz.plala.or.jp new file mode 100644 index 0000000000..185f1796de --- /dev/null +++ b/capplet/settings/mail-autoconfig/topaz.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="topaz.plala.or.jp"> + <domain>topaz.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>topaz.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>topaz.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/trio.plala.or.jp b/capplet/settings/mail-autoconfig/trio.plala.or.jp new file mode 100644 index 0000000000..6d15fc17b4 --- /dev/null +++ b/capplet/settings/mail-autoconfig/trio.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="trio.plala.or.jp"> + <domain>trio.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>trio.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>trio.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/umail.plala.or.jp b/capplet/settings/mail-autoconfig/umail.plala.or.jp new file mode 100644 index 0000000000..2b4a0694a0 --- /dev/null +++ b/capplet/settings/mail-autoconfig/umail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="umail.plala.or.jp"> + <domain>umail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>umail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>umail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/verizon.net b/capplet/settings/mail-autoconfig/verizon.net new file mode 100644 index 0000000000..0c41d38243 --- /dev/null +++ b/capplet/settings/mail-autoconfig/verizon.net @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="verizon.net"> + <domain>verizon.net</domain> + + <displayName>Verizon Online</displayName> + <displayShortName>Verizon</displayShortName> + + <incomingServer type="pop3"> + <hostname>incoming.verizon.com</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>outgoing.verizon.net</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/violet.plala.or.jp b/capplet/settings/mail-autoconfig/violet.plala.or.jp new file mode 100644 index 0000000000..a1ce58b326 --- /dev/null +++ b/capplet/settings/mail-autoconfig/violet.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="violet.plala.or.jp"> + <domain>violet.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>violet.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>violet.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/vm.aikis.or.jp b/capplet/settings/mail-autoconfig/vm.aikis.or.jp new file mode 100644 index 0000000000..9c3caa70ec --- /dev/null +++ b/capplet/settings/mail-autoconfig/vm.aikis.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="vm.aikis.or.jp"> + <domain>vm.aikis.or.jp</domain> + <displayName>aikis</displayName> + <displayShortName>aikis</displayShortName> + <incomingServer type="pop3"> + <hostname>mail.aikis.or.jp</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>mail.aikis.or.jp</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/vmail.plala.or.jp b/capplet/settings/mail-autoconfig/vmail.plala.or.jp new file mode 100644 index 0000000000..66358ef6a8 --- /dev/null +++ b/capplet/settings/mail-autoconfig/vmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="vmail.plala.or.jp"> + <domain>vmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>vmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>vmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/vp.tiki.ne.jp b/capplet/settings/mail-autoconfig/vp.tiki.ne.jp new file mode 100644 index 0000000000..378a9d3b24 --- /dev/null +++ b/capplet/settings/mail-autoconfig/vp.tiki.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="vp.tiki.ne.jp"> + <domain>vp.tiki.ne.jp</domain> + <displayName>TikiTikiインターネット</displayName> + <displayShortName>TikiTiki</displayShortName> + <incomingServer type="pop3"> + <hostname>vp.tiki.ne.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>vs.tiki.ne.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILADDRESS%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/waltz.plala.or.jp b/capplet/settings/mail-autoconfig/waltz.plala.or.jp new file mode 100644 index 0000000000..e7814cd235 --- /dev/null +++ b/capplet/settings/mail-autoconfig/waltz.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="waltz.plala.or.jp"> + <domain>waltz.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>waltz.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>waltz.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/wanadoo.fr b/capplet/settings/mail-autoconfig/wanadoo.fr new file mode 100644 index 0000000000..c40c39e1ce --- /dev/null +++ b/capplet/settings/mail-autoconfig/wanadoo.fr @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="francetelecom.fr"> + <domain>wanadoo.fr</domain> + <domain>orange.fr</domain> + + <displayName>France Telecom / Orange</displayName> + <displayShortName>Orange</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop.orange.fr</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.orange.fr</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/wanadoo.fr imap b/capplet/settings/mail-autoconfig/wanadoo.fr imap new file mode 100644 index 0000000000..5b138e48ce --- /dev/null +++ b/capplet/settings/mail-autoconfig/wanadoo.fr imap @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="francetelecom.fr"> + <domain>wanadoo.fr</domain> + <domain>orange.fr</domain> + + <displayName>France Telecom / Orange</displayName> + <displayShortName>Orange</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.orange.fr</hostname> + <port>143</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.orange.fr</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/wanadoo.fr pop b/capplet/settings/mail-autoconfig/wanadoo.fr pop new file mode 100644 index 0000000000..c40c39e1ce --- /dev/null +++ b/capplet/settings/mail-autoconfig/wanadoo.fr pop @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="francetelecom.fr"> + <domain>wanadoo.fr</domain> + <domain>orange.fr</domain> + + <displayName>France Telecom / Orange</displayName> + <displayShortName>Orange</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop.orange.fr</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.orange.fr</hostname> + <port>25</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/wave.plala.or.jp b/capplet/settings/mail-autoconfig/wave.plala.or.jp new file mode 100644 index 0000000000..611ab2a6b8 --- /dev/null +++ b/capplet/settings/mail-autoconfig/wave.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="wave.plala.or.jp"> + <domain>wave.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>wave.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>wave.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/web.de b/capplet/settings/mail-autoconfig/web.de new file mode 100644 index 0000000000..d3b357f16d --- /dev/null +++ b/capplet/settings/mail-autoconfig/web.de @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="web.de"> + <domain>web.de</domain> + + <displayName>WEB.DE Freemail</displayName> + <displayShortName>Web.de</displayShortName> + + <incomingServer type="imap"> + <hostname>imap.web.de</hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.web.de</hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/white.plala.or.jp b/capplet/settings/mail-autoconfig/white.plala.or.jp new file mode 100644 index 0000000000..34f9a8af3f --- /dev/null +++ b/capplet/settings/mail-autoconfig/white.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="white.plala.or.jp"> + <domain>white.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>white.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>white.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/wine.plala.or.jp b/capplet/settings/mail-autoconfig/wine.plala.or.jp new file mode 100644 index 0000000000..62f66db872 --- /dev/null +++ b/capplet/settings/mail-autoconfig/wine.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="wine.plala.or.jp"> + <domain>wine.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>wine.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>wine.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/wmail.plala.or.jp b/capplet/settings/mail-autoconfig/wmail.plala.or.jp new file mode 100644 index 0000000000..375c3010eb --- /dev/null +++ b/capplet/settings/mail-autoconfig/wmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="wmail.plala.or.jp"> + <domain>wmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>wmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>wmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/xmail.plala.or.jp b/capplet/settings/mail-autoconfig/xmail.plala.or.jp new file mode 100644 index 0000000000..b8d7187ff5 --- /dev/null +++ b/capplet/settings/mail-autoconfig/xmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="xmail.plala.or.jp"> + <domain>xmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>xmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>xmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/xp.wind.jp b/capplet/settings/mail-autoconfig/xp.wind.jp new file mode 100644 index 0000000000..bed7569308 --- /dev/null +++ b/capplet/settings/mail-autoconfig/xp.wind.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="xp.wind.jp"> + <domain>xp.wind.jp</domain> + <displayName>群馬インターネット</displayName> + <displayShortName>wind</displayShortName> + <incomingServer type="pop3"> + <hostname>xp.wind.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>xp.wind.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/xpost.plala.or.jp b/capplet/settings/mail-autoconfig/xpost.plala.or.jp new file mode 100644 index 0000000000..7d175fd750 --- /dev/null +++ b/capplet/settings/mail-autoconfig/xpost.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="xpost.plala.or.jp"> + <domain>xpost.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>xpost.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>xpost.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/xs4all.nl b/capplet/settings/mail-autoconfig/xs4all.nl new file mode 100644 index 0000000000..b5c4289322 --- /dev/null +++ b/capplet/settings/mail-autoconfig/xs4all.nl @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="xs4all.nl"> + <domain>xs4all.nl</domain> + + <displayName>XS4All</displayName> + <displayShortName>XS4All</displayShortName> + + <incomingServer type="pop3"> + <hostname>pops.xs4all.nl</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtps.xs4all.nl</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/yahoo.com b/capplet/settings/mail-autoconfig/yahoo.com new file mode 100644 index 0000000000..92e6d7a70a --- /dev/null +++ b/capplet/settings/mail-autoconfig/yahoo.com @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<clientConfig> + <emailProvider id="yahoo.com"> + <domain>yahoo.com</domain> + <domain>yahoo.de</domain> + <domain>yahoo.it</domain> + <domain>yahoo.fr</domain> + <domain>yahoo.co.uk</domain> + <domain>yahoo.com.br</domain> + <domain>ymail.com</domain> + <domain>rocketmail.com</domain> + + <displayName>Yahoo! Mail</displayName> + <displayShortName>Yahoo</displayShortName> + + <incomingServer type="pop3"> + <hostname>pop.mail.yahoo.com</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname>smtp.mail.yahoo.com</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ybb.ne.jp b/capplet/settings/mail-autoconfig/ybb.ne.jp new file mode 100644 index 0000000000..935a59ba95 --- /dev/null +++ b/capplet/settings/mail-autoconfig/ybb.ne.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ybb.ne.jp"> + <domain>ybb.ne.jp</domain> + <displayName>Yahoo! BB</displayName> + <displayShortName>Yahoo! BB</displayShortName> + <incomingServer type="pop3"> + <hostname>ybbpop.mail.yahoo.co.jp</hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>ybbsmtp.mail.yahoo.co.jp</hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/yellow.plala.or.jp b/capplet/settings/mail-autoconfig/yellow.plala.or.jp new file mode 100644 index 0000000000..4b71b37f72 --- /dev/null +++ b/capplet/settings/mail-autoconfig/yellow.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="yellow.plala.or.jp"> + <domain>yellow.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>yellow.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>yellow.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ymail.plala.or.jp b/capplet/settings/mail-autoconfig/ymail.plala.or.jp new file mode 100644 index 0000000000..0f367d6b4e --- /dev/null +++ b/capplet/settings/mail-autoconfig/ymail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ymail.plala.or.jp"> + <domain>ymail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>ymail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>ymail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/ypost.plala.or.jp b/capplet/settings/mail-autoconfig/ypost.plala.or.jp new file mode 100644 index 0000000000..9149c8d496 --- /dev/null +++ b/capplet/settings/mail-autoconfig/ypost.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="ypost.plala.or.jp"> + <domain>ypost.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>ypost.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>ypost.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-autoconfig/zmail.plala.or.jp b/capplet/settings/mail-autoconfig/zmail.plala.or.jp new file mode 100644 index 0000000000..02e73a9842 --- /dev/null +++ b/capplet/settings/mail-autoconfig/zmail.plala.or.jp @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<clientConfig> + <emailProvider id="zmail.plala.or.jp"> + <domain>zmail.plala.or.jp</domain> + <displayName>ぷらら</displayName> + <displayShortName>ぷらら</displayShortName> + <incomingServer type="pop3"> + <hostname>zmail.mail.plala.or.jp</hostname> + <port>110</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + </incomingServer> + <outgoingServer type="smtp"> + <hostname>zmail.mail.plala.or.jp</hostname> + <port>587</port> + <socketType>plain</socketType> + <username>%EMAILLOCALPART%</username> + <authentication>plain</authentication> + <addThisServer>true</addThisServer> + <useGlobalPreferredServer>false</useGlobalPreferredServer> + </outgoingServer> + </emailProvider> +</clientConfig> diff --git a/capplet/settings/mail-guess-servers.c b/capplet/settings/mail-guess-servers.c index 388f894e72..f94fbb90e6 100644 --- a/capplet/settings/mail-guess-servers.c +++ b/capplet/settings/mail-guess-servers.c @@ -42,6 +42,10 @@ #include <libxml/tree.h> #include <libxml/xmlmemory.h> +#include <libedataserver/e-proxy.h> + +#include <shell/e-shell.h> + #include "mail-guess-servers.h" static gchar * @@ -158,13 +162,13 @@ handle_outgoing (xmlNodePtr head, EmailProvider *provider) } } -static void -parse_msg (SoupMessage *msg, EmailProvider *provider) +static gboolean +parse_message (const gchar *msg, gint length, EmailProvider *provider) { xmlDocPtr doc; xmlNodePtr node, top; - doc = xmlReadMemory (msg->response_body->data, msg->response_body->length, "file.xml", NULL, 0); + doc = xmlReadMemory (msg, length, "file.xml", NULL, 0); node = doc->children; while (node) { @@ -176,7 +180,7 @@ parse_msg (SoupMessage *msg, EmailProvider *provider) if (!node) { g_warning ("Incorrect data: ClientConfig not found ... Quitting\n"); - return; + return FALSE; } node = node->children; @@ -189,7 +193,7 @@ parse_msg (SoupMessage *msg, EmailProvider *provider) if (!node) { g_warning ("Incorrect data: ClientConfig not found ... Quitting\n"); - return; + return FALSE; } top = node; @@ -207,39 +211,70 @@ parse_msg (SoupMessage *msg, EmailProvider *provider) } xmlFreeDoc(doc); + + return TRUE; } -gboolean -mail_guess_servers(EmailProvider *provider) +static gboolean +parse_soup_message (SoupMessage *msg, EmailProvider *provider) +{ + return parse_message (msg->response_body->data, msg->response_body->length, provider); +} + +static gboolean +is_online (void) +{ + EShell *shell; + + shell = e_shell_get_default (); + if (!shell) { + /* FIXME: do we always have a shell? What do we do if one + * hasn't been created yet? e_shell_get_default() won't create + * a shell; it will just return one that has been created + * before. + */ + return FALSE; + } + + return e_shell_get_online (shell); +} + +static gboolean +guess_when_online (EmailProvider *provider) { const gchar *cafile = NULL; gchar *url; - SoupURI *proxy = NULL, *parsed; + EProxy *proxy; + SoupURI *parsed; SoupMessage *msg; SoupSession *session; - url = g_strdup_printf("%s/%s", "https://live.mozillamessaging.com/autoconfig", provider->domain); + proxy = e_proxy_new (); + e_proxy_setup_proxy (proxy); + + url = g_strdup_printf("%s/%s", "http://api.gnome.org/evolution/autoconfig", provider->domain); parsed = soup_uri_new (url); soup_uri_free (parsed); - session = soup_session_sync_new_with_options ( SOUP_SESSION_SSL_CA_FILE, cafile, SOUP_SESSION_USER_AGENT, "get ", NULL); - if (proxy) { - g_object_set (G_OBJECT (session), - SOUP_SESSION_PROXY_URI, proxy, - NULL); + if (e_proxy_require_proxy_for_uri (proxy, url)) { + SoupURI *proxy_uri = e_proxy_peek_uri_for (proxy, url); +/* fprintf (stderr, "URL '%s' requires a proxy: '%s'\n", + url, soup_uri_to_string (proxy_uri, FALSE)); */ + g_object_set (session, SOUP_SESSION_PROXY_URI, proxy_uri, NULL); } msg = get_url (session, url); if (!msg) return FALSE; - parse_msg(msg, provider); - + parse_soup_message (msg, provider); + + g_object_unref (proxy); g_object_unref (msg); g_object_unref(session); g_free(url); @@ -248,6 +283,47 @@ mail_guess_servers(EmailProvider *provider) } +static gchar * +get_filename_for_offline_autoconfig (const gchar *domain) +{ + return g_build_filename (EVOLUTION_PRIVDATADIR, "mail-autoconfig", domain, NULL); +} + +static gboolean +guess_when_offline (EmailProvider *provider) +{ + gchar *filename; + gchar *contents; + gsize length; + gboolean success; + + if (!provider->domain || provider->domain[0] == 0) + return FALSE; + + success = FALSE; + + filename = get_filename_for_offline_autoconfig (provider->domain); + if (!g_file_get_contents (filename, &contents, &length, NULL)) /* NULL-GError */ + goto out; + + success = parse_message (contents, (gint) length, provider); + +out: + g_free (filename); + g_free (contents); + + return success; +} + +gboolean +mail_guess_servers(EmailProvider *provider) +{ + if (is_online () && guess_when_online (provider)) + return TRUE; + else + return guess_when_offline (provider); +} + #ifdef TEST gint main (gint argc, gchar **argv) diff --git a/composer/e-composer-actions.c b/composer/e-composer-actions.c index 0c1a28b130..70f7c44ed9 100644 --- a/composer/e-composer-actions.c +++ b/composer/e-composer-actions.c @@ -420,14 +420,6 @@ static GtkToggleActionEntry toggle_entries[] = { NULL, /* Handled by property bindings */ FALSE }, - { "view-from", - NULL, - N_("_From Field"), - NULL, - N_("Toggles whether the From chooser is displayed"), - NULL, /* Handled by property bindings */ - FALSE }, - { "view-reply-to", NULL, N_("_Reply-To Field"), diff --git a/composer/e-composer-actions.h b/composer/e-composer-actions.h index 18c75eb3be..80147a8f24 100644 --- a/composer/e-composer-actions.h +++ b/composer/e-composer-actions.h @@ -57,8 +57,6 @@ E_COMPOSER_ACTION ((composer), "view-bcc") #define E_COMPOSER_ACTION_VIEW_CC(composer) \ E_COMPOSER_ACTION ((composer), "view-cc") -#define E_COMPOSER_ACTION_VIEW_FROM(composer) \ - E_COMPOSER_ACTION ((composer), "view-from") #define E_COMPOSER_ACTION_VIEW_REPLY_TO(composer) \ E_COMPOSER_ACTION ((composer), "view-reply-to") diff --git a/composer/e-composer-from-header.c b/composer/e-composer-from-header.c index cade5bfed3..4dadfa7ac7 100644 --- a/composer/e-composer-from-header.c +++ b/composer/e-composer-from-header.c @@ -110,16 +110,6 @@ e_composer_from_header_new (const gchar *label) "button", FALSE, NULL); } -EComposerHeader * -e_composer_from_header_new_with_action (const gchar *label, - const gchar *action) -{ - return g_object_new ( - E_TYPE_COMPOSER_FROM_HEADER, "label", label, - "button", FALSE, "addaction_text", action, - "addaction", action != NULL, NULL); -} - EAccountList * e_composer_from_header_get_account_list (EComposerFromHeader *header) { diff --git a/composer/e-composer-from-header.h b/composer/e-composer-from-header.h index 9f9a0e0f82..d2603bd664 100644 --- a/composer/e-composer-from-header.h +++ b/composer/e-composer-from-header.h @@ -63,9 +63,6 @@ struct _EComposerFromHeaderClass { GType e_composer_from_header_get_type (void); EComposerHeader * e_composer_from_header_new (const gchar *label); -EComposerHeader * e_composer_from_header_new_with_action - (const gchar *label, - const gchar *action); EAccountList * e_composer_from_header_get_account_list (EComposerFromHeader *header); void e_composer_from_header_set_account_list diff --git a/composer/e-composer-header-table.c b/composer/e-composer-header-table.c index f62dc376fd..b7f2e8e437 100644 --- a/composer/e-composer-header-table.c +++ b/composer/e-composer-header-table.c @@ -26,14 +26,13 @@ #include "e-util/gconf-bridge.h" #include "widgets/misc/e-signature-combo-box.h" +#include "e-msg-composer.h" #include "e-composer-private.h" #include "e-composer-from-header.h" #include "e-composer-name-header.h" #include "e-composer-post-header.h" #include "e-composer-text-header.h" -extern gboolean composer_lite; - #define E_COMPOSER_HEADER_TABLE_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ ((obj), E_TYPE_COMPOSER_HEADER_TABLE, EComposerHeaderTablePrivate)) @@ -69,7 +68,6 @@ struct _EComposerHeaderTablePrivate { GtkWidget *signature_label; GtkWidget *signature_combo_box; ENameSelector *name_selector; - GtkHBox *actions_container; }; static gpointer parent_class; @@ -159,11 +157,7 @@ composer_header_table_notify_header (EComposerHeader *header, { GtkWidget *parent; - if (composer_lite && strcmp (property_name, "destinations-to") == 0) - parent = g_object_get_data ( - G_OBJECT (header->input_widget), "parent"); - else - parent = gtk_widget_get_parent (header->input_widget); + parent = gtk_widget_get_parent (header->input_widget); g_return_if_fail (E_IS_COMPOSER_HEADER_TABLE (parent)); g_object_notify (G_OBJECT (parent), property_name); } @@ -174,7 +168,7 @@ composer_header_table_notify_widget (GtkWidget *widget, { GtkWidget *parent; - if (composer_lite) { + if (e_msg_composer_get_lite ()) { parent = gtk_widget_get_parent (widget); parent = g_object_get_data (G_OBJECT (parent), "pdata"); } else @@ -282,6 +276,27 @@ skip_custom: return new_destinations; } +static int +count_from_accounts (EComposerHeaderTable *table) +{ + EComposerHeader *header; + EAccountComboBox *combo_box; + + header = e_composer_header_table_get_header (table, E_COMPOSER_HEADER_FROM); + combo_box = E_ACCOUNT_COMBO_BOX (header->input_widget); + + return e_account_combo_box_count_displayed_accounts (combo_box); +} + +static gboolean +from_header_should_be_visible (EComposerHeaderTable *table) +{ + int num_accounts; + + num_accounts = count_from_accounts (table); + return (num_accounts > 1); +} + static void composer_header_table_setup_mail_headers (EComposerHeaderTable *table) { @@ -294,6 +309,8 @@ composer_header_table_setup_mail_headers (EComposerHeaderTable *table) EComposerHeader *header; const gchar *key; guint binding_id; + gboolean sensitive; + gboolean visible; binding_id = table->priv->gconf_bindings[ii]; header = e_composer_header_table_get_header (table, ii); @@ -310,10 +327,6 @@ composer_header_table_setup_mail_headers (EComposerHeaderTable *table) key = COMPOSER_GCONF_PREFIX "/show_mail_cc"; break; - case E_COMPOSER_HEADER_FROM: - key = COMPOSER_GCONF_PREFIX "/show_mail_from"; - break; - case E_COMPOSER_HEADER_REPLY_TO: key = COMPOSER_GCONF_PREFIX "/show_mail_reply_to"; break; @@ -324,22 +337,29 @@ composer_header_table_setup_mail_headers (EComposerHeaderTable *table) } switch (ii) { + case E_COMPOSER_HEADER_FROM: + sensitive = TRUE; + visible = from_header_should_be_visible (table); + break; + case E_COMPOSER_HEADER_BCC: case E_COMPOSER_HEADER_CC: - case E_COMPOSER_HEADER_FROM: case E_COMPOSER_HEADER_REPLY_TO: case E_COMPOSER_HEADER_SUBJECT: case E_COMPOSER_HEADER_TO: - e_composer_header_set_sensitive (header, TRUE); - e_composer_header_set_visible (header, TRUE); + sensitive = TRUE; + visible = TRUE; break; default: - e_composer_header_set_sensitive (header, FALSE); - e_composer_header_set_visible (header, FALSE); + sensitive = FALSE; + visible = FALSE; break; } + e_composer_header_set_sensitive (header, sensitive); + e_composer_header_set_visible (header, visible); + if (key != NULL) binding_id = gconf_bridge_bind_property ( bridge, key, G_OBJECT (header), "visible"); @@ -482,6 +502,17 @@ composer_header_table_from_changed_cb (EComposerHeaderTable *table) composer_header_table_setup_mail_headers (table); } +static int +get_row_padding (void) +{ + /* For small screens, make the header-table's rows be packed closely together */ + + if (e_msg_composer_get_lite ()) + return 0; + else + return 3; +} + static GObject * composer_header_table_constructor (GType type, guint n_construct_properties, @@ -490,6 +521,7 @@ composer_header_table_constructor (GType type, GObject *object; EComposerHeaderTablePrivate *priv; guint rows, ii; + int row_padding; /* Chain up to parent's constructor() method. */ object = G_OBJECT_CLASS (parent_class)->constructor ( @@ -505,45 +537,18 @@ composer_header_table_constructor (GType type, /* Use "ypadding" instead of "row-spacing" because some rows may * be invisible and we don't want spacing around them. */ + row_padding = get_row_padding (); + for (ii = 0; ii < rows; ii++) { gtk_table_attach ( GTK_TABLE (object), priv->headers[ii]->title_widget, - 0, 1, ii, ii + 1, GTK_FILL, GTK_FILL, 0, 3); - if (composer_lite && ii == E_COMPOSER_HEADER_TO) { - GtkWidget *box = gtk_hbox_new (FALSE, 0); - g_object_set_data ( - G_OBJECT (priv->headers[ii]->input_widget), - "parent", object); - gtk_box_pack_start ( - GTK_BOX (box), priv->headers[ii]->input_widget, - TRUE, TRUE, 3); - gtk_box_pack_start ( - GTK_BOX (box), - GTK_WIDGET (priv->actions_container), - FALSE, FALSE, 0); - gtk_widget_show (box); - gtk_table_attach ( - GTK_TABLE (object), box, 1, 4, ii, ii + 1, - GTK_FILL | GTK_EXPAND, 0, 0, 3); - - } else { - gtk_table_attach ( - GTK_TABLE (object), - priv->headers[ii]->input_widget, 1, 4, - ii, ii + 1, GTK_FILL | GTK_EXPAND, 0, 0, 3); - } - if (composer_lite && priv->headers[ii]->action_widget) { - /* Pack the widgets to the end. Helps formatting - * when hiding the From field. */ - gtk_box_pack_end ( - GTK_BOX (priv->actions_container), - priv->headers[ii]->action_widget, - FALSE, FALSE, 6); - } + 0, 1, ii, ii + 1, GTK_FILL, GTK_FILL, 0, row_padding); + gtk_table_attach ( + GTK_TABLE (object), + priv->headers[ii]->input_widget, 1, 4, + ii, ii + 1, GTK_FILL | GTK_EXPAND, 0, 0, row_padding); } - if (composer_lite) - gtk_widget_show_all ((GtkWidget *)priv->actions_container); ii = E_COMPOSER_HEADER_FROM; /* Leave room in the "From" row for signature stuff. */ @@ -561,13 +566,13 @@ composer_header_table_constructor (GType type, priv->signature_combo_box, "visible"); /* Now add the signature stuff. */ - if (!composer_lite) { + if (!e_msg_composer_get_lite ()) { gtk_table_attach ( GTK_TABLE (object), priv->signature_label, - 2, 3, ii, ii + 1, 0, 0, 0, 3); + 2, 3, ii, ii + 1, 0, 0, 0, row_padding); gtk_table_attach ( GTK_TABLE (object), priv->signature_combo_box, - 3, 4, ii, ii + 1, composer_lite ? GTK_FILL: 0, 0, 0, 3); + 3, 4, ii, ii + 1, e_msg_composer_get_lite () ? GTK_FILL: 0, 0, 0, row_padding); } else { GtkWidget *box = gtk_hbox_new (FALSE, 0); @@ -580,7 +585,7 @@ composer_header_table_constructor (GType type, g_object_set_data (G_OBJECT (box), "pdata", object); gtk_table_attach ( GTK_TABLE (object), box, - 3, 4, ii, ii + 1, GTK_FILL, 0, 0, 3); + 3, 4, ii, ii + 1, GTK_FILL, 0, 0, row_padding); gtk_widget_hide (box); } @@ -954,9 +959,7 @@ composer_header_table_init (EComposerHeaderTable *table) name_selector = e_name_selector_new (); table->priv->name_selector = name_selector; - table->priv->actions_container = (GtkHBox *)gtk_hbox_new (FALSE, 6); - - header = e_composer_from_header_new_with_action (_("Fr_om:"), _("From")); + header = e_composer_from_header_new (_("Fr_om:")); composer_header_table_bind_header ("account", "changed", header); composer_header_table_bind_header ("account-list", "refreshed", header); composer_header_table_bind_header ("account-name", "changed", header); @@ -965,24 +968,21 @@ composer_header_table_init (EComposerHeaderTable *table) composer_header_table_from_changed_cb), table); table->priv->headers[E_COMPOSER_HEADER_FROM] = header; - header = e_composer_text_header_new_label (_("_Reply-To:"), ""); + header = e_composer_text_header_new_label (_("_Reply-To:")); composer_header_table_bind_header ("reply-to", "changed", header); table->priv->headers[E_COMPOSER_HEADER_REPLY_TO] = header; - header = e_composer_name_header_new_with_label ( - _("_To:"), name_selector); + header = e_composer_name_header_new (_("_To:"), name_selector); e_composer_header_set_input_tooltip (header, HEADER_TOOLTIP_TO); composer_header_table_bind_header ("destinations-to", "changed", header); table->priv->headers[E_COMPOSER_HEADER_TO] = header; - header = e_composer_name_header_new_with_action ( - _("_Cc:"), _("CC"), name_selector); + header = e_composer_name_header_new (_("_Cc:"), name_selector); e_composer_header_set_input_tooltip (header, HEADER_TOOLTIP_CC); composer_header_table_bind_header ("destinations-cc", "changed", header); table->priv->headers[E_COMPOSER_HEADER_CC] = header; - header = e_composer_name_header_new_with_action ( - _("_Bcc:"), _("BCC"), name_selector); + header = e_composer_name_header_new (_("_Bcc:"), name_selector); e_composer_header_set_input_tooltip (header, HEADER_TOOLTIP_BCC); composer_header_table_bind_header ("destinations-bcc", "changed", header); table->priv->headers[E_COMPOSER_HEADER_BCC] = header; @@ -991,7 +991,7 @@ composer_header_table_init (EComposerHeaderTable *table) composer_header_table_bind_header ("post-to", "changed", header); table->priv->headers[E_COMPOSER_HEADER_POST_TO] = header; - header = e_composer_text_header_new_label (_("S_ubject:"), NULL); + header = e_composer_text_header_new_label (_("S_ubject:")); composer_header_table_bind_header ("subject", "changed", header); table->priv->headers[E_COMPOSER_HEADER_SUBJECT] = header; diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c index 2a6942acd8..4c968d43d8 100644 --- a/composer/e-composer-header.c +++ b/composer/e-composer-header.c @@ -32,8 +32,6 @@ enum { PROP_0, PROP_BUTTON, PROP_LABEL, - PROP_ADDACTION, - PROP_ADDACTION_TEXT, PROP_SENSITIVE, PROP_VISIBLE }; @@ -47,8 +45,6 @@ enum { struct _EComposerHeaderPrivate { gchar *label; gboolean button; - gchar *addaction_text; - gboolean addaction; /*For Add button.*/ GtkWidget *action_label; GtkWidget *add_icon; @@ -71,15 +67,6 @@ composer_header_button_clicked_cb (GtkButton *button, g_signal_emit (header, signal_ids[CLICKED], 0); } -static void -composer_header_addaction_clicked_cb (GtkButton *button, - EComposerHeader *header) -{ - gboolean show = !e_composer_header_get_visible(header); - - e_composer_header_set_visible (header, show); -} - static GObject * composer_header_constructor (GType type, guint n_construct_properties, @@ -88,6 +75,7 @@ composer_header_constructor (GType type, GObject *object; GtkWidget *widget; EComposerHeader *header; + GtkWidget *label; /* Chain up to parent's constructor() method. */ object = G_OBJECT_CLASS (parent_class)->constructor ( @@ -102,51 +90,16 @@ composer_header_constructor (GType type, widget, "clicked", G_CALLBACK (composer_header_button_clicked_cb), header); + label = gtk_bin_get_child (GTK_BIN (widget)); } else { widget = gtk_label_new_with_mnemonic (header->priv->label); - gtk_label_set_mnemonic_widget ( - GTK_LABEL (widget), header->input_widget); + gtk_label_set_mnemonic_widget (GTK_LABEL (widget), header->input_widget); + label = widget; } + gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); + header->priv->action_label = NULL; - if (header->priv->addaction) { - GtkWidget *box, *tmp; - gchar *str; - - header->priv->action_label = gtk_label_new (NULL); - header->action_widget = gtk_button_new (); - box = gtk_hbox_new (FALSE, 0); - tmp = gtk_image_new_from_stock ( - GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON); - header->priv->add_icon = tmp; - gtk_box_pack_start((GtkBox *)box, tmp, FALSE, FALSE, 3); - tmp = gtk_image_new_from_stock ( - GTK_STOCK_REMOVE, GTK_ICON_SIZE_BUTTON); - header->priv->remove_icon = tmp; - gtk_box_pack_start((GtkBox *)box, tmp, FALSE, FALSE, 3); - tmp = gtk_label_new (NULL); - str = g_strdup_printf ( - "<span>%s %s</span>", _("Show"), - header->priv->addaction_text); - gtk_label_set_markup((GtkLabel *)tmp, str); - g_free (str); - header->priv->show_label = tmp; - gtk_box_pack_start((GtkBox *)box, tmp, FALSE, FALSE, 3); - tmp = gtk_label_new (NULL); - str = g_strdup_printf ( - "<span>%s %s</span>", _("Hide"), - header->priv->addaction_text); - gtk_label_set_markup((GtkLabel *)tmp, str); - header->priv->hide_label = tmp; - gtk_box_pack_start((GtkBox *)box, tmp, FALSE, FALSE, 3); - - gtk_container_add((GtkContainer *)header->action_widget, box); - gtk_widget_show_all(header->action_widget); - g_signal_connect ( - header->action_widget, "clicked", - G_CALLBACK (composer_header_addaction_clicked_cb), - header); - } header->title_widget = g_object_ref_sink (widget); @@ -171,14 +124,6 @@ composer_header_set_property (GObject *object, priv->button = g_value_get_boolean (value); return; - case PROP_ADDACTION: /* construct only */ - priv->addaction = g_value_get_boolean (value); - return; - - case PROP_ADDACTION_TEXT:/* construct only */ - priv->addaction_text = g_value_dup_string (value); - return; - case PROP_LABEL: /* construct only */ priv->label = g_value_dup_string (value); return; @@ -199,15 +144,6 @@ composer_header_set_property (GObject *object, G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); } -void -e_composer_header_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - composer_header_set_property (object, property_id, value, pspec); -} - static void composer_header_get_property (GObject *object, guint property_id, @@ -223,15 +159,6 @@ composer_header_get_property (GObject *object, g_value_set_boolean (value, priv->button); return; - case PROP_ADDACTION: /* construct only */ - g_value_set_boolean (value, priv->button); - return; - - case PROP_ADDACTION_TEXT: /* construct only */ - g_value_take_string ( - value, priv->addaction_text); - return; - case PROP_LABEL: /* construct only */ g_value_take_string ( value, e_composer_header_get_label ( @@ -300,28 +227,6 @@ composer_header_class_init (EComposerHeaderClass *class) g_object_class_install_property ( object_class, - PROP_ADDACTION, - g_param_spec_boolean ( - "addaction", - NULL, - NULL, - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property ( - object_class, - PROP_ADDACTION_TEXT, - g_param_spec_string ( - "addaction_text", - NULL, - NULL, - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY)); - - g_object_class_install_property ( - object_class, PROP_LABEL, g_param_spec_string ( "label", diff --git a/composer/e-composer-header.h b/composer/e-composer-header.h index 33600900e9..971b55968c 100644 --- a/composer/e-composer-header.h +++ b/composer/e-composer-header.h @@ -49,7 +49,6 @@ struct _EComposerHeader { GObject parent; GtkWidget *title_widget; GtkWidget *input_widget; - GtkWidget *action_widget; EComposerHeaderPrivate *priv; }; @@ -69,8 +68,6 @@ void e_composer_header_set_sensitive (EComposerHeader *header, gboolean e_composer_header_get_visible (EComposerHeader *header); void e_composer_header_set_visible (EComposerHeader *header, gboolean visible); -void e_composer_header_set_property (GObject *object, guint property_id, - const GValue *value, GParamSpec *pspec); void e_composer_header_set_title_tooltip (EComposerHeader *header, const gchar *tooltip); diff --git a/composer/e-composer-name-header.c b/composer/e-composer-name-header.c index 658e7cc292..39e079a790 100644 --- a/composer/e-composer-name-header.c +++ b/composer/e-composer-name-header.c @@ -292,33 +292,11 @@ e_composer_name_header_new (const gchar *label, { g_return_val_if_fail (E_IS_NAME_SELECTOR (name_selector), NULL); - return g_object_new ( - E_TYPE_COMPOSER_NAME_HEADER, "label", label, - "button", !e_msg_composer_get_lite(), "name-selector", name_selector, NULL); -} - -EComposerHeader * -e_composer_name_header_new_with_label (const gchar *label, - ENameSelector *name_selector) -{ - return g_object_new ( - E_TYPE_COMPOSER_NAME_HEADER, "label", label, - "button", !e_msg_composer_get_lite(), "name-selector", name_selector, - "addaction", FALSE, "visible", TRUE, NULL); -} - -EComposerHeader * -e_composer_name_header_new_with_action (const gchar *label, - const gchar *action_label, - ENameSelector *name_selector) -{ - g_return_val_if_fail (E_IS_NAME_SELECTOR (name_selector), NULL); - - return g_object_new ( - E_TYPE_COMPOSER_NAME_HEADER, "label", label, - "button", !e_msg_composer_get_lite(), "name-selector", name_selector, - "addaction_text", action_label, - "addaction", action_label != NULL, NULL); + return g_object_new (E_TYPE_COMPOSER_NAME_HEADER, + "label", label, + "button", TRUE, + "name-selector", name_selector, + NULL); } ENameSelector * diff --git a/composer/e-composer-name-header.h b/composer/e-composer-name-header.h index 100d6c8980..785f7d11e8 100644 --- a/composer/e-composer-name-header.h +++ b/composer/e-composer-name-header.h @@ -62,14 +62,6 @@ struct _EComposerNameHeaderClass { GType e_composer_name_header_get_type (void); EComposerHeader * e_composer_name_header_new (const gchar *label, ENameSelector *name_selector); -/*No button. Just a label.*/ -EComposerHeader * e_composer_name_header_new_with_label (const gchar *label, - ENameSelector *name_selector); - -/*No button. Label with a Link button for show/hide.*/ -EComposerHeader * e_composer_name_header_new_with_action (const gchar *label, - const gchar *action, - ENameSelector *name_selector); ENameSelector * e_composer_name_header_get_name_selector (EComposerNameHeader *header); diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c index b48f9b6cdf..5fbf7cdb86 100644 --- a/composer/e-composer-private.c +++ b/composer/e-composer-private.c @@ -145,9 +145,18 @@ e_composer_private_constructed (EMsgComposer *composer) html = gtkhtml_editor_get_html (editor); ui_manager = gtkhtml_editor_get_ui_manager (editor); - if (composer->lite) { + if (e_msg_composer_get_lite ()) { +#if 0 + /* In the lite composer, for small screens, we are not ready yet + * to hide the menubar. It still has useful items like the ones + * to show/hide the various header fields, plus the security options. + * + * When we move those options out of the menu and into the composer's + * toplevel, we can probably get rid of the menu. + */ widget = gtkhtml_editor_get_managed_widget (editor, "/main-menu"); gtk_widget_hide (widget); +#endif widget = gtkhtml_editor_get_managed_widget (editor, "/main-toolbar"); gtk_toolbar_set_style (GTK_TOOLBAR (widget), GTK_TOOLBAR_BOTH_HORIZ); gtk_widget_hide (widget); @@ -243,8 +252,8 @@ e_composer_private_constructed (EMsgComposer *composer) widget = e_composer_header_table_new (); gtk_container_set_border_width (GTK_CONTAINER (widget), 6); gtk_box_pack_start (GTK_BOX (editor->vbox), widget, FALSE, FALSE, 0); - if (composer->lite) - gtk_box_reorder_child (GTK_BOX (editor->vbox), widget, 0); + if (e_msg_composer_get_lite ()) + gtk_box_reorder_child (GTK_BOX (editor->vbox), widget, 1); else gtk_box_reorder_child (GTK_BOX (editor->vbox), widget, 2); @@ -253,7 +262,7 @@ e_composer_private_constructed (EMsgComposer *composer) /* Construct the attachment paned. */ - if (composer->lite) { + if (e_msg_composer_get_lite ()) { e_attachment_paned_set_default_height (75); /* short attachment bar for Anjal */ e_attachment_icon_view_set_default_icon_size (GTK_ICON_SIZE_BUTTON); } @@ -262,7 +271,7 @@ e_composer_private_constructed (EMsgComposer *composer) priv->attachment_paned = g_object_ref (widget); gtk_widget_show (widget); - if (composer->lite) { + if (e_msg_composer_get_lite ()) { GtkWidget *tmp, *tmp1, *tmp_box, *container; GtkWidget *combo; @@ -351,10 +360,6 @@ e_composer_private_constructed (EMsgComposer *composer) action = ACTION (VIEW_CC); break; - case E_COMPOSER_HEADER_FROM: - action = ACTION (VIEW_FROM); - break; - case E_COMPOSER_HEADER_REPLY_TO: action = ACTION (VIEW_REPLY_TO); break; diff --git a/composer/e-composer-text-header.c b/composer/e-composer-text-header.c index e765237a2d..efbf141cea 100644 --- a/composer/e-composer-text-header.c +++ b/composer/e-composer-text-header.c @@ -108,23 +108,21 @@ e_composer_text_header_get_type (void) } EComposerHeader * -e_composer_text_header_new_label (const gchar *label, const gchar *action_label) +e_composer_text_header_new_label (const gchar *label) { - return g_object_new ( - E_TYPE_COMPOSER_TEXT_HEADER, "label", label, - "button", FALSE, "addaction", action_label && *action_label, - "addaction_text", action_label, - "visible", action_label == NULL, NULL); + return g_object_new (E_TYPE_COMPOSER_TEXT_HEADER, + "label", label, + "button", FALSE, + NULL); } EComposerHeader * -e_composer_text_header_new_button (const gchar *label, const gchar *action_label) +e_composer_text_header_new_button (const gchar *label) { - return g_object_new ( - E_TYPE_COMPOSER_TEXT_HEADER, "label", label, - "button", TRUE, "addaction", action_label != NULL, - "addaction_text", action_label, - "visible", action_label == NULL, NULL); + return g_object_new (E_TYPE_COMPOSER_TEXT_HEADER, + "label", label, + "button", TRUE, + NULL); } const gchar * diff --git a/composer/e-composer-text-header.h b/composer/e-composer-text-header.h index 74fb86f9b0..278b2b1116 100644 --- a/composer/e-composer-text-header.h +++ b/composer/e-composer-text-header.h @@ -59,10 +59,10 @@ struct _EComposerTextHeaderClass { GType e_composer_text_header_get_type (void); EComposerHeader * -e_composer_text_header_new_label (const gchar *label, const gchar *action_label); +e_composer_text_header_new_label (const gchar *label); EComposerHeader * -e_composer_text_header_new_button (const gchar *label, const gchar *action_label); +e_composer_text_header_new_button (const gchar *label); const gchar * e_composer_text_header_get_text (EComposerTextHeader *header); void e_composer_text_header_set_text (EComposerTextHeader *header, diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index cf10578af0..469327214a 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -85,8 +85,6 @@ enum { LAST_SIGNAL }; -gboolean composer_lite = FALSE; - static gpointer parent_class; static guint signals[LAST_SIGNAL]; @@ -381,7 +379,7 @@ add_inlined_images (EMsgComposer *composer, CamelMultipart *multipart) } /* These functions builds a CamelMimeMessage for the message that the user has - * composed in `composer'. + * composed in 'composer'. */ static void @@ -1657,6 +1655,7 @@ msg_composer_constructed (GObject *object) g_signal_connect (object, "delete-event", G_CALLBACK (msg_composer_delete_event_cb), NULL); + e_shell_adapt_window_size (shell, GTK_WINDOW (composer)); e_shell_watch_window (shell, GTK_WINDOW (object)); /* Restore Persistent State */ @@ -1677,10 +1676,6 @@ msg_composer_constructed (GObject *object) /* Honor User Preferences */ - active = e_shell_settings_get_boolean ( - shell_settings, "composer-format-html"); - gtkhtml_editor_set_html_mode (GTKHTML_EDITOR (composer), active); - action = GTK_TOGGLE_ACTION (ACTION (REQUEST_READ_RECEIPT)); active = e_shell_settings_get_boolean ( shell_settings, "composer-request-receipt"); @@ -2150,8 +2145,14 @@ msg_composer_class_init (EMsgComposerClass *class) static void msg_composer_init (EMsgComposer *composer) { - composer->lite = composer_lite; + EShell *shell = e_shell_get_default (); + composer->priv = E_MSG_COMPOSER_GET_PRIVATE (composer); + + if (e_shell_get_express_mode (shell)) { + GtkWindow *window = e_shell_get_active_window(shell); + gtk_window_set_transient_for (GTK_WINDOW(composer), window); + } } GType @@ -2197,29 +2198,21 @@ e_msg_composer_new (void) "html", e_web_view_new (), NULL); } -void -e_msg_composer_set_lite (void) -{ - composer_lite = TRUE; -} - +/** + * e_msg_composer_get_lite: + * + * Used within the composer to see if it should be made suitable for small + * screens. + * + * Return value: whether the surrounding #EShell is in small screen mode. + */ gboolean e_msg_composer_get_lite (void) { - return composer_lite; -} - -EMsgComposer * -e_msg_composer_lite_new (void) -{ - EMsgComposer *composer; - - /* Init lite-composer for ever for the session */ - composer_lite = TRUE; - - composer = e_msg_composer_new (); + EShell *shell; - return composer; + shell = e_shell_get_default (); + return e_shell_get_small_screen_mode (shell); } EFocusTracker * diff --git a/composer/e-msg-composer.h b/composer/e-msg-composer.h index c55237ce52..884b077862 100644 --- a/composer/e-msg-composer.h +++ b/composer/e-msg-composer.h @@ -63,7 +63,6 @@ typedef struct _EMsgComposerPrivate EMsgComposerPrivate; struct _EMsgComposer { GtkhtmlEditor parent; EMsgComposerPrivate *priv; - gboolean lite; }; struct _EMsgComposerClass { @@ -72,9 +71,7 @@ struct _EMsgComposerClass { GType e_msg_composer_get_type (void); EMsgComposer * e_msg_composer_new (void); -void e_msg_composer_set_lite (void); gboolean e_msg_composer_get_lite (void); -EMsgComposer * e_msg_composer_lite_new (void); EMsgComposer * e_msg_composer_new_with_message (CamelMimeMessage *msg); EMsgComposer * e_msg_composer_new_from_url (const gchar *url); EMsgComposer * e_msg_composer_new_redirect (CamelMimeMessage *message, diff --git a/composer/evolution-composer.ui b/composer/evolution-composer.ui index 3b1fee7a72..f283d35dcb 100644 --- a/composer/evolution-composer.ui +++ b/composer/evolution-composer.ui @@ -22,7 +22,6 @@ </placeholder> <placeholder name='pre-insert-menu'> <menu action='view-menu'> - <menuitem action='view-from'/> <menuitem action='view-reply-to'/> <menuitem action='view-cc'/> <menuitem action='view-bcc'/> diff --git a/composer/mail-composer.error.xml b/composer/mail-composer.error.xml index b9789c23e0..b9d1a3891d 100644 --- a/composer/mail-composer.error.xml +++ b/composer/mail-composer.error.xml @@ -2,13 +2,13 @@ <error-list domain="mail-composer"> <error id="no-attach" type="error" modal="true"> - <_primary>You cannot attach the file `{0}' to this message.</_primary> + <_primary>You cannot attach the file n{0}' to this message.</_primary> <!--For Translators: '{1}' is the exception description,describing why the file could not be attached to the message --> <secondary>{1}</secondary> </error> <error id="attach-notfile" type="warning"> - <_primary>The file `{0}' is not a regular file and cannot be sent in a message.</_primary> + <_primary>The file '{0}' is not a regular file and cannot be sent in a message.</_primary> </error> <error id="attach-nomessages" type="error"> diff --git a/configure.ac b/configure.ac index ba30c04103..5aea6ea15c 100644 --- a/configure.ac +++ b/configure.ac @@ -69,6 +69,7 @@ AS_COMPILER_FLAGS(WARNING_FLAGS, -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED + -DEDS_DISABLE_DEPRECATED -DG_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES -Wall -Wextra @@ -1175,10 +1176,21 @@ if test "$enable_sens" = yes; then AC_SUBST(HAVE_SENS) AC_SUBST(SENS_LIBS) fi - AM_CONDITIONAL([ENABLE_WINDOWS_SENS], [test "$enable_sens" = yes]) dnl ****************************** +dnl Enable ConnMan support ? +dnl ****************************** +AC_ARG_ENABLE([connman], + [AS_HELP_STRING([--enable-connman], + [enable ConnMan support (default=no)])], + [enable_connman=$enableval],[enable_connman=no]) +if test "x$enable_nm$enable_connman" = "xyesyes"; then + AC_MSG_ERROR([It is not possible to enable both ConnMan and NetworkManager]) +fi +AM_CONDITIONAL([ENABLE_CONNMAN], [test "$enable_connman" = yes]) + +dnl ****************************** dnl Camel Flags dnl ****************************** EVO_SET_COMPILE_FLAGS(CAMEL, camel-provider-1.2, $MANUAL_NSS_CFLAGS, $MOXILLA_NSS_CFLAGS) @@ -1732,6 +1744,7 @@ modules/addressbook/Makefile modules/calendar/Makefile modules/mail/Makefile modules/network-manager/Makefile +modules/connman/Makefile modules/plugin-lib/Makefile modules/plugin-mono/Makefile modules/plugin-python/Makefile @@ -1783,6 +1796,7 @@ smime/gui/Makefile sounds/Makefile capplet/Makefile capplet/settings/Makefile +capplet/settings/mail-autoconfig/Makefile evolution-zip evolution-calendar.pc evolution-mail.pc @@ -1804,6 +1818,7 @@ echo " LDAP support: $msg_ldap NetworkManager: $enable_nm Windows SENS: $enable_sens + ConnMan: $enable_connman Pilot conduits: $msg_pilot Libnotify: $HAVE_LIBNOTIFY Kerberos 5: $msg_krb5 diff --git a/data/evolution-alarm-notify.desktop.in.in b/data/evolution-alarm-notify.desktop.in.in index ba15661d3e..4f382a4a36 100644 --- a/data/evolution-alarm-notify.desktop.in.in +++ b/data/evolution-alarm-notify.desktop.in.in @@ -7,7 +7,8 @@ Exec=@PRIVLIBEXECDIR@/evolution-alarm-notify Terminal=false Type=Application Categories= -OnlyShowIn=GNOME;XFCE; +OnlyShowIn=GNOME;XFCE;MOBLIN; +X-Moblin-Priority=Low X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=evolution X-GNOME-Bugzilla-Component=calendar diff --git a/doc/reference/shell/eshell-docs.sgml b/doc/reference/shell/eshell-docs.sgml index 99948f5007..2556a58320 100644 --- a/doc/reference/shell/eshell-docs.sgml +++ b/doc/reference/shell/eshell-docs.sgml @@ -37,7 +37,6 @@ <xi:include href="xml/e-html-utils.xml"/> <xi:include href="xml/e-icon-factory.xml"/> <xi:include href="xml/e-logger.xml"/> - <xi:include href="xml/e-module.xml"/> <xi:include href="xml/e-print.xml"/> <xi:include href="xml/e-selection.xml"/> <xi:include href="xml/e-signature.xml"/> @@ -49,6 +48,13 @@ </chapter> <chapter> + <title>Extending Evolution</title> + <xi:include href="xml/e-module.xml"/> + <xi:include href="xml/e-extension.xml"/> + <xi:include href="xml/e-extensible.xml"/> + </chapter> + + <chapter> <title>Actions</title> <xi:include href="xml/shell-actions.xml"/> <xi:include href="xml/action-groups.xml"/> diff --git a/doc/reference/shell/eshell-sections.txt b/doc/reference/shell/eshell-sections.txt index be5171cb3d..c176e23ee3 100644 --- a/doc/reference/shell/eshell-sections.txt +++ b/doc/reference/shell/eshell-sections.txt @@ -70,12 +70,11 @@ EShellBackendPrivate <TITLE>EShellContent</TITLE> EShellContent e_shell_content_new -e_shell_content_get_searchbar +e_shell_content_set_searchbar e_shell_content_check_state e_shell_content_get_shell_view e_shell_content_get_view_id e_shell_content_set_view_id -e_shell_content_get_search_name e_shell_content_run_advanced_search_dialog e_shell_content_run_edit_searches_dialog e_shell_content_run_save_search_dialog @@ -98,11 +97,13 @@ EShellContentPrivate EShellSearchbar e_shell_searchbar_new e_shell_searchbar_get_shell_view +e_shell_searchbar_get_express_mode +e_shell_searchbar_set_express_mode e_shell_searchbar_get_filter_combo_box e_shell_searchbar_get_filter_visible e_shell_searchbar_set_filter_visible -e_shell_searchbar_get_label_visible -e_shell_searchbar_set_label_visible +e_shell_searchbar_get_labels_visible +e_shell_searchbar_set_labels_visible e_shell_searchbar_get_search_hint e_shell_searchbar_set_search_hint e_shell_searchbar_get_search_option @@ -260,6 +261,8 @@ e_shell_view_set_view_id e_shell_view_is_active e_shell_view_get_page_num e_shell_view_set_page_num +e_shell_view_get_searchbar +e_shell_view_get_search_name e_shell_view_get_search_rule e_shell_view_set_search_rule e_shell_view_get_search_query @@ -441,6 +444,41 @@ e_dialog_combo_box_get </SECTION> <SECTION> +<FILE>e-extensible</FILE> +<TITLE>EExtensible</TITLE> +EExtensible +e_extensible_load_extensions +e_extensible_list_extensions +<SUBSECTION Standard> +E_EXTENSIBLE +E_IS_EXTENSIBLE +E_TYPE_EXTENSIBLE +E_EXTENSIBLE_INTERFACE +E_IS_EXTENSIBLE_INTERFACE +E_EXTENSIBLE_GET_INTERFACE +EExtensibleInterface +e_extensible_get_type +</SECTION> + +<SECTION> +<FILE>e-extension</FILE> +<TITLE>EExtension</TITLE> +EExtension +e_extension_get_extensible +<SUBSECTION Standard> +E_EXTENSION +E_IS_EXTENSION +E_TYPE_EXTENSION +E_EXTENSION_CLASS +E_IS_EXTENSION_CLASS +E_EXTENSION_GET_CLASS +EExtensionClass +e_extension_get_type +<SUBSECTION Private> +EExtensionPrivate +</SECTION> + +<SECTION> <FILE>e-html-utils</FILE> <TITLE>Text to HTML Conversion</TITLE> E_TEXT_TO_HTML_PRE @@ -489,7 +527,7 @@ ELoggerPrivate <SECTION> <FILE>e-module</FILE> -<TITLE>Generic Module Loader</TITLE> +<TITLE>EModule</TITLE> EModule e_module_new e_module_get_filename @@ -610,6 +648,7 @@ e_run_signature_script <FILE>e-util</FILE> <TITLE>Miscellaneous Utilities</TITLE> e_get_user_data_dir +e_get_gnome2_user_dir e_get_accels_filename e_show_uri e_display_help diff --git a/doc/reference/shell/eshell.types b/doc/reference/shell/eshell.types index ae84ef0905..b5c41aecf6 100644 --- a/doc/reference/shell/eshell.types +++ b/doc/reference/shell/eshell.types @@ -1,4 +1,6 @@ e_bit_array_get_type +e_extensible_get_type +e_extension_get_type e_logger_get_type e_module_get_type e_signature_get_type diff --git a/doc/reference/shell/tmpl/Evolution-DataServer.sgml b/doc/reference/shell/tmpl/Evolution-DataServer.sgml deleted file mode 100644 index 181b45f301..0000000000 --- a/doc/reference/shell/tmpl/Evolution-DataServer.sgml +++ /dev/null @@ -1,1139 +0,0 @@ -<!-- ##### SECTION Title ##### --> -Evolution-DataServer - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### MACRO ORBIT_IDL_SERIAL ##### --> -<para> - -</para> - - - -<!-- ##### MACRO ORBIT_DECL_GNOME_Evolution_DataServer_Config ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Config__freekids ##### --> -<para> - -</para> - - - -<!-- ##### TYPEDEF GNOME_Evolution_DataServer_Config ##### --> -<para> - -</para> - - -<!-- ##### VARIABLE GNOME_Evolution_DataServer_Config__classid ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_0 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_1 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_2 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_3 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_4 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_5 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_6 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_7 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_8 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_9 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_10 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_11 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_12 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_13 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_14 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_15 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_16 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_17 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_18 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_19 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_Config ##### --> -<para> - -</para> - - - -<!-- ##### MACRO ORBIT_DECL_GNOME_Evolution_DataServer_InterfaceCheck ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck__freekids ##### --> -<para> - -</para> - - - -<!-- ##### TYPEDEF GNOME_Evolution_DataServer_InterfaceCheck ##### --> -<para> - -</para> - - -<!-- ##### VARIABLE GNOME_Evolution_DataServer_InterfaceCheck__classid ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_0 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_1 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_2 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_3 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_4 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_5 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_6 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_7 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_8 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_9 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_10 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_11 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_12 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_13 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_14 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_15 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_16 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_17 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_18 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_19 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_InterfaceCheck ##### --> -<para> - -</para> - - - -<!-- ##### MACRO ORBIT_DECL_GNOME_Evolution_DataServer_Logging ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging__freekids ##### --> -<para> - -</para> - - - -<!-- ##### TYPEDEF GNOME_Evolution_DataServer_Logging ##### --> -<para> - -</para> - - -<!-- ##### VARIABLE GNOME_Evolution_DataServer_Logging__classid ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_0 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_1 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_2 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_3 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_4 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_5 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_6 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_7 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_8 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_9 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_10 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_11 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_12 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_13 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_14 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_15 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_16 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_17 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_18 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_19 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_Logging ##### --> -<para> - -</para> - - - -<!-- ##### ENUM GNOME_Evolution_DataServer_Logging_Level ##### --> -<para> - -</para> - -@GNOME_Evolution_DataServer_Logging_Error: -@GNOME_Evolution_DataServer_Logging_Critical: -@GNOME_Evolution_DataServer_Logging_Warning: -@GNOME_Evolution_DataServer_Logging_Message: -@GNOME_Evolution_DataServer_Logging_Info: -@GNOME_Evolution_DataServer_Logging_Debug: - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_0 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_1 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_2 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_3 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_4 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_5 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_6 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_7 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_8 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_9 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_10 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_11 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_12 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_13 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_14 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_15 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_16 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_17 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_18 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_19 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_Logging_Level ##### --> -<para> - -</para> - - - -<!-- ##### TYPEDEF GNOME_Evolution_DataServer_Logging_LogEvent ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_0 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_1 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_2 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_3 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_4 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_5 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_6 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_7 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_8 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_9 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_10 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_11 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_12 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_13 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_14 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_15 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_16 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_17 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_18 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_19 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_Logging_LogEvent ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_LogEvent__alloc ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_LogEvent__freekids ##### --> -<para> - -</para> - -@m: -@d: - - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Config__epv ##### --> -<para> - -</para> - -@_private: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Config__vepv ##### --> -<para> - -</para> - -@_base_epv: -@GNOME_Evolution_DataServer_Config_epv: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Config ##### --> -<para> - -</para> - -@_private: -@vepv: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_Config__init ##### --> -<para> - -</para> - -@servant: -@ev: - - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_Config__fini ##### --> -<para> - -</para> - -@servant: -@ev: - - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_InterfaceCheck__epv ##### --> -<para> - -</para> - -@_private: -@_get_interfaceVersion: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_InterfaceCheck__vepv ##### --> -<para> - -</para> - -@_base_epv: -@Bonobo_Unknown_epv: -@GNOME_Evolution_DataServer_InterfaceCheck_epv: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_InterfaceCheck ##### --> -<para> - -</para> - -@_private: -@vepv: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_InterfaceCheck__init ##### --> -<para> - -</para> - -@servant: -@ev: - - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_InterfaceCheck__fini ##### --> -<para> - -</para> - -@servant: -@ev: - - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Logging__epv ##### --> -<para> - -</para> - -@_private: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Logging__vepv ##### --> -<para> - -</para> - -@_base_epv: -@Bonobo_Unknown_epv: -@Bonobo_EventSource_epv: -@GNOME_Evolution_DataServer_Logging_epv: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Logging ##### --> -<para> - -</para> - -@_private: -@vepv: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_Logging__init ##### --> -<para> - -</para> - -@servant: -@ev: - - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_Logging__fini ##### --> -<para> - -</para> - -@servant: -@ev: - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck_ref ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck_unref ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck_queryInterface ##### --> -<para> - -</para> - - - -<!-- ##### FUNCTION GNOME_Evolution_DataServer_InterfaceCheck__get_interfaceVersion ##### --> -<para> - -</para> - -@_obj: -@ev: -@Returns: - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_ref ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_unref ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_queryInterface ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_addListener ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_addListenerWithMask ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_removeListener ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_unImplemented ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_unImplemented2 ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Config_IMETHODS_LEN ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Config__imethods ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck_IMETHODS_LEN ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_IMETHODS_LEN ##### --> -<para> - -</para> - - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging__imethods ##### --> -<para> - -</para> - - - -<!-- ##### ENUM GNOME_Evolution_DataServer_InterfaceCheck__imethods_index ##### --> -<para> - -</para> - -@GNOME_Evolution_DataServer_InterfaceCheck__get_interfaceVersion__imethods_index: - -<!-- ##### MACRO ORBIT_IMETHODS_INDEX ##### --> -<para> - -</para> - -@m: - - diff --git a/doc/reference/shell/tmpl/e-account-utils.sgml b/doc/reference/shell/tmpl/e-account-utils.sgml index 2a2a841eb4..c0bdd3aebf 100644 --- a/doc/reference/shell/tmpl/e-account-utils.sgml +++ b/doc/reference/shell/tmpl/e-account-utils.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -Mail Account Functions +Mail Accounts <!-- ##### SECTION Short_Description ##### --> diff --git a/doc/reference/shell/tmpl/e-activity-handler.sgml b/doc/reference/shell/tmpl/e-activity-handler.sgml deleted file mode 100644 index 09d417213d..0000000000 --- a/doc/reference/shell/tmpl/e-activity-handler.sgml +++ /dev/null @@ -1,19 +0,0 @@ -<!-- ##### SECTION Title ##### --> -EActivityHandler - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - diff --git a/doc/reference/shell/tmpl/e-categories-config.sgml b/doc/reference/shell/tmpl/e-categories-config.sgml index 3e08620ee6..29b36220c2 100644 --- a/doc/reference/shell/tmpl/e-categories-config.sgml +++ b/doc/reference/shell/tmpl/e-categories-config.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -Category Functions +Categories <!-- ##### SECTION Short_Description ##### --> diff --git a/doc/reference/shell/tmpl/e-config-upgrade.sgml b/doc/reference/shell/tmpl/e-config-upgrade.sgml deleted file mode 100644 index 0ef774b3dd..0000000000 --- a/doc/reference/shell/tmpl/e-config-upgrade.sgml +++ /dev/null @@ -1,32 +0,0 @@ -<!-- ##### SECTION Title ##### --> -e-config-upgrade - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### FUNCTION e_config_upgrade ##### --> -<para> - -</para> - -@major: -@minor: -@revision: -@Returns: - - diff --git a/doc/reference/shell/tmpl/e-datetime-format.sgml b/doc/reference/shell/tmpl/e-datetime-format.sgml index c2f38c48f0..7dee839d75 100644 --- a/doc/reference/shell/tmpl/e-datetime-format.sgml +++ b/doc/reference/shell/tmpl/e-datetime-format.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -Date and Time Formatting Functions +Date and Time Formatting <!-- ##### SECTION Short_Description ##### --> diff --git a/doc/reference/shell/tmpl/e-dialog-utils.sgml b/doc/reference/shell/tmpl/e-dialog-utils.sgml index 8ae4004470..69dd22d7bb 100644 --- a/doc/reference/shell/tmpl/e-dialog-utils.sgml +++ b/doc/reference/shell/tmpl/e-dialog-utils.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -Dialog Window Functions (Legacy) +Dialog Utilities (Legacy) <!-- ##### SECTION Short_Description ##### --> diff --git a/doc/reference/shell/tmpl/e-shell-marshal.sgml b/doc/reference/shell/tmpl/e-extensible.sgml index 27f0c92196..333d8238fc 100644 --- a/doc/reference/shell/tmpl/e-shell-marshal.sgml +++ b/doc/reference/shell/tmpl/e-extensible.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -e-shell-marshal +EExtensible <!-- ##### SECTION Short_Description ##### --> @@ -9,33 +9,38 @@ e-shell-marshal </para> - <!-- ##### SECTION See_Also ##### --> <para> </para> - <!-- ##### SECTION Stability_Level ##### --> -<!-- ##### FUNCTION e_shell_marshal_BOOLEAN__STRING ##### --> +<!-- ##### SECTION Image ##### --> + + +<!-- ##### STRUCT EExtensible ##### --> +<para> + +</para> + + +<!-- ##### FUNCTION e_extensible_load_extensions ##### --> <para> </para> -@closure: -@return_value: -@n_param_values: -@param_values: -@invocation_hint: -@marshal_data: +@extensible: -<!-- ##### MACRO e_shell_marshal_BOOL__STRING ##### --> +<!-- ##### FUNCTION e_extensible_list_extensions ##### --> <para> </para> +@extensible: +@extension_type: +@Returns: diff --git a/doc/reference/shell/tmpl/e-test-shell-view.sgml b/doc/reference/shell/tmpl/e-extension.sgml index 2c9c912c20..49a3a13b70 100644 --- a/doc/reference/shell/tmpl/e-test-shell-view.sgml +++ b/doc/reference/shell/tmpl/e-extension.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -ETestShellView +EExtension <!-- ##### SECTION Short_Description ##### --> @@ -9,33 +9,34 @@ ETestShellView </para> - <!-- ##### SECTION See_Also ##### --> <para> </para> - <!-- ##### SECTION Stability_Level ##### --> -<!-- ##### VARIABLE e_test_shell_view_type ##### --> +<!-- ##### SECTION Image ##### --> + + +<!-- ##### STRUCT EExtension ##### --> <para> </para> -<!-- ##### STRUCT ETestShellViewPrivate ##### --> +<!-- ##### ARG EExtension:extensible ##### --> <para> </para> - -<!-- ##### STRUCT ETestShellView ##### --> +<!-- ##### FUNCTION e_extension_get_extensible ##### --> <para> </para> -@parent: -@priv: +@extension: +@Returns: + diff --git a/doc/reference/shell/tmpl/e-icon-factory.sgml b/doc/reference/shell/tmpl/e-icon-factory.sgml index 7591260841..ddd24e66ba 100644 --- a/doc/reference/shell/tmpl/e-icon-factory.sgml +++ b/doc/reference/shell/tmpl/e-icon-factory.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -Icon Functions (Legacy) +Icon Utilities (Legacy) <!-- ##### SECTION Short_Description ##### --> diff --git a/doc/reference/shell/tmpl/e-module.sgml b/doc/reference/shell/tmpl/e-module.sgml index 0f67b1c4dd..eedd4e4477 100644 --- a/doc/reference/shell/tmpl/e-module.sgml +++ b/doc/reference/shell/tmpl/e-module.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -Generic Module Loader +EModule <!-- ##### SECTION Short_Description ##### --> diff --git a/doc/reference/shell/tmpl/e-print.sgml b/doc/reference/shell/tmpl/e-print.sgml index 3654eaeb80..81a9bb6864 100644 --- a/doc/reference/shell/tmpl/e-print.sgml +++ b/doc/reference/shell/tmpl/e-print.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -Printing Functions +Printing <!-- ##### SECTION Short_Description ##### --> diff --git a/doc/reference/shell/tmpl/e-shell-backend.sgml b/doc/reference/shell/tmpl/e-shell-backend.sgml index 8fdd37fb62..20df66ac75 100644 --- a/doc/reference/shell/tmpl/e-shell-backend.sgml +++ b/doc/reference/shell/tmpl/e-shell-backend.sgml @@ -34,11 +34,6 @@ EShellBackend @eshellbackend: the object which received the signal. @arg1: -<!-- ##### ARG EShellBackend:shell ##### --> -<para> - -</para> - <!-- ##### FUNCTION e_shell_backend_compare ##### --> <para> diff --git a/doc/reference/shell/tmpl/e-shell-common.sgml b/doc/reference/shell/tmpl/e-shell-common.sgml deleted file mode 100644 index 1932480643..0000000000 --- a/doc/reference/shell/tmpl/e-shell-common.sgml +++ /dev/null @@ -1,21 +0,0 @@ -<!-- ##### SECTION Title ##### --> -e-shell-common - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - diff --git a/doc/reference/shell/tmpl/e-shell-constants.sgml b/doc/reference/shell/tmpl/e-shell-constants.sgml deleted file mode 100644 index 74b95024a8..0000000000 --- a/doc/reference/shell/tmpl/e-shell-constants.sgml +++ /dev/null @@ -1,140 +0,0 @@ -<!-- ##### SECTION Title ##### --> -e-shell-constants - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### MACRO E_SHELL_URI_PREFIX ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SHELL_URI_PREFIX_LEN ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SHELL_DEFAULTURI_PREFIX ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SHELL_DEFAULTURI_PREFIX_LEN ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SHELL_MINI_ICON_SUFFIX ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SHELL_MINI_ICON_SUFFIX_LEN ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SHELL_ICON_SIZE ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SHELL_MINI_ICON_SIZE ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_PATH_SEPARATOR ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_PATH_SEPARATOR_S ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_LOCAL_STORAGE_NAME ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SUMMARY_STORAGE_NAME ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_SUMMARY_URI ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_LOCAL_INBOX_URI ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_LOCAL_CONTACTS_URI ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_LOCAL_CALENDAR_URI ##### --> -<para> - -</para> - - - -<!-- ##### MACRO E_LOCAL_TASKS_URI ##### --> -<para> - -</para> - - - diff --git a/doc/reference/shell/tmpl/e-shell-content.sgml b/doc/reference/shell/tmpl/e-shell-content.sgml index 0236e7366e..b6e1bde70a 100644 --- a/doc/reference/shell/tmpl/e-shell-content.sgml +++ b/doc/reference/shell/tmpl/e-shell-content.sgml @@ -40,13 +40,13 @@ EShellContent @Returns: -<!-- ##### FUNCTION e_shell_content_get_searchbar ##### --> +<!-- ##### FUNCTION e_shell_content_set_searchbar ##### --> <para> </para> @shell_content: -@Returns: +@searchbar: <!-- ##### FUNCTION e_shell_content_check_state ##### --> @@ -85,15 +85,6 @@ EShellContent @view_id: -<!-- ##### FUNCTION e_shell_content_get_search_name ##### --> -<para> - -</para> - -@shell_content: -@Returns: - - <!-- ##### FUNCTION e_shell_content_run_advanced_search_dialog ##### --> <para> diff --git a/doc/reference/shell/tmpl/e-shell-module.sgml b/doc/reference/shell/tmpl/e-shell-module.sgml deleted file mode 100644 index f74773c9da..0000000000 --- a/doc/reference/shell/tmpl/e-shell-module.sgml +++ /dev/null @@ -1,180 +0,0 @@ -<!-- ##### SECTION Title ##### --> -EShellModule - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT EShellModule ##### --> -<para> - -</para> - - -<!-- ##### SIGNAL EShellModule::activity-added ##### --> -<para> - -</para> - -@eshellmodule: the object which received the signal. -@arg1: - -<!-- ##### ARG EShellModule:filename ##### --> -<para> - -</para> - -<!-- ##### ARG EShellModule:shell ##### --> -<para> - -</para> - -<!-- ##### STRUCT EShellModuleInfo ##### --> -<para> - -</para> - -@name: -@aliases: -@schemes: -@sort_order: -@start: -@is_busy: -@shutdown: -@migrate: - -<!-- ##### FUNCTION e_shell_module_new ##### --> -<para> - -</para> - -@shell: -@filename: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_compare ##### --> -<para> - -</para> - -@shell_module_a: -@shell_module_b: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_get_config_dir ##### --> -<para> - -</para> - -@shell_module: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_get_data_dir ##### --> -<para> - -</para> - -@shell_module: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_get_filename ##### --> -<para> - -</para> - -@shell_module: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_get_shell ##### --> -<para> - -</para> - -@shell_module: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_get_shell_view_type ##### --> -<para> - -</para> - -@shell_module: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_add_activity ##### --> -<para> - -</para> - -@shell_module: -@activity: - - -<!-- ##### FUNCTION e_shell_module_start ##### --> -<para> - -</para> - -@shell_module: - - -<!-- ##### FUNCTION e_shell_module_is_busy ##### --> -<para> - -</para> - -@shell_module: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_shutdown ##### --> -<para> - -</para> - -@shell_module: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_migrate ##### --> -<para> - -</para> - -@shell_module: -@major: -@minor: -@micro: -@error: -@Returns: - - -<!-- ##### FUNCTION e_shell_module_set_info ##### --> -<para> - -</para> - -@shell_module: -@info: -@shell_view_type: - - diff --git a/doc/reference/shell/tmpl/e-shell-searchbar.sgml b/doc/reference/shell/tmpl/e-shell-searchbar.sgml index 98162ab37a..fd575ae949 100644 --- a/doc/reference/shell/tmpl/e-shell-searchbar.sgml +++ b/doc/reference/shell/tmpl/e-shell-searchbar.sgml @@ -26,6 +26,11 @@ EShellSearchbar </para> +<!-- ##### ARG EShellSearchbar:express-mode ##### --> +<para> + +</para> + <!-- ##### ARG EShellSearchbar:filter-combo-box ##### --> <para> @@ -36,7 +41,7 @@ EShellSearchbar </para> -<!-- ##### ARG EShellSearchbar:label-visible ##### --> +<!-- ##### ARG EShellSearchbar:labels-visible ##### --> <para> </para> @@ -99,6 +104,24 @@ EShellSearchbar @Returns: +<!-- ##### FUNCTION e_shell_searchbar_get_express_mode ##### --> +<para> + +</para> + +@searchbar: +@Returns: + + +<!-- ##### FUNCTION e_shell_searchbar_set_express_mode ##### --> +<para> + +</para> + +@searchbar: +@express_mode: + + <!-- ##### FUNCTION e_shell_searchbar_get_filter_combo_box ##### --> <para> @@ -126,7 +149,7 @@ EShellSearchbar @filter_visible: -<!-- ##### FUNCTION e_shell_searchbar_get_label_visible ##### --> +<!-- ##### FUNCTION e_shell_searchbar_get_labels_visible ##### --> <para> </para> @@ -135,13 +158,13 @@ EShellSearchbar @Returns: -<!-- ##### FUNCTION e_shell_searchbar_set_label_visible ##### --> +<!-- ##### FUNCTION e_shell_searchbar_set_labels_visible ##### --> <para> </para> @searchbar: -@label_visible: +@labels_visible: <!-- ##### FUNCTION e_shell_searchbar_get_search_hint ##### --> diff --git a/doc/reference/shell/tmpl/e-shell-view.sgml b/doc/reference/shell/tmpl/e-shell-view.sgml index 003ede945c..fb901aefad 100644 --- a/doc/reference/shell/tmpl/e-shell-view.sgml +++ b/doc/reference/shell/tmpl/e-shell-view.sgml @@ -136,6 +136,8 @@ EShellView @new_shell_content: @new_shell_sidebar: @new_shell_taskbar: +@construct_searchbar: +@get_search_name: @toggled: @clear_search: @custom_search: @@ -223,6 +225,24 @@ EShellView @page_num: +<!-- ##### FUNCTION e_shell_view_get_searchbar ##### --> +<para> + +</para> + +@shell_view: +@Returns: + + +<!-- ##### FUNCTION e_shell_view_get_search_name ##### --> +<para> + +</para> + +@shell_view: +@Returns: + + <!-- ##### FUNCTION e_shell_view_get_search_rule ##### --> <para> diff --git a/doc/reference/shell/tmpl/e-shell-window-actions.sgml b/doc/reference/shell/tmpl/e-shell-window-actions.sgml deleted file mode 100644 index 48e6f44203..0000000000 --- a/doc/reference/shell/tmpl/e-shell-window-actions.sgml +++ /dev/null @@ -1,309 +0,0 @@ -<!-- ##### SECTION Title ##### --> -Global Actions - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION ##### --> -<para> - -</para> - -@window: -@name: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GROUP ##### --> -<para> - -</para> - -@window: -@name: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_ABOUT ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_CLOSE ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_FAQ ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_FORGET_PASSWORDS ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GAL_CUSTOM_VIEW ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GAL_DEFINE_VIEWS ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GAL_SAVE_CUSTOM_VIEW ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GAL_VIEW_MENU ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_IMPORT ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_NEW_WINDOW ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_PAGE_SETUP ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_PREFERENCES ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_QUICK_REFERENCE ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_QUIT ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SEARCH_ADVANCED ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SEARCH_CLEAR ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SEARCH_EDIT ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SEARCH_EXECUTE ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SEARCH_SAVE ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SEND_RECEIVE ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SHOW_SIDEBAR ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SHOW_STATUSBAR ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SHOW_SWITCHER ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SHOW_TOOLBAR ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SUBMIT_BUG ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SWITCHER_STYLE_ICONS ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SYNC_OPTIONS ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_WORK_OFFLINE ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_WORK_ONLINE ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GROUP_GAL_VIEW ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GROUP_NEW_ITEM ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GROUP_NEW_SOURCE ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GROUP_SHELL ##### --> -<para> - -</para> - -@window: - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GROUP_SHELL_VIEW ##### --> -<para> - -</para> - -@window: - - diff --git a/doc/reference/shell/tmpl/e-shell-window-private.sgml b/doc/reference/shell/tmpl/e-shell-window-private.sgml deleted file mode 100644 index 6c1c6d0e72..0000000000 --- a/doc/reference/shell/tmpl/e-shell-window-private.sgml +++ /dev/null @@ -1,25 +0,0 @@ -<!-- ##### SECTION Title ##### --> -e-shell-window-private - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT EShellWindowPrivate ##### --> -<para> - -</para> - - diff --git a/doc/reference/shell/tmpl/e-shell.sgml b/doc/reference/shell/tmpl/e-shell.sgml index 5210c05c51..2287392fee 100644 --- a/doc/reference/shell/tmpl/e-shell.sgml +++ b/doc/reference/shell/tmpl/e-shell.sgml @@ -32,7 +32,7 @@ EShell </para> @eshell: the object which received the signal. -@Param2: +@arg1: <!-- ##### SIGNAL EShell::handle-uri ##### --> <para> @@ -107,6 +107,11 @@ EShell </para> +<!-- ##### ARG EShell:meego-mode ##### --> +<para> + +</para> + <!-- ##### ARG EShell:module-directory ##### --> <para> @@ -127,6 +132,11 @@ EShell </para> +<!-- ##### ARG EShell:small-screen-mode ##### --> +<para> + +</para> + <!-- ##### FUNCTION e_shell_get_default ##### --> <para> diff --git a/doc/reference/shell/tmpl/e-signature-utils.sgml b/doc/reference/shell/tmpl/e-signature-utils.sgml index 7f550533d8..b16e2ae30e 100644 --- a/doc/reference/shell/tmpl/e-signature-utils.sgml +++ b/doc/reference/shell/tmpl/e-signature-utils.sgml @@ -1,5 +1,5 @@ <!-- ##### SECTION Title ##### --> -More Signature Functions +More Signature Utilities <!-- ##### SECTION Short_Description ##### --> diff --git a/doc/reference/shell/tmpl/es-event.sgml b/doc/reference/shell/tmpl/es-event.sgml deleted file mode 100644 index 8821e92ad5..0000000000 --- a/doc/reference/shell/tmpl/es-event.sgml +++ /dev/null @@ -1,147 +0,0 @@ -<!-- ##### SECTION Title ##### --> -ESEventHook - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### ENUM es_event_target_t ##### --> -<para> - -</para> - -@ES_EVENT_TARGET_STATE: -@ES_EVENT_TARGET_UPGRADE: -@ES_EVENT_TARGET_SHELL: -@ES_EVENT_TARGET_COMPONENT: - -<!-- ##### STRUCT ESEventTargetState ##### --> -<para> - -</para> - -@target: -@state: - -<!-- ##### STRUCT ESEventTargetUpgrade ##### --> -<para> - -</para> - -@target: -@major: -@minor: -@revision: - -<!-- ##### STRUCT ESEventTargetShell ##### --> -<para> - -</para> - -@target: - -<!-- ##### STRUCT ESEventTargetComponent ##### --> -<para> - -</para> - -@target: -@id: - -<!-- ##### TYPEDEF ESEventItem ##### --> -<para> - -</para> - - -<!-- ##### STRUCT ESEvent ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION es_event_get_type ##### --> -<para> - -</para> - -@Returns: - - -<!-- ##### FUNCTION es_event_peek ##### --> -<para> - -</para> - -@Returns: - - -<!-- ##### FUNCTION es_event_target_new ##### --> -<para> - -</para> - -@eme: -@Returns: - - -<!-- ##### FUNCTION es_event_target_new_state ##### --> -<para> - -</para> - -@emp: -@state: -@Returns: - - -<!-- ##### FUNCTION es_event_target_new_upgrade ##### --> -<para> - -</para> - -@emp: -@major: -@minor: -@revision: -@Returns: - - -<!-- ##### FUNCTION es_event_target_new_component ##### --> -<para> - -</para> - -@eme: -@id: -@Returns: - - -<!-- ##### STRUCT ESEventHook ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION es_event_hook_get_type ##### --> -<para> - -</para> - -@Returns: - - diff --git a/doc/reference/shell/tmpl/eshell-unused.sgml b/doc/reference/shell/tmpl/eshell-unused.sgml index 8769407347..1cb81172df 100644 --- a/doc/reference/shell/tmpl/eshell-unused.sgml +++ b/doc/reference/shell/tmpl/eshell-unused.sgml @@ -1,2242 +1,18 @@ -<!-- ##### SECTION ./tmpl/Evolution-DataServer.sgml:Long_Description ##### --> +<!-- ##### ARG EShellSearchbar:label-visible ##### --> <para> </para> -<!-- ##### SECTION ./tmpl/Evolution-DataServer.sgml:See_Also ##### --> +<!-- ##### FUNCTION e_get_gnome2_user_dir ##### --> <para> </para> - -<!-- ##### SECTION ./tmpl/Evolution-DataServer.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/Evolution-DataServer.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/Evolution-DataServer.sgml:Title ##### --> -Evolution-DataServer - - -<!-- ##### SECTION ./tmpl/e-activity-handler.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-activity-handler.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-activity-handler.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-activity-handler.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-activity-handler.sgml:Title ##### --> -EActivityHandler - - -<!-- ##### SECTION ./tmpl/e-config-upgrade.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-config-upgrade.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-config-upgrade.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-config-upgrade.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-config-upgrade.sgml:Title ##### --> -e-config-upgrade - - -<!-- ##### SECTION ./tmpl/e-error.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-error.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-error.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-error.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-error.sgml:Title ##### --> -Error Dialog Functions - - -<!-- ##### SECTION ./tmpl/e-shell-common.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-common.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-common.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-common.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-common.sgml:Title ##### --> -e-shell-common - - -<!-- ##### SECTION ./tmpl/e-shell-constants.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-constants.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-constants.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-constants.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-constants.sgml:Title ##### --> -e-shell-constants - - -<!-- ##### SECTION ./tmpl/e-shell-marshal.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-marshal.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-marshal.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-marshal.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-marshal.sgml:Title ##### --> -e-shell-marshal - - -<!-- ##### SECTION ./tmpl/e-shell-migrate.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-migrate.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-migrate.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-migrate.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-migrate.sgml:Title ##### --> -Migration - - -<!-- ##### SECTION ./tmpl/e-shell-module.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-module.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-module.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-module.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-module.sgml:Title ##### --> -EShellModule - - -<!-- ##### SECTION ./tmpl/e-shell-window-actions.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-window-actions.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-window-actions.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-window-actions.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-window-actions.sgml:Title ##### --> -Global Actions - - -<!-- ##### SECTION ./tmpl/e-shell-window-private.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-window-private.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-shell-window-private.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-window-private.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-shell-window-private.sgml:Title ##### --> -e-shell-window-private - - -<!-- ##### SECTION ./tmpl/e-test-shell-view.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-test-shell-view.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/e-test-shell-view.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/e-test-shell-view.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/e-test-shell-view.sgml:Title ##### --> -ETestShellView - - -<!-- ##### SECTION ./tmpl/es-event.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/es-event.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/es-event.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/es-event.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/es-event.sgml:Title ##### --> -ESEventHook - - -<!-- ##### SECTION ./tmpl/evolution-importer-client.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/evolution-importer-client.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/evolution-importer-client.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/evolution-importer-client.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/evolution-importer-client.sgml:Title ##### --> -EvolutionImporterClient - - -<!-- ##### SECTION ./tmpl/evolution-importer-listener.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/evolution-importer-listener.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/evolution-importer-listener.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/evolution-importer-listener.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/evolution-importer-listener.sgml:Title ##### --> -EvolutionImporterListener - - -<!-- ##### SECTION ./tmpl/evolution-importer.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/evolution-importer.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/evolution-importer.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/evolution-importer.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/evolution-importer.sgml:Title ##### --> -EvolutionImporter - - -<!-- ##### SECTION ./tmpl/evolution-intelligent-importer.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/evolution-intelligent-importer.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/evolution-intelligent-importer.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/evolution-intelligent-importer.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/evolution-intelligent-importer.sgml:Title ##### --> -EvolutionIntelligentImporter - - -<!-- ##### SECTION ./tmpl/intelligent.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/intelligent.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/intelligent.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/intelligent.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/intelligent.sgml:Title ##### --> -intelligent - - -<!-- ##### ENUM ECursorType ##### --> -<para> - -</para> - -@E_CURSOR_NORMAL: -@E_CURSOR_BUSY: - -<!-- ##### STRUCT ESEvent ##### --> -<para> - -</para> - - -<!-- ##### STRUCT ESEventHook ##### --> -<para> - -</para> - - -<!-- ##### TYPEDEF ESEventItem ##### --> -<para> - -</para> - - -<!-- ##### STRUCT ESEventTargetComponent ##### --> -<para> - -</para> - -@target: -@id: - -<!-- ##### STRUCT ESEventTargetShell ##### --> -<para> - -</para> - -@target: - -<!-- ##### STRUCT ESEventTargetState ##### --> -<para> - -</para> - -@target: -@state: - -<!-- ##### STRUCT ESEventTargetUpgrade ##### --> -<para> - -</para> - -@target: -@major: -@minor: -@revision: - -<!-- ##### SIGNAL EShell::prepare-for-shutdown ##### --> -<para> - -</para> - -@eshell: the object which received the signal. -@arg1: - -<!-- ##### ARG EShell:online-mode ##### --> -<para> - -</para> - - -<!-- ##### ARG EShell:settings ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:filter-action ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:filter-value ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:filter-visible ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:scope-action ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:scope-value ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:scope-visible ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:search-context ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:search-hint ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:search-radio-action ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:search-rule ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:search-text ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:search-value ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellContent:search-visible ##### --> -<para> - -</para> - - -<!-- ##### ENUM EShellLineStatus ##### --> -<para> - -</para> - -@E_SHELL_LINE_STATUS_ONLINE: -@E_SHELL_LINE_STATUS_GOING_OFFLINE: -@E_SHELL_LINE_STATUS_OFFLINE: -@E_SHELL_LINE_STATUS_FORCED_OFFLINE: - -<!-- ##### STRUCT EShellModule ##### --> -<para> - -</para> - - -<!-- ##### SIGNAL EShellModule::activity-added ##### --> -<para> - -</para> - -@eshellmodule: the object which received the signal. -@arg1: - -<!-- ##### ARG EShellModule:filename ##### --> -<para> - -</para> - - -<!-- ##### ARG EShellModule:shell ##### --> -<para> - -</para> - - -<!-- ##### STRUCT EShellModuleInfo ##### --> -<para> - -</para> - -@name: -@aliases: -@schemes: -@sort_order: -@start: -@is_busy: -@shutdown: -@migrate: - -<!-- ##### SIGNAL EShellView::capture-state ##### --> -<para> - -</para> - -@eshellview: the object which received the signal. -@arg1: - -<!-- ##### SIGNAL EShellView::restore-state ##### --> -<para> - -</para> - -@eshellview: the object which received the signal. -@arg1: - -<!-- ##### ARG EShellView:shell-module ##### --> -<para> - -</para> - - -<!-- ##### STRUCT EShellWindowPrivate ##### --> -<para> - -</para> - - -<!-- ##### STRUCT ETestShellView ##### --> -<para> - -</para> - -@parent: -@priv: - -<!-- ##### STRUCT ETestShellViewPrivate ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_ASK_FILE_EXISTS_OVERWRITE ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_ERROR ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_ERROR_PRIMARY ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_INFO ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_INFO_PRIMARY ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_NO_LOAD_FILE ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_NO_SAVE_FILE ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_WARNING ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_ERROR_WARNING_PRIMARY ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_LOCAL_CALENDAR_URI ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_LOCAL_CONTACTS_URI ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_LOCAL_INBOX_URI ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_LOCAL_STORAGE_NAME ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_LOCAL_TASKS_URI ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_PATH_SEPARATOR ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_PATH_SEPARATOR_S ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_DEFAULTURI_PREFIX ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_DEFAULTURI_PREFIX_LEN ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_ICON_SIZE ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_MINI_ICON_SIZE ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_MINI_ICON_SUFFIX ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_MINI_ICON_SUFFIX_LEN ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_UPGRADE_ERROR ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_URI_PREFIX ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_URI_PREFIX_LEN ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION ##### --> -<para> - -</para> - -@window: -@name: - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GAL_VIEW_MENU ##### --> -<para> - -</para> - -@window: - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GROUP ##### --> -<para> - -</para> - -@window: -@name: - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_GROUP_SHELL_VIEW ##### --> -<para> - -</para> - -@window: - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SEARCH_EXECUTE ##### --> -<para> - -</para> - -@window: - -<!-- ##### MACRO E_SHELL_WINDOW_ACTION_SHOW_STATUSBAR ##### --> -<para> - -</para> - -@window: - -<!-- ##### MACRO E_SUMMARY_STORAGE_NAME ##### --> -<para> - -</para> - - -<!-- ##### MACRO E_SUMMARY_URI ##### --> -<para> - -</para> - - -<!-- ##### STRUCT EvolutionImporter ##### --> -<para> - -</para> - -@parent: -@priv: - -<!-- ##### STRUCT EvolutionImporterClient ##### --> -<para> - -</para> - -@parent_type: -@objref: - -<!-- ##### USER_FUNCTION EvolutionImporterCreateControlFn ##### --> -<para> - -</para> - -@importer: -@control: -@closure: - -<!-- ##### USER_FUNCTION EvolutionImporterGetErrorFn ##### --> -<para> - -</para> - -@importer: -@closure: -@Returns: - -<!-- ##### STRUCT EvolutionImporterListener ##### --> -<para> - -</para> - -@parent: -@priv: - -<!-- ##### USER_FUNCTION EvolutionImporterListenerCallback ##### --> -<para> - -</para> - -@listener: -@result: -@more_items: -@closure: - -<!-- ##### STRUCT EvolutionImporterListenerPrivate ##### --> -<para> - -</para> - - -<!-- ##### USER_FUNCTION EvolutionImporterLoadFileFn ##### --> -<para> - -</para> - -@importer: -@filename: -@closure: +@void: @Returns: -<!-- ##### STRUCT EvolutionImporterPrivate ##### --> -<para> - -</para> - - -<!-- ##### USER_FUNCTION EvolutionImporterProcessItemFn ##### --> -<para> - -</para> - -@importer: -@listener: -@closure: -@ev: - -<!-- ##### ENUM EvolutionImporterResult ##### --> -<para> - -</para> - -@EVOLUTION_IMPORTER_OK: -@EVOLUTION_IMPORTER_UNSUPPORTED_OPERATION: -@EVOLUTION_IMPORTER_INTERRUPTED: -@EVOLUTION_IMPORTER_BUSY: -@EVOLUTION_IMPORTER_NOT_READY: -@EVOLUTION_IMPORTER_UNKNOWN_DATA: -@EVOLUTION_IMPORTER_BAD_DATA: -@EVOLUTION_IMPORTER_BAD_FILE: -@EVOLUTION_IMPORTER_UNKNOWN_ERROR: - -<!-- ##### USER_FUNCTION EvolutionImporterSupportFormatFn ##### --> -<para> - -</para> - -@importer: -@filename: -@closure: -@Returns: - -<!-- ##### STRUCT EvolutionIntelligentImporter ##### --> -<para> - -</para> - -@parent: -@priv: - -<!-- ##### USER_FUNCTION EvolutionIntelligentImporterCanImportFn ##### --> -<para> - -</para> - -@ii: -@closure: -@Returns: - -<!-- ##### USER_FUNCTION EvolutionIntelligentImporterImportDataFn ##### --> -<para> - -</para> - -@ii: -@closure: - -<!-- ##### STRUCT EvolutionIntelligentImporterPrivate ##### --> -<para> - -</para> - - -<!-- ##### TYPEDEF GNOME_Evolution_DataServer_Config ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Config_IMETHODS_LEN ##### --> -<para> - -</para> - - -<!-- ##### VARIABLE GNOME_Evolution_DataServer_Config__classid ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Config__freekids ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Config__imethods ##### --> -<para> - -</para> - - -<!-- ##### TYPEDEF GNOME_Evolution_DataServer_InterfaceCheck ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck_IMETHODS_LEN ##### --> -<para> - -</para> - - -<!-- ##### VARIABLE GNOME_Evolution_DataServer_InterfaceCheck__classid ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck__freekids ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION GNOME_Evolution_DataServer_InterfaceCheck__get_interfaceVersion ##### --> -<para> - -</para> - -@_obj: -@ev: -@Returns: - -<!-- ##### ENUM GNOME_Evolution_DataServer_InterfaceCheck__imethods_index ##### --> -<para> - -</para> - -@GNOME_Evolution_DataServer_InterfaceCheck__get_interfaceVersion__imethods_index: - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck_queryInterface ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck_ref ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_InterfaceCheck_unref ##### --> -<para> - -</para> - - -<!-- ##### TYPEDEF GNOME_Evolution_DataServer_Logging ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_IMETHODS_LEN ##### --> -<para> - -</para> - - -<!-- ##### ENUM GNOME_Evolution_DataServer_Logging_Level ##### --> -<para> - -</para> - -@GNOME_Evolution_DataServer_Logging_Error: -@GNOME_Evolution_DataServer_Logging_Critical: -@GNOME_Evolution_DataServer_Logging_Warning: -@GNOME_Evolution_DataServer_Logging_Message: -@GNOME_Evolution_DataServer_Logging_Info: -@GNOME_Evolution_DataServer_Logging_Debug: - -<!-- ##### TYPEDEF GNOME_Evolution_DataServer_Logging_LogEvent ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_LogEvent__alloc ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_LogEvent__freekids ##### --> -<para> - -</para> - -@m: -@d: - -<!-- ##### VARIABLE GNOME_Evolution_DataServer_Logging__classid ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging__freekids ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging__imethods ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_addListener ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_addListenerWithMask ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_queryInterface ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_ref ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_removeListener ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_unImplemented ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_unImplemented2 ##### --> -<para> - -</para> - - -<!-- ##### MACRO GNOME_Evolution_DataServer_Logging_unref ##### --> -<para> - -</para> - - -<!-- ##### MACRO ORBIT_DECL_GNOME_Evolution_DataServer_Config ##### --> -<para> - -</para> - - -<!-- ##### MACRO ORBIT_DECL_GNOME_Evolution_DataServer_InterfaceCheck ##### --> -<para> - -</para> - - -<!-- ##### MACRO ORBIT_DECL_GNOME_Evolution_DataServer_Logging ##### --> -<para> - -</para> - - -<!-- ##### MACRO ORBIT_IDL_SERIAL ##### --> -<para> - -</para> - - -<!-- ##### MACRO ORBIT_IMETHODS_INDEX ##### --> -<para> - -</para> - -@m: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Config ##### --> -<para> - -</para> - -@_private: -@vepv: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Config__epv ##### --> -<para> - -</para> - -@_private: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_Config__fini ##### --> -<para> - -</para> - -@servant: -@ev: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_Config__init ##### --> -<para> - -</para> - -@servant: -@ev: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Config__vepv ##### --> -<para> - -</para> - -@_base_epv: -@GNOME_Evolution_DataServer_Config_epv: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_InterfaceCheck ##### --> -<para> - -</para> - -@_private: -@vepv: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_InterfaceCheck__epv ##### --> -<para> - -</para> - -@_private: -@_get_interfaceVersion: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_InterfaceCheck__fini ##### --> -<para> - -</para> - -@servant: -@ev: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_InterfaceCheck__init ##### --> -<para> - -</para> - -@servant: -@ev: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_InterfaceCheck__vepv ##### --> -<para> - -</para> - -@_base_epv: -@Bonobo_Unknown_epv: -@GNOME_Evolution_DataServer_InterfaceCheck_epv: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Logging ##### --> -<para> - -</para> - -@_private: -@vepv: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Logging__epv ##### --> -<para> - -</para> - -@_private: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_Logging__fini ##### --> -<para> - -</para> - -@servant: -@ev: - -<!-- ##### FUNCTION POA_GNOME_Evolution_DataServer_Logging__init ##### --> -<para> - -</para> - -@servant: -@ev: - -<!-- ##### STRUCT POA_GNOME_Evolution_DataServer_Logging__vepv ##### --> -<para> - -</para> - -@_base_epv: -@Bonobo_Unknown_epv: -@Bonobo_EventSource_epv: -@GNOME_Evolution_DataServer_Logging_epv: - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_Config ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_InterfaceCheck ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_Logging ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_Logging_Level ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_GNOME_Evolution_DataServer_Logging_LogEvent ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_0 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_1 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_10 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_11 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_12 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_13 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_14 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_15 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_16 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_17 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_18 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_19 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_2 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_3 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_4 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_5 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_6 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_7 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_8 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Config_9 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_0 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_1 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_10 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_11 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_12 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_13 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_14 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_15 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_16 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_17 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_18 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_19 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_2 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_3 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_4 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_5 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_6 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_7 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_8 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_InterfaceCheck_9 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_0 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_1 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_10 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_11 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_12 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_13 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_14 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_15 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_16 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_17 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_18 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_19 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_2 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_3 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_4 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_5 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_6 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_7 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_8 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_9 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_0 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_1 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_10 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_11 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_12 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_13 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_14 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_15 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_16 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_17 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_18 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_19 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_2 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_3 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_4 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_5 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_6 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_7 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_8 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_Level_9 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_0 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_1 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_10 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_11 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_12 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_13 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_14 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_15 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_16 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_17 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_18 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_19 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_2 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_3 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_4 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_5 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_6 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_7 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_8 ##### --> -<para> - -</para> - - -<!-- ##### MACRO TC_IMPL_TC_GNOME_Evolution_DataServer_Logging_LogEvent_9 ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION e_alert_free ##### --> -<para> - -</para> - -@alert: - -<!-- ##### FUNCTION e_alert_new_dialog ##### --> -<para> - -</para> - -@parent: -@alert: -@Returns: - -<!-- ##### FUNCTION e_alert_new_dialog_for_args ##### --> -<para> - -</para> - -@parent: -@tag: -@arg0: -@Varargs: -@Returns: - -<!-- ##### FUNCTION e_alert_newv ##### --> -<para> - -</para> - -@tag: -@arg0: -@ap: -@Returns: - -<!-- ##### FUNCTION e_config_upgrade ##### --> -<para> - -</para> - -@major: -@minor: -@revision: -@Returns: - -<!-- ##### FUNCTION e_error_count_buttons ##### --> -<para> - -</para> - -@dialog: -@Returns: - -<!-- ##### FUNCTION e_error_new ##### --> -<para> - -</para> - -@parent: -@tag: -@arg0: -@Varargs: -@Returns: - -<!-- ##### FUNCTION e_error_newv ##### --> -<para> - -</para> - -@parent: -@tag: -@arg0: -@ap: -@Returns: - -<!-- ##### FUNCTION e_error_run ##### --> -<para> - -</para> - -@parent: -@tag: -@arg0: -@Varargs: -@Returns: - -<!-- ##### FUNCTION e_error_runv ##### --> -<para> - -</para> - -@parent: -@tag: -@arg0: -@ap: -@Returns: - -<!-- ##### FUNCTION e_icon_factory_init ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION e_icon_factory_shutdown ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION e_shell_backend_get_filename ##### --> -<para> - -</para> - -@shell_backend: -@Returns: - -<!-- ##### FUNCTION e_shell_backend_is_busy ##### --> -<para> - -</para> - -@shell_backend: -@Returns: - -<!-- ##### FUNCTION e_shell_backend_shutdown ##### --> -<para> - -</para> - -@shell_backend: -@Returns: - -<!-- ##### FUNCTION e_shell_content_add_filter_separator_after ##### --> -<para> - -</para> - -@shell_content: -@action_value: - -<!-- ##### FUNCTION e_shell_content_add_filter_separator_before ##### --> -<para> - -</para> - -@shell_content: -@action_value: - -<!-- ##### FUNCTION e_shell_content_get_context ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_filter_action ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_filter_value ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_filter_visible ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_scope_action ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_scope_value ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_scope_visible ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_search_context ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_search_hint ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_search_rule ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_get_search_text ##### --> +<!-- ##### FUNCTION e_shell_content_get_search_name ##### --> <para> </para> @@ -2244,7 +20,7 @@ intelligent @shell_content: @Returns: -<!-- ##### FUNCTION e_shell_content_get_search_value ##### --> +<!-- ##### FUNCTION e_shell_content_get_searchbar ##### --> <para> </para> @@ -2252,658 +28,19 @@ intelligent @shell_content: @Returns: -<!-- ##### FUNCTION e_shell_content_get_search_visible ##### --> -<para> - -</para> - -@shell_content: -@Returns: - -<!-- ##### FUNCTION e_shell_content_restore_state ##### --> -<para> - -</para> - -@shell_content: -@group_name: - -<!-- ##### FUNCTION e_shell_content_set_context ##### --> -<para> - -</para> - -@shell_content: -@context: - -<!-- ##### FUNCTION e_shell_content_set_filter_action ##### --> -<para> - -</para> - -@shell_content: -@filter_action: - -<!-- ##### FUNCTION e_shell_content_set_filter_value ##### --> -<para> - -</para> - -@shell_content: -@filter_value: - -<!-- ##### FUNCTION e_shell_content_set_filter_visible ##### --> -<para> - -</para> - -@shell_content: -@filter_visible: - -<!-- ##### FUNCTION e_shell_content_set_scope_action ##### --> -<para> - -</para> - -@shell_content: -@scope_action: - -<!-- ##### FUNCTION e_shell_content_set_scope_value ##### --> -<para> - -</para> - -@shell_content: -@scope_value: - -<!-- ##### FUNCTION e_shell_content_set_scope_visible ##### --> -<para> - -</para> - -@shell_content: -@scope_visible: - -<!-- ##### FUNCTION e_shell_content_set_search_hint ##### --> -<para> - -</para> - -@shell_content: -@search_hint: - -<!-- ##### FUNCTION e_shell_content_set_search_rule ##### --> -<para> - -</para> - -@shell_content: -@search_rule: - -<!-- ##### FUNCTION e_shell_content_set_search_text ##### --> -<para> - -</para> - -@shell_content: -@search_text: - -<!-- ##### FUNCTION e_shell_content_set_search_value ##### --> -<para> - -</para> - -@shell_content: -@search_value: - -<!-- ##### FUNCTION e_shell_content_set_search_visible ##### --> -<para> - -</para> - -@shell_content: -@search_visible: - -<!-- ##### FUNCTION e_shell_create_window ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_do_quit ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_get_focused_window ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_get_line_status ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_get_module_by_name ##### --> -<para> - -</para> - -@shell: -@name: -@Returns: - -<!-- ##### FUNCTION e_shell_get_module_by_scheme ##### --> -<para> - -</para> - -@shell: -@scheme: -@Returns: - -<!-- ##### FUNCTION e_shell_get_online_mode ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_get_settings ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_get_shell_modules ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_get_shell_windows ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_handle_uri ##### --> -<para> - -</para> - -@shell: -@uri: -@Returns: - -<!-- ##### FUNCTION e_shell_importer_start_import ##### --> -<para> - -</para> - -@shell_window: - -<!-- ##### FUNCTION e_shell_is_busy ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_list_modules ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_list_shell_modules ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_list_shell_windows ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_marshal_BOOLEAN__STRING ##### --> -<para> - -</para> - -@closure: -@return_value: -@n_param_values: -@param_values: -@invocation_hint: -@marshal_data: - -<!-- ##### MACRO e_shell_marshal_BOOL__STRING ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION e_shell_migrate_error_quark ##### --> -<para> - -</para> - -@Returns: - -<!-- ##### FUNCTION e_shell_module_add_activity ##### --> -<para> - -</para> - -@shell_module: -@activity: - -<!-- ##### FUNCTION e_shell_module_compare ##### --> -<para> - -</para> - -@shell_module_a: -@shell_module_b: -@Returns: - -<!-- ##### FUNCTION e_shell_module_get_config_dir ##### --> -<para> - -</para> - -@shell_module: -@Returns: - -<!-- ##### FUNCTION e_shell_module_get_data_dir ##### --> -<para> - -</para> - -@shell_module: -@Returns: - -<!-- ##### FUNCTION e_shell_module_get_filename ##### --> -<para> - -</para> - -@shell_module: -@Returns: - -<!-- ##### FUNCTION e_shell_module_get_shell ##### --> -<para> - -</para> - -@shell_module: -@Returns: - -<!-- ##### FUNCTION e_shell_module_get_shell_view_type ##### --> -<para> - -</para> - -@shell_module: -@Returns: - -<!-- ##### FUNCTION e_shell_module_is_busy ##### --> -<para> - -</para> - -@shell_module: -@Returns: - -<!-- ##### FUNCTION e_shell_module_migrate ##### --> -<para> - -</para> - -@shell_module: -@major: -@minor: -@micro: -@error: -@Returns: - -<!-- ##### FUNCTION e_shell_module_new ##### --> -<para> - -</para> - -@shell: -@filename: -@Returns: - -<!-- ##### FUNCTION e_shell_module_set_info ##### --> -<para> - -</para> - -@shell_module: -@info: -@shell_view_type: - -<!-- ##### FUNCTION e_shell_module_shutdown ##### --> -<para> - -</para> - -@shell_module: -@Returns: - -<!-- ##### FUNCTION e_shell_module_start ##### --> -<para> - -</para> - -@shell_module: - -<!-- ##### FUNCTION e_shell_module_upgrade ##### --> -<para> - -</para> - -@shell_module: -@major: -@minor: -@micro: -@error: -@Returns: - -<!-- ##### FUNCTION e_shell_new ##### --> -<para> - -</para> - -@online: -@Returns: - -<!-- ##### FUNCTION e_shell_searchbar_restore_state ##### --> +<!-- ##### FUNCTION e_shell_searchbar_get_label_visible ##### --> <para> </para> @searchbar: -@group_name: - -<!-- ##### FUNCTION e_shell_set_line_status ##### --> -<para> - -</para> - -@shell: -@status: - -<!-- ##### FUNCTION e_shell_set_online_mode ##### --> -<para> - -</para> - -@shell: -@online_mode: - -<!-- ##### FUNCTION e_shell_settings_bind_to_gconf ##### --> -<para> - -</para> - -@shell_settings: -@property_name: -@gconf_key: - -<!-- ##### FUNCTION e_shell_upgrade_attempt ##### --> -<para> - -</para> - -@shell: -@Returns: - -<!-- ##### FUNCTION e_shell_view_get_shell_module ##### --> -<para> - -</para> - -@shell_view: @Returns: -<!-- ##### VARIABLE e_test_shell_view_type ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION e_util_filename_to_uri ##### --> -<para> - -</para> - -@filename: -@Returns: - -<!-- ##### FUNCTION e_util_read_file ##### --> -<para> - -</para> - -@filename: -@filename_is_uri: -@buffer: -@read: -@error: -@Returns: - -<!-- ##### FUNCTION e_util_uri_to_filename ##### --> -<para> - -</para> - -@uri: -@Returns: - -<!-- ##### FUNCTION e_write_file_uri ##### --> -<para> - -</para> - -@filename: -@data: -@Returns: - -<!-- ##### FUNCTION es_event_get_type ##### --> -<para> - -</para> - -@Returns: - -<!-- ##### FUNCTION es_event_hook_get_type ##### --> -<para> - -</para> - -@Returns: - -<!-- ##### FUNCTION es_event_peek ##### --> -<para> - -</para> - -@Returns: - -<!-- ##### FUNCTION es_event_target_new ##### --> -<para> - -</para> - -@eme: -@Returns: - -<!-- ##### FUNCTION es_event_target_new_component ##### --> -<para> - -</para> - -@eme: -@id: -@Returns: - -<!-- ##### FUNCTION es_event_target_new_state ##### --> -<para> - -</para> - -@emp: -@state: -@Returns: - -<!-- ##### FUNCTION es_event_target_new_upgrade ##### --> -<para> - -</para> - -@emp: -@major: -@minor: -@revision: -@Returns: - -<!-- ##### ENUM es_event_target_t ##### --> -<para> - -</para> - -@ES_EVENT_TARGET_STATE: -@ES_EVENT_TARGET_UPGRADE: -@ES_EVENT_TARGET_SHELL: -@ES_EVENT_TARGET_COMPONENT: - -<!-- ##### FUNCTION evolution_importer_client_create_control ##### --> -<para> - -</para> - -@client: -@Returns: - -<!-- ##### FUNCTION evolution_importer_client_get_error ##### --> -<para> - -</para> - -@client: -@Returns: - -<!-- ##### FUNCTION evolution_importer_client_load_file ##### --> -<para> - -</para> - -@client: -@filename: -@Returns: - -<!-- ##### FUNCTION evolution_importer_client_new ##### --> -<para> - -</para> - -@objref: -@Returns: - -<!-- ##### FUNCTION evolution_importer_client_new_from_id ##### --> -<para> - -</para> - -@id: -@Returns: - -<!-- ##### FUNCTION evolution_importer_client_process_item ##### --> -<para> - -</para> - -@client: -@listener: - -<!-- ##### FUNCTION evolution_importer_client_support_format ##### --> -<para> - -</para> - -@client: -@filename: -@Returns: - -<!-- ##### FUNCTION evolution_importer_listener_new ##### --> -<para> - -</para> - -@callback: -@closure: -@Returns: - -<!-- ##### FUNCTION evolution_importer_new ##### --> -<para> - -</para> - -@create_control_fn: -@support_format_fn: -@load_file_fn: -@process_item_fn: -@get_error_fn: -@closure: -@Returns: - -<!-- ##### FUNCTION evolution_intelligent_importer_new ##### --> -<para> - -</para> - -@can_import_fn: -@import_data_fn: -@importername: -@message: -@closure: -@Returns: - -<!-- ##### FUNCTION intelligent_importer_init ##### --> +<!-- ##### FUNCTION e_shell_searchbar_set_label_visible ##### --> <para> </para> +@searchbar: +@label_visible: diff --git a/doc/reference/shell/tmpl/evolution-importer-client.sgml b/doc/reference/shell/tmpl/evolution-importer-client.sgml deleted file mode 100644 index db2acb621a..0000000000 --- a/doc/reference/shell/tmpl/evolution-importer-client.sgml +++ /dev/null @@ -1,94 +0,0 @@ -<!-- ##### SECTION Title ##### --> -EvolutionImporterClient - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT EvolutionImporterClient ##### --> -<para> - -</para> - -@parent_type: -@objref: - -<!-- ##### FUNCTION evolution_importer_client_new ##### --> -<para> - -</para> - -@objref: -@Returns: - - -<!-- ##### FUNCTION evolution_importer_client_new_from_id ##### --> -<para> - -</para> - -@id: -@Returns: - - -<!-- ##### FUNCTION evolution_importer_client_create_control ##### --> -<para> - -</para> - -@client: -@Returns: - - -<!-- ##### FUNCTION evolution_importer_client_support_format ##### --> -<para> - -</para> - -@client: -@filename: -@Returns: - - -<!-- ##### FUNCTION evolution_importer_client_load_file ##### --> -<para> - -</para> - -@client: -@filename: -@Returns: - - -<!-- ##### FUNCTION evolution_importer_client_process_item ##### --> -<para> - -</para> - -@client: -@listener: - - -<!-- ##### FUNCTION evolution_importer_client_get_error ##### --> -<para> - -</para> - -@client: -@Returns: - - diff --git a/doc/reference/shell/tmpl/evolution-importer-listener.sgml b/doc/reference/shell/tmpl/evolution-importer-listener.sgml deleted file mode 100644 index 7b0b3ab488..0000000000 --- a/doc/reference/shell/tmpl/evolution-importer-listener.sgml +++ /dev/null @@ -1,56 +0,0 @@ -<!-- ##### SECTION Title ##### --> -EvolutionImporterListener - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT EvolutionImporterListenerPrivate ##### --> -<para> - -</para> - - -<!-- ##### USER_FUNCTION EvolutionImporterListenerCallback ##### --> -<para> - -</para> - -@listener: -@result: -@more_items: -@closure: - - -<!-- ##### STRUCT EvolutionImporterListener ##### --> -<para> - -</para> - -@parent: -@priv: - -<!-- ##### FUNCTION evolution_importer_listener_new ##### --> -<para> - -</para> - -@callback: -@closure: -@Returns: - - diff --git a/doc/reference/shell/tmpl/evolution-importer.sgml b/doc/reference/shell/tmpl/evolution-importer.sgml deleted file mode 100644 index c092138c60..0000000000 --- a/doc/reference/shell/tmpl/evolution-importer.sgml +++ /dev/null @@ -1,117 +0,0 @@ -<!-- ##### SECTION Title ##### --> -EvolutionImporter - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT EvolutionImporterPrivate ##### --> -<para> - -</para> - - -<!-- ##### USER_FUNCTION EvolutionImporterCreateControlFn ##### --> -<para> - -</para> - -@importer: -@control: -@closure: - - -<!-- ##### USER_FUNCTION EvolutionImporterSupportFormatFn ##### --> -<para> - -</para> - -@importer: -@filename: -@closure: -@Returns: - - -<!-- ##### USER_FUNCTION EvolutionImporterLoadFileFn ##### --> -<para> - -</para> - -@importer: -@filename: -@closure: -@Returns: - - -<!-- ##### USER_FUNCTION EvolutionImporterProcessItemFn ##### --> -<para> - -</para> - -@importer: -@listener: -@closure: -@ev: - - -<!-- ##### USER_FUNCTION EvolutionImporterGetErrorFn ##### --> -<para> - -</para> - -@importer: -@closure: -@Returns: - - -<!-- ##### ENUM EvolutionImporterResult ##### --> -<para> - -</para> - -@EVOLUTION_IMPORTER_OK: -@EVOLUTION_IMPORTER_UNSUPPORTED_OPERATION: -@EVOLUTION_IMPORTER_INTERRUPTED: -@EVOLUTION_IMPORTER_BUSY: -@EVOLUTION_IMPORTER_NOT_READY: -@EVOLUTION_IMPORTER_UNKNOWN_DATA: -@EVOLUTION_IMPORTER_BAD_DATA: -@EVOLUTION_IMPORTER_BAD_FILE: -@EVOLUTION_IMPORTER_UNKNOWN_ERROR: - -<!-- ##### STRUCT EvolutionImporter ##### --> -<para> - -</para> - -@parent: -@priv: - -<!-- ##### FUNCTION evolution_importer_new ##### --> -<para> - -</para> - -@create_control_fn: -@support_format_fn: -@load_file_fn: -@process_item_fn: -@get_error_fn: -@closure: -@Returns: - - diff --git a/doc/reference/shell/tmpl/evolution-intelligent-importer.sgml b/doc/reference/shell/tmpl/evolution-intelligent-importer.sgml deleted file mode 100644 index 4dfdb70203..0000000000 --- a/doc/reference/shell/tmpl/evolution-intelligent-importer.sgml +++ /dev/null @@ -1,67 +0,0 @@ -<!-- ##### SECTION Title ##### --> -EvolutionIntelligentImporter - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT EvolutionIntelligentImporterPrivate ##### --> -<para> - -</para> - - -<!-- ##### USER_FUNCTION EvolutionIntelligentImporterCanImportFn ##### --> -<para> - -</para> - -@ii: -@closure: -@Returns: - - -<!-- ##### USER_FUNCTION EvolutionIntelligentImporterImportDataFn ##### --> -<para> - -</para> - -@ii: -@closure: - - -<!-- ##### STRUCT EvolutionIntelligentImporter ##### --> -<para> - -</para> - -@parent: -@priv: - -<!-- ##### FUNCTION evolution_intelligent_importer_new ##### --> -<para> - -</para> - -@can_import_fn: -@import_data_fn: -@importername: -@message: -@closure: -@Returns: - - diff --git a/doc/reference/shell/tmpl/intelligent.sgml b/doc/reference/shell/tmpl/intelligent.sgml deleted file mode 100644 index 1c50af5c7b..0000000000 --- a/doc/reference/shell/tmpl/intelligent.sgml +++ /dev/null @@ -1,26 +0,0 @@ -<!-- ##### SECTION Title ##### --> -intelligent - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### FUNCTION intelligent_importer_init ##### --> -<para> - -</para> - - - diff --git a/e-util/e-account-utils.c b/e-util/e-account-utils.c index 4d169d956a..4395542f7c 100644 --- a/e-util/e-account-utils.c +++ b/e-util/e-account-utils.c @@ -15,6 +15,11 @@ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) */ +/** + * SECTION: e-account-utils + * @include: e-util/e-account-utils.h + **/ + #include "e-account-utils.h" #include <gconf/gconf-client.h> diff --git a/e-util/e-account-utils.h b/e-util/e-account-utils.h index ca184404ef..f2ae8fc5dc 100644 --- a/e-util/e-account-utils.h +++ b/e-util/e-account-utils.h @@ -15,11 +15,6 @@ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) */ -/** - * SECTION: e-account-utils - * @include: e-util/e-account-utils.h - **/ - #ifndef E_ACCOUNT_UTILS_H #define E_ACCOUNT_UTILS_H diff --git a/e-util/e-binding.c b/e-util/e-binding.c index 86362a7eff..4b0f563a43 100644 --- a/e-util/e-binding.c +++ b/e-util/e-binding.c @@ -30,7 +30,7 @@ e_binding_warn (GObject *object, const gchar *property_name) { g_warning ( - "%s instances have no `%s' property to bind to", + "%s instances have no '%s' property to bind to", G_OBJECT_TYPE_NAME (object), property_name); return NULL; diff --git a/e-util/e-config.c b/e-util/e-config.c index 613971fba5..e8eedffef8 100644 --- a/e-util/e-config.c +++ b/e-util/e-config.c @@ -41,6 +41,8 @@ #define d(x) +typedef GtkWidget * (*EConfigItemSectionFactoryFunc)(EConfig *ec, EConfigItem *, GtkWidget *parent, GtkWidget *old, gpointer data, GtkWidget **real_frame); + struct _EConfigFactory { gchar *id; EConfigFactoryFunc func; @@ -62,6 +64,7 @@ struct _widget_node { EConfigItem *item; GtkWidget *widget; /* widget created by the factory, if any */ GtkWidget *frame; /* if created by us */ + GtkWidget *real_frame; /* used for sections and section tables, this is the real GtkFrame (whereas "frame" above is the internal vbox/table) */ guint empty:1; /* set if empty (i.e. hidden) */ }; @@ -87,6 +90,8 @@ struct _EConfigPrivate { static gpointer parent_class; +static GtkWidget *ech_config_section_factory (EConfig *config, EConfigItem *item, GtkWidget *parent, GtkWidget *old, gpointer data, GtkWidget **real_frame); + static void config_finalize (GObject *object) { @@ -94,7 +99,7 @@ config_finalize (GObject *object) EConfigPrivate *p = emp->priv; GList *link; - d(printf("finalising EConfig %p\n", o)); + d(printf("finalising EConfig %p\n", object)); g_free(emp->id); @@ -519,6 +524,7 @@ ec_rebuild (EConfig *emp) struct _widget_node *sectionnode = NULL, *pagenode = NULL; GtkWidget *book = NULL, *page = NULL, *section = NULL, *root = NULL, *assistant = NULL; gint pageno = 0, sectionno = 0, itemno = 0; + gint n_visible_widgets = 0; struct _widget_node *last_active_page = NULL; gboolean is_assistant; GList *link; @@ -550,7 +556,7 @@ ec_rebuild (EConfig *emp) if (item->label != NULL) translated_label = gettext (item->label); - /* If the last section doesn't contain anything, hide it */ + /* If the last section doesn't contain any visible widgets, hide it */ if (sectionnode != NULL && sectionnode->frame != NULL && (item->type == E_CONFIG_PAGE_START @@ -558,11 +564,22 @@ ec_rebuild (EConfig *emp) || item->type == E_CONFIG_PAGE || item->type == E_CONFIG_SECTION || item->type == E_CONFIG_SECTION_TABLE)) { - if ((sectionnode->empty = itemno == 0)) { - gtk_widget_hide(sectionnode->frame); + if ((sectionnode->empty = (itemno == 0 || n_visible_widgets == 0))) { + if (sectionnode->real_frame) + gtk_widget_hide(sectionnode->real_frame); + + if (sectionnode->frame) + gtk_widget_hide(sectionnode->frame); + sectionno--; - } else - gtk_widget_show(sectionnode->frame); + } else { + if (sectionnode->real_frame) + gtk_widget_show(sectionnode->real_frame); + + if (sectionnode->frame) + gtk_widget_show(sectionnode->frame); + } + d(printf("%s section '%s' [sections=%d]\n", sectionnode->empty?"hiding":"showing", sectionnode->item->path, sectionno)); } @@ -791,12 +808,35 @@ ec_rebuild (EConfig *emp) } itemno = 0; + n_visible_widgets = 0; + + d(printf("Building section %s - '%s' - %s factory\n", item->path, item->label, item->factory ? "with" : "without")); + if (item->factory) { - section = item->factory(emp, item, page, wn->widget, wn->context->data); + /* For sections, we pass an extra argument to the usual EConfigItemFactoryFunc. + * If this is an automatically-generated section, that extra argument (real_frame from + * EConfigItemSectionFactoryFunc) will contain the actual GtkFrame upon returning. + */ + EConfigItemSectionFactoryFunc factory = (EConfigItemSectionFactoryFunc) item->factory; + + section = factory(emp, item, page, wn->widget, wn->context->data, &wn->real_frame); wn->frame = section; if (section) itemno = 1; + if (factory != ech_config_section_factory) { + /* This means there is a section that came from a user-specified factory, + * so we don't know what is inside the section. In that case, we increment + * n_visible_widgets so that the section will not get hidden later (we don't know + * if the section is empty or not, so we cannot decide to hide it). + * + * For automatically-generated sections, we use a special ech_config_section_factory() - + * see emph_construct_item(). + */ + n_visible_widgets++; + d(printf (" n_visible_widgets++ because there is a section factory -> frame=%p\n", section)); + } + if (section && ((item->type == E_CONFIG_SECTION && !GTK_IS_BOX(section)) || (item->type == E_CONFIG_SECTION_TABLE && !GTK_IS_TABLE(section)))) @@ -878,6 +918,11 @@ ec_rebuild (EConfig *emp) d(printf("item %d:%s widget %p\n", itemno, item->path, w)); + d(printf (" item %s: (%s - %s)\n", + item->path, + g_type_name_from_instance ((GTypeInstance *) w), + gtk_widget_get_visible (w) ? "visible" : "invisible")); + if (wn->widget && wn->widget != w) { d(printf("destroy old widget for item '%s'\n", item->path)); gtk_widget_destroy(wn->widget); @@ -887,18 +932,32 @@ ec_rebuild (EConfig *emp) if (w) { g_signal_connect(w, "destroy", G_CALLBACK(gtk_widget_destroyed), &wn->widget); itemno++; + + if (gtk_widget_get_visible (w)) + n_visible_widgets++; } break; } } - /* If the last section doesn't contain anything, hide it */ + /* If the last section doesn't contain any visible widgets, hide it */ if (sectionnode != NULL && sectionnode->frame != NULL) { - if ((sectionnode->empty = itemno == 0)) { - gtk_widget_hide(sectionnode->frame); + d(printf ("Section %s - %d visible widgets (frame=%p)\n", sectionnode->item->path, n_visible_widgets, sectionnode->frame)); + if ((sectionnode->empty = (itemno == 0 || n_visible_widgets == 0))) { + if (sectionnode->real_frame) + gtk_widget_hide(sectionnode->real_frame); + + if (sectionnode->frame) + gtk_widget_hide(sectionnode->frame); + sectionno--; - } else - gtk_widget_show(sectionnode->frame); + } else { + if (sectionnode->real_frame) + gtk_widget_show(sectionnode->real_frame); + + if (sectionnode->frame) + gtk_widget_show(sectionnode->frame); + } d(printf("%s section '%s' [sections=%d]\n", sectionnode->empty?"hiding":"showing", sectionnode->item->path, sectionno)); } @@ -1585,7 +1644,8 @@ ech_config_section_factory (EConfig *config, EConfigItem *item, GtkWidget *parent, GtkWidget *old, - gpointer data) + gpointer data, + GtkWidget **real_frame) { struct _EConfigHookGroup *group = data; GtkWidget *label = NULL; @@ -1612,6 +1672,8 @@ ech_config_section_factory (EConfig *config, gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_NONE); gtk_box_pack_start (GTK_BOX (parent), widget, FALSE, FALSE, 0); + *real_frame = widget; + /* This is why we have a custom factory for sections. * When the plugin is disabled the frame is invisible. */ plugin = group->hook->hook.plugin; @@ -1667,9 +1729,9 @@ emph_construct_item(EPluginHook *eph, EConfigHookGroup *menu, xmlNodePtr root, E if (item->user_data) item->factory = ech_config_widget_factory; else if (item->type == E_CONFIG_SECTION) - item->factory = ech_config_section_factory; + item->factory = (EConfigItemFactoryFunc) ech_config_section_factory; else if (item->type == E_CONFIG_SECTION_TABLE) - item->factory = ech_config_section_factory; + item->factory = (EConfigItemFactoryFunc) ech_config_section_factory; d(printf(" path=%s label=%s factory=%s\n", item->path, item->label, (gchar *)item->user_data)); diff --git a/e-util/e-dialog-utils.c b/e-util/e-dialog-utils.c index 19d9030d30..832d1b844a 100644 --- a/e-util/e-dialog-utils.c +++ b/e-util/e-dialog-utils.c @@ -46,6 +46,7 @@ e_notice (gpointer parent, GtkMessageType type, const gchar *format, ...) va_start (args, format); str = g_strdup_vprintf (format, args); + dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, type, @@ -55,8 +56,11 @@ e_notice (gpointer parent, GtkMessageType type, const gchar *format, ...) va_end (args); g_free (str); + if (parent && !gtk_widget_is_toplevel (parent)) + parent = gtk_widget_get_toplevel (parent); if (parent) gtk_window_set_transient_for (GTK_WINDOW (dialog), parent); + gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } diff --git a/e-util/e-extensible.c b/e-util/e-extensible.c index 9960d31d9f..b718fc59bf 100644 --- a/e-util/e-extensible.c +++ b/e-util/e-extensible.c @@ -16,11 +16,54 @@ * */ +/** + * SECTION: e-extensible + * @short_description: an interface for extending objects + * @include: e-util/e-extensible.h + * + * #EExtension objects can be tacked on to any #GObject instance that + * implements the #EExtensible interface. A #GObject type can be made + * extensible in two steps: + * + * 1. Add the #EExtensible interface when registering the #GType. + * There are no methods to implement. + * + * <informalexample> + * <programlisting> + * #include <e-util/e-extensible.h> + * + * G_DEFINE_TYPE_WITH_CODE ( + * ECustomWidget, e_custom_widget, GTK_TYPE_WIDGET, + * G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) + * </programlisting> + * </informalexample> + * + * 2. Load extensions for the class at some point during #GObject + * initialization. Generally this should be done toward the end of + * the initialization code, so extensions get a fully initialized + * object to work with. + * + * <informalexample> + * <programlisting> + * static void + * e_custom_widget_init (ECustomWidget *widget) + * { + * Initialization code goes here... + * + * e_extensible_load_extensions (E_EXTENSIBLE (widget)); + * } + * </programlisting> + * </informalexample> + **/ + #include "e-extensible.h" #include <e-util/e-util.h> #include <e-util/e-extension.h> +#define IS_AN_EXTENSION_TYPE(type) \ + (g_type_is_a ((type), E_TYPE_EXTENSION)) + static GQuark extensible_quark; static GPtrArray * @@ -89,6 +132,15 @@ e_extensible_get_type (void) return type; } +/** + * e_extensible_load_extensions: + * @extensible: an #EExtensible + * + * Creates an instance of all instantiable subtypes of #EExtension which + * target the class of @extensible. The lifetimes of these newly created + * #EExtension objects are bound to @extensible such that they are finalized + * when @extensible is finalized. + **/ void e_extensible_load_extensions (EExtensible *extensible) { @@ -110,3 +162,44 @@ e_extensible_load_extensions (EExtensible *extensible) E_TYPE_EXTENSION, (ETypeFunc) extensible_load_extension, extensible); } + +/** + * e_extensible_list_extensions: + * @extensible: an #EExtensible + * @extension_type: the type of extensions to list + * + * Returns a list of #EExtension objects bound to @extensible whose + * types are ancestors of @extension_type. For a complete list of + * extension objects bound to @extensible, pass %E_TYPE_EXTENSION. + * + * The list itself should be freed with g_list_free(). The extension + * objects are owned by @extensible and should not be unreferenced. + * + * Returns: a list of extension objects derived from @extension_type + **/ +GList * +e_extensible_list_extensions (EExtensible *extensible, + GType extension_type) +{ + GPtrArray *extensions; + GList *list = NULL; + guint ii; + + g_return_val_if_fail (E_IS_EXTENSIBLE (extensible), NULL); + g_return_val_if_fail (IS_AN_EXTENSION_TYPE (extension_type), NULL); + + e_extensible_load_extensions (extensible); + + extensions = extensible_get_extensions (extensible); + g_return_val_if_fail (extensions != NULL, NULL); + + for (ii = 0; ii < extensions->len; ii++) { + GObject *object; + + object = g_ptr_array_index (extensions, ii); + if (g_type_is_a (G_OBJECT_TYPE (object), extension_type)) + list = g_list_prepend (list, object); + } + + return g_list_reverse (list); +} diff --git a/e-util/e-extensible.h b/e-util/e-extensible.h index a72ea71611..6dd6294212 100644 --- a/e-util/e-extensible.h +++ b/e-util/e-extensible.h @@ -51,6 +51,8 @@ struct _EExtensibleInterface { GType e_extensible_get_type (void); void e_extensible_load_extensions (EExtensible *extensible); +GList * e_extensible_list_extensions (EExtensible *extensible, + GType extension_type); G_END_DECLS diff --git a/e-util/e-extension.c b/e-util/e-extension.c index 05687b64ba..59eab840c9 100644 --- a/e-util/e-extension.c +++ b/e-util/e-extension.c @@ -16,6 +16,29 @@ * */ +/** + * SECTION: e-extension + * @short_description: abstract base class for extensions + * @include: e-util/e-extension.h + * + * #EExtension provides a way to extend the functionality of objects + * that implement the #EExtensible interface. #EExtension subclasses + * can target a particular extensible object type. New instances of + * an extensible object type get paired with a new instance of each + * #EExtension subclass that targets the extensible object type. + * + * The first steps of writing a new extension are as follows: + * + * 1. Subclass #EExtension. + * + * 2. In the class initialization function, specify the #GType being + * extended. The #GType must implement the #EExtensible interface. + * + * 3. Register the extension's own #GType. If the extension is to + * be loaded dynamically using #GTypeModule, the type should be + * registered in the library module's e_module_load() function. + **/ + #include "e-extension.h" #define E_EXTENSION_GET_PRIVATE(obj) \ @@ -151,6 +174,14 @@ e_extension_init (EExtension *extension) extension->priv = E_EXTENSION_GET_PRIVATE (extension); } +/** + * e_extension_get_extensible: + * @extension: an #EExtension + * + * Returns the object that @extension extends. + * + * Returns: the object being extended + **/ EExtensible * e_extension_get_extensible (EExtension *extension) { diff --git a/e-util/e-extension.h b/e-util/e-extension.h index 905ef412f3..e9eee64a62 100644 --- a/e-util/e-extension.h +++ b/e-util/e-extension.h @@ -47,6 +47,12 @@ typedef struct _EExtension EExtension; typedef struct _EExtensionClass EExtensionClass; typedef struct _EExtensionPrivate EExtensionPrivate; +/** + * EExtension: + * + * Contains only private data that should be read and manipulated using the + * functions below. + **/ struct _EExtension { GObject parent; EExtensionPrivate *priv; diff --git a/e-util/e-folder-map.c b/e-util/e-folder-map.c index c77772f289..7d775bed8a 100644 --- a/e-util/e-folder-map.c +++ b/e-util/e-folder-map.c @@ -49,18 +49,18 @@ is_type_folder (const gchar *metadata, const gchar *search_type) doc = e_xml_parse_file (metadata); if (!doc) { - g_warning ("Cannot parse `%s'", metadata); + g_warning ("Cannot parse '%s'", metadata); return FALSE; } if (!(node = xmlDocGetRootElement (doc))) { - g_warning ("`%s' corrupt: document contains no root node", metadata); + g_warning ("'%s' corrupt: document contains no root node", metadata); xmlFreeDoc (doc); return FALSE; } if (!node->name || strcmp ((gchar *)node->name, "efolder") != 0) { - g_warning ("`%s' corrupt: root node is not 'efolder'", metadata); + g_warning ("'%s' corrupt: root node is not 'efolder'", metadata); xmlFreeDoc (doc); return FALSE; } @@ -122,7 +122,7 @@ e_folder_map_dir (const gchar *dirname, const gchar *type, GSList **dir_list) } if (!(dir = g_dir_open (path, 0, &error))) { - g_warning ("cannot open `%s': %s", path, error->message); + g_warning ("cannot open '%s': %s", path, error->message); g_error_free (error); g_free (path); return; @@ -158,7 +158,7 @@ e_folder_map_local_folders (const gchar *local_dir, const gchar *type) GError *error = NULL; if (!(dir = g_dir_open (local_dir, 0, &error))) { - g_warning ("cannot open `%s': %s", local_dir, error->message); + g_warning ("cannot open '%s': %s", local_dir, error->message); g_error_free (error); return NULL; } diff --git a/e-util/e-module.c b/e-util/e-module.c index 3919841910..b61f5e7bdb 100644 --- a/e-util/e-module.c +++ b/e-util/e-module.c @@ -19,6 +19,12 @@ * */ +/** + * SECTION: e-module + * @short_description: a module loader + * @include: e-util/e-module.h + **/ + #include "e-module.h" #include <glib/gi18n.h> diff --git a/e-util/e-module.h b/e-util/e-module.h index 6f99fc0515..dc96bb34d9 100644 --- a/e-util/e-module.h +++ b/e-util/e-module.h @@ -19,11 +19,6 @@ * */ -/** - * SECTION: e-module - * @include: e-util/e-module.h - **/ - #ifndef E_MODULE_H #define E_MODULE_H diff --git a/e-util/e-selection.c b/e-util/e-selection.c index 8be4c0b55a..3561dda636 100644 --- a/e-util/e-selection.c +++ b/e-util/e-selection.c @@ -19,6 +19,12 @@ * */ +/** + * SECTION: e-selection + * @short_description: selection and clipboard utilities + * @include: e-util/e-selection.h + **/ + #include "e-selection.h" #include <string.h> diff --git a/e-util/e-selection.h b/e-util/e-selection.h index f179180cd9..88ac772bae 100644 --- a/e-util/e-selection.h +++ b/e-util/e-selection.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-selection - * @short_description: selection and clipboard utilities - * @include: e-util/e-selection.h - **/ - #ifndef E_SELECTION_H #define E_SELECTION_H diff --git a/e-util/e-ui-manager.c b/e-util/e-ui-manager.c index 8c7455a054..f108cd37c5 100644 --- a/e-util/e-ui-manager.c +++ b/e-util/e-ui-manager.c @@ -16,6 +16,15 @@ * */ +/** + * SECTION: e-ui-manager + * @short_description: construct menus and toolbars from a UI definition + * @include: e-util/e-ui-manager.h + * + * This is a #GtkUIManager with support for Evolution's "express" mode, + * which influences the parsing of UI definitions. + **/ + #include "e-ui-manager.h" #include "e-util-private.h" diff --git a/e-util/e-ui-manager.h b/e-util/e-ui-manager.h index f0dc02c2cc..9b1f389d76 100644 --- a/e-util/e-ui-manager.h +++ b/e-util/e-ui-manager.h @@ -16,15 +16,6 @@ * */ -/** - * SECTION: e-ui-manager - * @short_description: construct menus and toolbars from a UI definition - * @include: e-util/e-ui-manager.h - * - * This is a #GtkUIManager with support for Evolution's "express" mode, - * which influences the parsing of UI definitions. - **/ - #ifndef E_UI_MANAGER_H #define E_UI_MANAGER_H diff --git a/e-util/e-util.c b/e-util/e-util.c index cf5c0b0464..72ccd7a9e2 100644 --- a/e-util/e-util.c +++ b/e-util/e-util.c @@ -20,6 +20,11 @@ * */ +/** + * SECTION: e-util + * @include: e-util/e-util.h + **/ + #include <config.h> #include <stdlib.h> @@ -237,7 +242,7 @@ e_lookup_action (GtkUIManager *ui_manager, iter = g_list_next (iter); } - g_critical ("%s: action `%s' not found", G_STRFUNC, action_name); + g_critical ("%s: action '%s' not found", G_STRFUNC, action_name); return NULL; } @@ -276,7 +281,7 @@ e_lookup_action_group (GtkUIManager *ui_manager, iter = g_list_next (iter); } - g_critical ("%s: action group `%s' not found", G_STRFUNC, group_name); + g_critical ("%s: action group '%s' not found", G_STRFUNC, group_name); return NULL; } diff --git a/e-util/e-util.h b/e-util/e-util.h index dfbc6c0746..887cc20ce2 100644 --- a/e-util/e-util.h +++ b/e-util/e-util.h @@ -20,11 +20,6 @@ * */ -/** - * SECTION: e-util - * @include: e-util/e-util.h - **/ - #ifndef E_UTIL_H #define E_UTIL_H diff --git a/help/C/evolution.xml b/help/C/evolution.xml index 299383b1a0..a343d84033 100644 --- a/help/C/evolution.xml +++ b/help/C/evolution.xml @@ -7036,7 +7036,7 @@ <para>Select this option to display weekends in one box instead of two in the month view.</para> </formalpara> <formalpara id="bsbhw7p"> - <title>Show week numbers in date navigator:</title> + <title>Show week numbers:</title> <para>Shows the week numbers next to the respective weeks in the calendar.</para> </formalpara> <formalpara id="bsbhwdz"> diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c index 4ab444027f..734fefbd72 100644 --- a/mail/e-mail-backend.c +++ b/mail/e-mail-backend.c @@ -22,6 +22,7 @@ * */ +#include <string.h> #include "e-mail-backend.h" #include <camel/camel.h> @@ -283,6 +284,11 @@ mail_backend_quit_requested_cb (EShell *shell, /* We can quit immediately if offline. */ if (!e_shell_get_online (shell)) return; + + /* In express mode, don't raise mail request in non mail window. */ + if (e_shell_get_express_mode(shell) && + strcmp(e_shell_window_get_active_view((EShellWindow *)window), "mail") != 0) + return; /* Check Outbox for any unsent messages. */ diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c index 86ed222f04..fda1f3a034 100644 --- a/mail/e-mail-display.c +++ b/mail/e-mail-display.c @@ -208,6 +208,22 @@ mail_display_style_set (GtkWidget *widget, } static void +mail_display_load_string (EWebView *web_view, + const gchar *string) +{ + EMailDisplayPrivate *priv; + + priv = E_MAIL_DISPLAY_GET_PRIVATE (web_view); + g_return_if_fail (priv->formatter != NULL); + + if (em_format_busy (EM_FORMAT (priv->formatter))) + return; + + /* Chain up to parent's load_string() method. */ + E_WEB_VIEW_CLASS (parent_class)->load_string (web_view, string); +} + +static void mail_display_url_requested (GtkHTML *html, const gchar *uri, GtkHTMLStream *stream) @@ -270,6 +286,7 @@ mail_display_class_init (EMailDisplayClass *class) { GObjectClass *object_class; GtkWidgetClass *widget_class; + EWebViewClass *web_view_class; GtkHTMLClass *html_class; parent_class = g_type_class_peek_parent (class); @@ -284,6 +301,9 @@ mail_display_class_init (EMailDisplayClass *class) widget_class->realize = mail_display_realize; widget_class->style_set = mail_display_style_set; + web_view_class = E_WEB_VIEW_CLASS (class); + web_view_class->load_string = mail_display_load_string; + html_class = GTK_HTML_CLASS (class); html_class->url_requested = mail_display_url_requested; html_class->link_clicked = mail_display_link_clicked; diff --git a/mail/e-mail-migrate.c b/mail/e-mail-migrate.c index f28bf56825..34728929c2 100644 --- a/mail/e-mail-migrate.c +++ b/mail/e-mail-migrate.c @@ -1209,18 +1209,18 @@ is_mail_folder (const gchar *metadata) gchar *type; if (!(doc = xmlParseFile (metadata))) { - g_warning ("Cannot parse `%s'", metadata); + g_warning ("Cannot parse '%s'", metadata); return FALSE; } if (!(node = xmlDocGetRootElement (doc))) { - g_warning ("`%s' corrupt: document contains no root node", metadata); + g_warning ("'%s' corrupt: document contains no root node", metadata); xmlFreeDoc (doc); return FALSE; } if (!node->name || strcmp ((gchar *)node->name, "efolder") != 0) { - g_warning ("`%s' corrupt: root node is not 'efolder'", metadata); + g_warning ("'%s' corrupt: root node is not 'efolder'", metadata); xmlFreeDoc (doc); return FALSE; } @@ -1591,7 +1591,7 @@ em_migrate_folder(EMMigrateSession *session, const gchar *dirname, const gchar * g_set_error ( error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, - _("Unable to create new folder `%s': %s"), + _("Unable to create new folder '%s': %s"), dest->str, g_strerror (errno)); goto fatal; } @@ -1619,7 +1619,7 @@ em_migrate_folder(EMMigrateSession *session, const gchar *dirname, const gchar * g_set_error ( error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, - _("Unable to copy folder `%s' to `%s': %s"), + _("Unable to copy folder '%s' to '%s': %s"), src->str, dest->str, g_strerror (errno)); goto fatal; } @@ -1815,7 +1815,7 @@ em_migrate_local_folders_1_4 (EMMigrateSession *session, GError **error) error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, _("Unable to scan for existing mailboxes at " - "`%s': %s"), session->srcdir, g_strerror (errno)); + "'%s': %s"), session->srcdir, g_strerror (errno)); return FALSE; } @@ -2025,7 +2025,7 @@ em_migrate_pop_uid_caches_1_4 (const gchar *data_dir, GError **error) error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, _("Unable to open old POP keep-on-server data " - "`%s': %s"), cache_dir, g_strerror (errno)); + "'%s': %s"), cache_dir, g_strerror (errno)); g_free (cache_dir); return FALSE; } @@ -2041,7 +2041,7 @@ em_migrate_pop_uid_caches_1_4 (const gchar *data_dir, GError **error) error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, _("Unable to create POP3 keep-on-server data " - "directory `%s': %s"), cache_dir, + "directory '%s': %s"), cache_dir, g_strerror (errno)); g_string_free (oldpath, TRUE); g_free (cache_dir); @@ -2073,7 +2073,7 @@ em_migrate_pop_uid_caches_1_4 (const gchar *data_dir, GError **error) error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, _("Unable to copy POP3 keep-on-server data " - "`%s': %s"), oldpath->str, + "'%s': %s"), oldpath->str, g_strerror (errno)); success = FALSE; } @@ -2357,7 +2357,7 @@ e_path_to_physical (const gchar *prefix, const gchar *vpath) ppath_len++; /* For the separating slash. */ /* Take account of the fact that we need to translate every - * separator into `subfolders/'. + * separator into 'subfolders/'. */ p = vpath; while (1) { @@ -2391,7 +2391,7 @@ e_path_to_physical (const gchar *prefix, const gchar *vpath) break; } - memcpy (dp, p, newp - p + 1); /* `+ 1' to copy the slash too. */ + memcpy (dp, p, newp - p + 1); /* '+ 1' to copy the slash too. */ dp += newp - p + 1; memcpy (dp, SUBFOLDER_DIR_NAME, SUBFOLDER_DIR_NAME_LEN); @@ -2544,7 +2544,7 @@ em_migrate_1_4 (const gchar *data_dir, xmlDocPtr filters, xmlDocPtr vfolders, GE error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, _("Failed to create local mail storage " - "`%s': %s"), path + 5, g_strerror (errno)); + "'%s': %s"), path + 5, g_strerror (errno)); g_free (session->srcdir); camel_object_unref (session); g_free (path); @@ -2557,7 +2557,7 @@ em_migrate_1_4 (const gchar *data_dir, xmlDocPtr filters, xmlDocPtr vfolders, GE g_set_error ( error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, - _("Failed to create local mail storage `%s': %s"), + _("Failed to create local mail storage '%s': %s"), path, lex.desc); g_free (session->srcdir); camel_object_unref (session); @@ -3028,7 +3028,7 @@ e_mail_migrate (EShellBackend *shell_backend, error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, _("Unable to create local mail folders at " - "`%s': %s"), data_dir, g_strerror (errno)); + "'%s': %s"), data_dir, g_strerror (errno)); return FALSE; } } @@ -3046,7 +3046,7 @@ e_mail_migrate (EShellBackend *shell_backend, error, E_SHELL_MIGRATE_ERROR, E_SHELL_MIGRATE_ERROR_FAILED, _("Unable to read settings from previous " - "Evolution install, `evolution/config.xmldb' " + "Evolution install, 'evolution/config.xmldb' " "does not exist or is corrupt.")); return FALSE; } diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c index c670446a50..10f1864497 100644 --- a/mail/e-mail-reader.c +++ b/mail/e-mail-reader.c @@ -1286,8 +1286,8 @@ static GtkActionEntry mail_reader_entries[] = { N_("Mark the selected messages as junk"), G_CALLBACK (action_mail_mark_junk_cb) }, - { "mail-mark-notjunk", - "mail-mark-notjunk", + { "mail-mark-not-junk", + "mail-mark-not-junk", N_("_Not Junk"), "<Shift><Control>j", N_("Mark the selected messages as not being junk"), @@ -1596,9 +1596,9 @@ static EPopupActionEntry mail_reader_popup_entries[] = { N_("Mark as _Junk"), "mail-mark-junk" }, - { "mail-popup-mark-notjunk", + { "mail-popup-mark-not-junk", N_("Mark as _Not Junk"), - "mail-mark-notjunk" }, + "mail-mark-not-junk" }, { "mail-popup-mark-read", N_("Mar_k as Read"), @@ -1781,28 +1781,6 @@ mail_reader_message_read_cb (EMailReader *reader) } static void -update_webview_content (EMailReader *reader, const gchar *content) -{ - EMFormatHTMLDisplay *html_display; - EWebView *web_view; - - g_return_if_fail (reader != NULL); - g_return_if_fail (content != NULL); - - html_display = e_mail_reader_get_html_display (reader); - g_return_if_fail (html_display != NULL); - - /* skip the progress message when it's formatting something */ - if (em_format_busy (EM_FORMAT (html_display))) - return; - - web_view = E_WEB_VIEW (EM_FORMAT_HTML (html_display)->html); - g_return_if_fail (web_view != NULL); - - e_web_view_load_string (web_view, content); -} - -static void mail_reader_message_loaded_cb (CamelFolder *folder, const gchar *message_uid, CamelMimeMessage *message, @@ -1816,6 +1794,7 @@ mail_reader_message_loaded_cb (CamelFolder *folder, EShellBackend *shell_backend; EShellSettings *shell_settings; EShell *shell; + EWebView *web_view; EMEvent *event; EMEventTargetMessage *target; const gchar *cursor_uid; @@ -1841,6 +1820,8 @@ mail_reader_message_loaded_cb (CamelFolder *folder, cursor_uid = MESSAGE_LIST (message_list)->cursor_uid; + web_view = E_WEB_VIEW (EM_FORMAT_HTML (html_display)->html); + /* If the user picked a different message in the time it took * to fetch this message, then don't bother rendering it. */ if (g_strcmp0 (cursor_uid, message_uid) != 0) @@ -1899,10 +1880,11 @@ mail_reader_message_loaded_cb (CamelFolder *folder, _("Unable to retrieve message"), ex->desc); } else { - string = g_strdup_printf (_("Retrieving message '%s'"), cursor_uid); + string = g_strdup_printf ( + _("Retrieving message '%s'"), cursor_uid); } - update_webview_content (reader, string); + e_web_view_load_string (web_view, string); g_free (string); camel_exception_clear (ex); @@ -1921,6 +1903,7 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader) EMailReaderPrivate *priv; EMFormatHTMLDisplay *html_display; GtkWidget *message_list; + EWebView *web_view; CamelFolder *folder; const gchar *cursor_uid; const gchar *format_uid; @@ -1934,6 +1917,8 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader) cursor_uid = MESSAGE_LIST (message_list)->cursor_uid; format_uid = EM_FORMAT (html_display)->uid; + web_view = E_WEB_VIEW (EM_FORMAT_HTML (html_display)->html); + if (MESSAGE_LIST (message_list)->last_sel_single) { GtkWidget *widget; gboolean html_display_visible; @@ -1956,8 +1941,9 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader) gboolean store_async; MailMsgDispatchFunc disp_func; - string = g_strdup_printf (_("Retrieving message '%s'"), cursor_uid); - update_webview_content (reader, string); + string = g_strdup_printf ( + _("Retrieving message '%s'"), cursor_uid); + e_web_view_load_string (web_view, string); g_free (string); store_async = folder->parent_store->flags & CAMEL_STORE_ASYNC; @@ -2318,7 +2304,7 @@ mail_reader_update_actions (EMailReader *reader) action = e_mail_reader_get_action (reader, action_name); gtk_action_set_sensitive (action, sensitive && !(state & E_MAIL_READER_FOLDER_IS_JUNK)); - action_name = "mail-mark-notjunk"; + action_name = "mail-mark-not-junk"; sensitive = selection_has_junk_messages; action = e_mail_reader_get_action (reader, action_name); gtk_action_set_sensitive (action, sensitive); @@ -2671,32 +2657,6 @@ e_mail_reader_init (EMailReader *reader) /* Bind properties. */ - e_binding_new_full ( - shell_settings, "mail-citation-color", - html_display, "citation-color", - e_binding_transform_string_to_color, - NULL, NULL); - - e_binding_new ( - shell_settings, "mail-image-loading-policy", - html_display, "image-loading-policy"); - - e_binding_new ( - shell_settings, "mail-only-local-photos", - html_display, "only-local-photos"); - - e_binding_new ( - shell_settings, "mail-show-animated-images", - web_view, "animate"); - - e_binding_new ( - shell_settings, "mail-show-sender-photo", - html_display, "show-sender-photo"); - - e_binding_new ( - shell_settings, "mail-show-real-date", - html_display, "show-real-date"); - action_name = "mail-caret-mode"; action = e_mail_reader_get_action (reader, action_name); @@ -2935,7 +2895,7 @@ e_mail_reader_get_action (EMailReader *reader, if (action == NULL) g_critical ( - "%s: action `%s' not found", G_STRFUNC, action_name); + "%s: action '%s' not found", G_STRFUNC, action_name); return action; } diff --git a/mail/em-account-editor.c b/mail/em-account-editor.c index 77d2dc8216..38be2f3dbd 100644 --- a/mail/em-account-editor.c +++ b/mail/em-account-editor.c @@ -835,7 +835,6 @@ emae_signature_new (GtkWidget *widget, EMAccountEditor *emae) EShell *shell; EShellSettings *shell_settings; GtkWidget *editor; - gboolean html_mode; gpointer parent; shell = e_shell_get_default (); @@ -844,11 +843,7 @@ emae_signature_new (GtkWidget *widget, EMAccountEditor *emae) parent = gtk_widget_get_toplevel (widget); parent = gtk_widget_is_toplevel (parent) ? parent : NULL; - html_mode = e_shell_settings_get_boolean ( - shell_settings, "composer-format-html"); - editor = e_signature_editor_new (); - gtkhtml_editor_set_html_mode (GTKHTML_EDITOR (editor), html_mode); gtk_window_set_transient_for (GTK_WINDOW (editor), parent); gtk_widget_show (editor); } @@ -2196,7 +2191,9 @@ emae_identity_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget gtk_notebook_append_page ((GtkNotebook *)parent, w, gtk_label_new (_("Identity"))); } - emae_queue_widgets (emae, builder, "account_vbox", "identity_required_table", "identity_optional_table", "identity_optional_frame", NULL); + emae_queue_widgets (emae, builder, "account_vbox", "identity_required_table", + "identity_optional_table", "identity_optional_frame", + "identity_address", NULL); g_object_unref (builder); diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c index fc312c8ae4..25e1761eb4 100644 --- a/mail/em-composer-utils.c +++ b/mail/em-composer-utils.c @@ -720,16 +720,14 @@ em_utils_composer_print_cb (EMsgComposer *composer, /* Composing messages... */ static EMsgComposer * -create_new_composer (const gchar *subject, const gchar *fromuri, gboolean lite) +create_new_composer (const gchar *subject, const gchar *fromuri) { EMsgComposer *composer; EComposerHeaderTable *table; EAccount *account = NULL; - if (lite) - composer = e_msg_composer_lite_new (); - else - composer = e_msg_composer_new (); + composer = e_msg_composer_new (); + table = e_msg_composer_get_header_table (composer); if (fromuri != NULL) { @@ -759,7 +757,7 @@ em_utils_compose_new_message (const gchar *fromuri) { GtkWidget *composer; - composer = (GtkWidget *) create_new_composer ("", fromuri, FALSE); + composer = (GtkWidget *) create_new_composer ("", fromuri); if (composer == NULL) return; @@ -769,26 +767,6 @@ em_utils_compose_new_message (const gchar *fromuri) } /** - * em_utils_compose_lite_new_message: - * - * Opens a new composer window as a child window of @parent's toplevel - * window. - **/ -EMsgComposer * -em_utils_compose_lite_new_message (const gchar *fromuri) -{ - GtkWidget *composer; - - composer = (GtkWidget *) create_new_composer ("", fromuri, TRUE); - if (composer == NULL) - return NULL; - - composer_set_no_change (E_MSG_COMPOSER (composer), TRUE, TRUE); - - return E_MSG_COMPOSER (composer); -} - -/** * em_utils_compose_new_message_with_mailto: * @url: mailto url * @@ -816,10 +794,8 @@ em_utils_compose_new_message_with_mailto (const gchar *url, const gchar *fromuri composer_set_no_change (composer, TRUE, url == NULL); - if (!e_msg_composer_get_lite ()) { - gtk_widget_show ((GtkWidget *) composer); - gdk_window_raise (((GtkWidget *) composer)->window); - } + gtk_widget_show ((GtkWidget *) composer); + gdk_window_raise (((GtkWidget *) composer)->window); return composer; } @@ -996,8 +972,7 @@ edit_message (CamelMimeMessage *message, CamelFolder *drafts, const gchar *uid) composer_set_no_change (composer, TRUE, FALSE); - if (!e_msg_composer_get_lite()) - gtk_widget_show (GTK_WIDGET (composer)); + gtk_widget_show (GTK_WIDGET (composer)); return (GtkWidget *)composer; } @@ -1146,7 +1121,7 @@ forward_attached (CamelFolder *folder, GPtrArray *uids, GPtrArray *messages, Cam { EMsgComposer *composer; - composer = create_new_composer (subject, fromuri, FALSE); + composer = create_new_composer (subject, fromuri); if (composer == NULL) return NULL; @@ -1157,8 +1132,7 @@ forward_attached (CamelFolder *folder, GPtrArray *uids, GPtrArray *messages, Cam composer_set_no_change (composer, TRUE, TRUE); - if (!e_msg_composer_get_lite()) - gtk_widget_show (GTK_WIDGET (composer)); + gtk_widget_show (GTK_WIDGET (composer)); return composer; } @@ -1228,7 +1202,7 @@ forward_non_attached (CamelFolder *folder, GPtrArray *uids, GPtrArray *messages, text = em_utils_message_to_html (message, _("-------- Forwarded Message --------"), flags, &len, NULL, NULL, &validity_found); if (text) { - composer = create_new_composer (subject, fromuri, FALSE); + composer = create_new_composer (subject, fromuri); if (composer) { if (CAMEL_IS_MULTIPART(camel_medium_get_content_object((CamelMedium *)message))) @@ -1245,8 +1219,7 @@ forward_non_attached (CamelFolder *folder, GPtrArray *uids, GPtrArray *messages, emu_update_composers_security (composer, validity_found); composer_set_no_change (composer, TRUE, TRUE); - if (!e_msg_composer_get_lite()) - gtk_widget_show (GTK_WIDGET (composer)); + gtk_widget_show (GTK_WIDGET (composer)); } g_free (text); } @@ -2288,8 +2261,7 @@ em_utils_reply_to_message(CamelFolder *folder, const gchar *uid, CamelMimeMessag composer_set_no_change (composer, TRUE, TRUE); - if (!e_msg_composer_get_lite()) - gtk_widget_show (GTK_WIDGET (composer)); + gtk_widget_show (GTK_WIDGET (composer)); return composer; } diff --git a/mail/em-composer-utils.h b/mail/em-composer-utils.h index be29a7ae71..92e7e182f4 100644 --- a/mail/em-composer-utils.h +++ b/mail/em-composer-utils.h @@ -33,7 +33,6 @@ G_BEGIN_DECLS void em_utils_compose_new_message (const gchar *fromuri); -EMsgComposer * em_utils_compose_lite_new_message (const gchar *fromuri); /* FIXME: mailto? url? should make up its mind what its called. imho use 'uri' */ EMsgComposer * em_utils_compose_new_message_with_mailto (const gchar *url, const gchar *fromuri); diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c index 3daacc52c5..b779caf63a 100644 --- a/mail/em-folder-tree-model.c +++ b/mail/em-folder-tree-model.c @@ -37,10 +37,13 @@ #include <camel/camel-file-utils.h> +#include "e-mail-store.h" + #include "mail-config.h" #include "mail-session.h" #include "mail-tools.h" #include "mail-mt.h" +#include "mail-ops.h" /* sigh, these 2 only needed for outbox total count checking - a mess */ #include "mail-folder-cache.h" @@ -80,6 +83,7 @@ struct _EMFolderTreeModelPrivate { gulong account_changed_id; gulong account_removed_id; + gulong account_added_id; }; enum { @@ -256,6 +260,26 @@ account_removed_cb (EAccountList *accounts, em_folder_tree_model_remove_store (model, si->store); } +/* HACK: FIXME: the component should listen to the account object directly */ +static void +add_new_store (gchar *uri, CamelStore *store, gpointer user_data) +{ + EAccount *account = user_data; + + if (store == NULL) + return; + + e_mail_store_add (store, account->name); +} + +static void +account_added_cb (EAccountList *accounts, + EAccount *account, + EMFolderTreeModel *model) +{ + mail_get_store (e_account_get_string (account, E_ACCOUNT_SOURCE_URL), NULL, add_new_store, account); +} + static void folder_tree_model_selection_finalized_cb (EMFolderTreeModel *model) { @@ -332,6 +356,8 @@ folder_tree_model_finalize (GObject *object) priv->accounts, priv->account_changed_id); g_signal_handler_disconnect ( priv->accounts, priv->account_removed_id); + g_signal_handler_disconnect ( + priv->accounts, priv->account_added_id); /* Chain up to parent's finalize() method. */ G_OBJECT_CLASS (parent_class)->finalize (object); @@ -512,6 +538,9 @@ folder_tree_model_init (EMFolderTreeModel *model) model->priv->account_removed_id = g_signal_connect ( model->priv->accounts, "account-removed", G_CALLBACK (account_removed_cb), model); + model->priv->account_added_id = g_signal_connect ( + model->priv->accounts, "account-added", + G_CALLBACK (account_added_cb), model); g_signal_connect (mail_folder_cache_get_default (), "folder-unread-updated", diff --git a/mail/em-folder-utils.c b/mail/em-folder-utils.c index ad1b929e9d..aee37d7d16 100644 --- a/mail/em-folder-utils.c +++ b/mail/em-folder-utils.c @@ -504,7 +504,7 @@ struct _EMCreateFolderTempData static gchar * emfu_create_folder__desc (struct _EMCreateFolder *m) { - return g_strdup_printf (_("Creating folder `%s'"), m->full_name); + return g_strdup_printf (_("Creating folder '%s'"), m->full_name); } static void diff --git a/mail/em-format-html.c b/mail/em-format-html.c index 780b4c9581..db03a6a9d0 100644 --- a/mail/em-format-html.c +++ b/mail/em-format-html.c @@ -47,6 +47,7 @@ #include "e-util/e-icon-factory.h" #include "e-util/e-util-private.h" #include "e-util/e-util.h" +#include "e-util/e-extensible.h" #include <gtkhtml/gtkhtml.h> #include <gtkhtml/gtkhtml-stream.h> @@ -965,6 +966,8 @@ efh_init (EMFormatHTML *efh, g_signal_connect_swapped ( efh, "notify::mark-citations", G_CALLBACK (em_format_redraw), NULL); + + e_extensible_load_extensions (E_EXTENSIBLE (efh)); } GType @@ -986,9 +989,18 @@ em_format_html_get_type (void) NULL /* value_table */ }; + static const GInterfaceInfo extensible_info = { + (GInterfaceInitFunc) NULL, + (GInterfaceFinalizeFunc) NULL, + NULL /* interface_data */ + }; + type = g_type_register_static ( em_format_get_type(), "EMFormatHTML", &type_info, G_TYPE_FLAG_ABSTRACT); + + g_type_add_interface_static ( + type, E_TYPE_EXTENSIBLE, &extensible_info); } return type; @@ -1383,7 +1395,7 @@ static void emfh_gethttp(struct _EMFormatHTMLJob *job, gint cancelled) camel_http_stream_set_proxy ((CamelHttpStream *)instream, proxy); g_free (proxy); } - camel_operation_start(NULL, _("Retrieving `%s'"), job->u.uri); + camel_operation_start(NULL, _("Retrieving '%s'"), job->u.uri); tmp_stream = (CamelHttpStream *)instream; content_type = camel_http_stream_get_content_type(tmp_stream); length = camel_header_raw_find(&tmp_stream->headers, "Content-Length", NULL); @@ -1392,7 +1404,7 @@ static void emfh_gethttp(struct _EMFormatHTMLJob *job, gint cancelled) total = atoi(length); camel_content_type_unref(content_type); } else - camel_operation_start_transient(NULL, _("Retrieving `%s'"), job->u.uri); + camel_operation_start_transient(NULL, _("Retrieving '%s'"), job->u.uri); camel_url_free(url); diff --git a/mail/evolution-mail.schemas.in b/mail/evolution-mail.schemas.in index 09d875a361..294cf75f9a 100644 --- a/mail/evolution-mail.schemas.in +++ b/mail/evolution-mail.schemas.in @@ -160,21 +160,6 @@ </schema> <schema> - <key>/schemas/apps/evolution/mail/composer/show_mail_from</key> - <applyto>/apps/evolution/mail/composer/show_mail_from</applyto> - <owner>evolution-mail</owner> - <type>bool</type> - <default>true</default> - <locale name="C"> - <short>Show "From" field when sending a mail message</short> - <long> - Show the "From" field when sending a mail message. This is - controlled from the View menu when a mail account is chosen. - </long> - </locale> - </schema> - - <schema> <key>/schemas/apps/evolution/mail/composer/show_mail_reply_to</key> <applyto>/apps/evolution/mail/composer/show_mail_reply_to</applyto> <owner>evolution-mail</owner> diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c index ee1c958d12..f61ce2658b 100644 --- a/mail/importers/mail-importer.c +++ b/mail/importers/mail-importer.c @@ -152,7 +152,7 @@ import_mbox_exec (struct _import_mbox_msg *m) if (m->cancel) oldcancel = camel_operation_register(m->cancel); - camel_operation_start(NULL, _("Importing `%s'"), folder->full_name); + camel_operation_start(NULL, _("Importing '%s'"), folder->full_name); camel_folder_freeze(folder); while (camel_mime_parser_step(mp, NULL, NULL) == CAMEL_MIME_PARSER_STATE_FROM) { CamelMimeMessage *msg; diff --git a/mail/mail-config.ui b/mail/mail-config.ui index 55f5ee6227..8f8935bd0e 100644 --- a/mail/mail-config.ui +++ b/mail/mail-config.ui @@ -2923,7 +2923,7 @@ For example: "Work" or "Personal"</property> </packing> </child> <child> - <object class="GtkHBox" id="hbox234"> + <object class="GtkHBox" id="hboxMailSizeLimit"> <property name="visible">True</property> <property name="spacing">4</property> <child> @@ -2972,7 +2972,7 @@ For example: "Work" or "Personal"</property> </packing> </child> <child> - <object class="GtkHBox" id="hbox233"> + <object class="GtkHBox" id="hboxShrinkAddresses"> <property name="visible">True</property> <child> <object class="GtkCheckButton" id="address_checkbox"> @@ -4481,7 +4481,7 @@ For example: "Work" or "Personal"</property> <property name="visible">True</property> <property name="spacing">2</property> <child> - <object class="GtkVBox" id="vbox207"> + <object class="GtkVBox" id="vboxTopPosting"> <property name="visible">True</property> <property name="orientation">vertical</property> <property name="spacing">8</property> @@ -4540,7 +4540,7 @@ For example: "Work" or "Personal"</property> </packing> </child> <child> - <object class="GtkLabel" id="label506"> + <object class="GtkLabel" id="labelAlerts"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">Alerts</property> diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 10a66a4f47..b1a332d4f4 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -23,6 +23,11 @@ * */ +/** + * SECTION: mail-folder-cache + * @short_description: Stores information about open folders + **/ + #ifdef HAVE_CONFIG_H #include "config.h" #endif diff --git a/mail/mail-folder-cache.h b/mail/mail-folder-cache.h index 8a7b82eada..dd3a108d03 100644 --- a/mail/mail-folder-cache.h +++ b/mail/mail-folder-cache.h @@ -31,11 +31,6 @@ G_BEGIN_DECLS -/** - * SECTION: mail-folder-cache - * @short_description: Stores information about open folders - **/ - #define MAIL_TYPE_FOLDER_CACHE mail_folder_cache_get_type() #define MAIL_FOLDER_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAIL_TYPE_FOLDER_CACHE, MailFolderCache)) #define MAIL_FOLDER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAIL_TYPE_FOLDER_CACHE, MailFolderCacheClass)) diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 73ad926390..7cbb91bede 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -595,7 +595,7 @@ mail_send_message (struct _send_queue_msg *m, CamelFolder *queue, const gchar *u folder = mail_tool_uri_to_folder (sent_folder_uri, 0, ex); if (camel_exception_is_set(ex)) { g_string_append_printf (err, _("Failed to append to %s: %s\n" - "Appending to local `Sent' folder instead."), + "Appending to local 'Sent' folder instead."), sent_folder_uri, camel_exception_get_description (ex)); camel_exception_clear (ex); } @@ -622,7 +622,7 @@ mail_send_message (struct _send_queue_msg *m, CamelFolder *queue, const gchar *u if (err->len) g_string_append(err, "\n\n"); g_string_append_printf (err, _("Failed to append to %s: %s\n" - "Appending to local `Sent' folder instead."), + "Appending to local 'Sent' folder instead."), name, camel_exception_get_description (ex)); camel_object_ref (sent_folder); camel_object_unref (folder); @@ -638,7 +638,7 @@ mail_send_message (struct _send_queue_msg *m, CamelFolder *queue, const gchar *u if (err->len) g_string_append(err, "\n\n"); - g_string_append_printf (err, _("Failed to append to local `Sent' folder: %s"), + g_string_append_printf (err, _("Failed to append to local 'Sent' folder: %s"), camel_exception_get_description (ex)); } } diff --git a/mail/mail-tools.c b/mail/mail-tools.c index 9e268d85cf..f006b1b963 100644 --- a/mail/mail-tools.c +++ b/mail/mail-tools.c @@ -120,7 +120,7 @@ mail_tool_get_local_movemail_path (const guchar *uri, CamelException *ex) path = g_build_filename (data_dir, "spool", NULL); if (g_stat(path, &st) == -1 && g_mkdir_with_parents(path, 0700) == -1) { - camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, _("Could not create spool directory `%s': %s"), + camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, _("Could not create spool directory '%s': %s"), path, g_strerror(errno)); g_free(path); return NULL; @@ -150,7 +150,7 @@ mail_tool_do_movemail (const gchar *source_url, CamelException *ex) if (strcmp(uri->protocol, "mbox") != 0) { /* This is really only an internal error anyway */ camel_exception_setv (ex, CAMEL_EXCEPTION_SERVICE_URL_INVALID, - _("Trying to movemail a non-mbox source `%s'"), + _("Trying to movemail a non-mbox source '%s'"), source_url); camel_url_free(uri); return NULL; @@ -298,7 +298,7 @@ mail_tool_uri_to_folder (const gchar *uri, guint32 flags, CamelException *ex) /* FIXME?: the filter:get_folder callback should do this itself? */ curi = em_uri_to_camel(uri); if (uri == NULL) { - camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, _("Invalid folder: `%s'"), uri); + camel_exception_setv(ex, CAMEL_EXCEPTION_SYSTEM, _("Invalid folder: '%s'"), uri); return NULL; } uri = curi; diff --git a/modules/Makefile.am b/modules/Makefile.am index 653d1b69c6..4c0c38dcbb 100644 --- a/modules/Makefile.am +++ b/modules/Makefile.am @@ -10,6 +10,10 @@ if ENABLE_NETWORK_MANAGER NETWORK_MANAGER_DIR = network-manager endif +if ENABLE_CONNMAN +CONNMAN_DIR = connman +endif + if ENABLE_WINDOWS_SENS WINDOWS_SENS_DIR = windows-sens endif @@ -22,6 +26,7 @@ SUBDIRS = \ $(MONO_DIR) \ $(PYTHON_DIR) \ $(NETWORK_MANAGER_DIR) \ - $(WINDOWS_SENS_DIR) + $(WINDOWS_SENS_DIR) \ + $(CONNMAN_DIR) -include $(top_srcdir)/git.mk diff --git a/modules/addressbook/e-book-shell-content.c b/modules/addressbook/e-book-shell-content.c index 55b833269e..9642627844 100644 --- a/modules/addressbook/e-book-shell-content.c +++ b/modules/addressbook/e-book-shell-content.c @@ -629,6 +629,7 @@ e_book_shell_content_set_preview_visible (EBookShellContent *book_shell_content, EShellSearchbar * e_book_shell_content_get_searchbar (EBookShellContent *book_shell_content) { + EShellView *shell_view; EShellContent *shell_content; GtkWidget *widget; @@ -636,7 +637,8 @@ e_book_shell_content_get_searchbar (EBookShellContent *book_shell_content) E_IS_BOOK_SHELL_CONTENT (book_shell_content), NULL); shell_content = E_SHELL_CONTENT (book_shell_content); - widget = e_shell_content_get_searchbar (shell_content); + shell_view = e_shell_content_get_shell_view (shell_content); + widget = e_shell_view_get_searchbar (shell_view); return E_SHELL_SEARCHBAR (widget); } diff --git a/modules/addressbook/e-book-shell-migrate.c b/modules/addressbook/e-book-shell-migrate.c index c237f40d94..55246ce047 100644 --- a/modules/addressbook/e-book-shell-migrate.c +++ b/modules/addressbook/e-book-shell-migrate.c @@ -370,7 +370,7 @@ migrate_contacts (MigrationContext *context, EBook *old_book, EBook *new_book) if (!e_book_add_contact (new_book, contact, &e)) - g_warning ("contact add failed: `%s'", e->message); + g_warning ("contact add failed: '%s'", e->message); num_added ++; @@ -400,14 +400,14 @@ migrate_contact_folder_to_source (MigrationContext *context, gchar *old_path, ES old_book = e_book_new (old_source, &e); if (!old_book || !e_book_open (old_book, TRUE, &e)) { - g_warning ("failed to load source book for migration: `%s'", e->message); + g_warning ("failed to load source book for migration: '%s'", e->message); goto finish; } new_book = e_book_new (new_source, &e); if (!new_book || !e_book_open (new_book, FALSE, &e)) { - g_warning ("failed to load destination book for migration: `%s'", e->message); + g_warning ("failed to load destination book for migration: '%s'", e->message); goto finish; } @@ -809,7 +809,7 @@ migrate_completion_folders (MigrationContext *context) e_source_set_property (source, "completion", "true"); } else { - g_warning ("found completion folder with uri `%s' that " + g_warning ("found completion folder with uri '%s' that " "doesn't correspond to anything we migrated.", physical_uri); } @@ -886,7 +886,7 @@ migrate_contact_lists_for_local_folders (MigrationContext *context, ESourceGroup if (!e_book_commit_contact (book, contact, &e)) - g_warning ("contact commit failed: `%s'", e->message); + g_warning ("contact commit failed: '%s'", e->message); } num_converted ++; @@ -989,7 +989,7 @@ migrate_company_phone_for_local_folders (MigrationContext *context, ESourceGroup if (!e_book_commit_contact (book, contact, &e)) - g_warning ("contact commit failed: `%s'", e->message); + g_warning ("contact commit failed: '%s'", e->message); } num_converted ++; diff --git a/modules/calendar/Makefile.am b/modules/calendar/Makefile.am index 0a22b2f568..bbabb6cfb2 100644 --- a/modules/calendar/Makefile.am +++ b/modules/calendar/Makefile.am @@ -14,8 +14,20 @@ libevolution_module_calendar_la_SOURCES = \ evolution-module-calendar.c \ e-cal-attachment-handler.c \ e-cal-attachment-handler.h \ + e-cal-config-calendar-item.c \ + e-cal-config-calendar-item.h \ + e-cal-config-date-edit.c \ + e-cal-config-date-edit.h \ e-cal-config-hook.c \ e-cal-config-hook.h \ + e-cal-config-meeting-store.c \ + e-cal-config-meeting-store.h \ + e-cal-config-meeting-time-selector.c \ + e-cal-config-meeting-time-selector.h \ + e-cal-config-model.c \ + e-cal-config-model.h \ + e-cal-config-view.c \ + e-cal-config-view.h \ e-cal-event-hook.c \ e-cal-event-hook.h \ e-cal-shell-backend.c \ diff --git a/modules/calendar/e-cal-config-calendar-item.c b/modules/calendar/e-cal-config-calendar-item.c new file mode 100644 index 0000000000..5c585f94ca --- /dev/null +++ b/modules/calendar/e-cal-config-calendar-item.c @@ -0,0 +1,79 @@ +/* + * e-cal-config-calendar-item.c + * + * 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/> + * + */ + +#include "e-cal-config-calendar-item.h" + +#include <shell/e-shell.h> +#include <e-util/e-binding.h> +#include <e-util/e-extension.h> +#include <misc/e-calendar-item.h> + +static void +cal_config_calendar_item_constructed (GObject *object) +{ + EExtension *extension; + EExtensible *extensible; + EShellSettings *shell_settings; + EShell *shell; + + extension = E_EXTENSION (object); + extensible = e_extension_get_extensible (extension); + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + e_binding_new ( + shell_settings, "cal-show-week-numbers", + extensible, "show-week-numbers"); + + e_binding_new ( + shell_settings, "cal-week-start-day", + extensible, "week-start-day"); +} + +static void +cal_config_calendar_item_class_init (EExtensionClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = cal_config_calendar_item_constructed; + + class->extensible_type = E_TYPE_CALENDAR_ITEM; +} + +void +e_cal_config_calendar_item_register_type (GTypeModule *type_module) +{ + static const GTypeInfo type_info = { + sizeof (EExtensionClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) cal_config_calendar_item_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EExtension), + 0, /* n_preallocs */ + (GInstanceInitFunc) NULL, + NULL /* value_table */ + }; + + g_type_module_register_type ( + type_module, E_TYPE_EXTENSION, + "ECalConfigCalendarItem", &type_info, 0); +} diff --git a/modules/calendar/e-cal-config-calendar-item.h b/modules/calendar/e-cal-config-calendar-item.h new file mode 100644 index 0000000000..af12eb244a --- /dev/null +++ b/modules/calendar/e-cal-config-calendar-item.h @@ -0,0 +1,30 @@ +/* + * e-cal-config-calendar-item.h + * + * 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/> + * + */ + +#ifndef E_CAL_CONFIG_CALENDAR_ITEM_H +#define E_CAL_CONFIG_CALENDAR_ITEM_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +void e_cal_config_calendar_item_register_type (GTypeModule *type_module); + +G_END_DECLS + +#endif /* E_CAL_CONFIG_CALENDAR_ITEM_H */ diff --git a/modules/calendar/e-cal-config-date-edit.c b/modules/calendar/e-cal-config-date-edit.c new file mode 100644 index 0000000000..667e749dff --- /dev/null +++ b/modules/calendar/e-cal-config-date-edit.c @@ -0,0 +1,79 @@ +/* + * e-cal-config-date-edit.c + * + * 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/> + * + */ + +#include "e-cal-config-date-edit.h" + +#include <shell/e-shell.h> +#include <e-util/e-binding.h> +#include <e-util/e-extension.h> +#include <misc/e-dateedit.h> + +static void +cal_config_date_edit_constructed (GObject *object) +{ + EExtension *extension; + EExtensible *extensible; + EShellSettings *shell_settings; + EShell *shell; + + extension = E_EXTENSION (object); + extensible = e_extension_get_extensible (extension); + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + e_binding_new ( + shell_settings, "cal-show-week-numbers", + extensible, "show-week-numbers"); + + e_binding_new ( + shell_settings, "cal-week-start-day", + extensible, "week-start-day"); +} + +static void +cal_config_date_edit_class_init (EExtensionClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = cal_config_date_edit_constructed; + + class->extensible_type = E_TYPE_DATE_EDIT; +} + +void +e_cal_config_date_edit_register_type (GTypeModule *type_module) +{ + static const GTypeInfo type_info = { + sizeof (EExtensionClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) cal_config_date_edit_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EExtension), + 0, /* n_preallocs */ + (GInstanceInitFunc) NULL, + NULL /* value_table */ + }; + + g_type_module_register_type ( + type_module, E_TYPE_EXTENSION, + "ECalConfigDateEdit", &type_info, 0); +} diff --git a/modules/calendar/e-cal-config-date-edit.h b/modules/calendar/e-cal-config-date-edit.h new file mode 100644 index 0000000000..33291201dc --- /dev/null +++ b/modules/calendar/e-cal-config-date-edit.h @@ -0,0 +1,30 @@ +/* + * e-cal-config-date-edit.h + * + * 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/> + * + */ + +#ifndef E_CAL_CONFIG_DATE_EDIT_H +#define E_CAL_CONFIG_DATE_EDIT_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +void e_cal_config_date_edit_register_type (GTypeModule *type_module); + +G_END_DECLS + +#endif /* E_CAL_CONFIG_DATE_EDIT_H */ diff --git a/modules/calendar/e-cal-config-meeting-store.c b/modules/calendar/e-cal-config-meeting-store.c new file mode 100644 index 0000000000..7169ac4029 --- /dev/null +++ b/modules/calendar/e-cal-config-meeting-store.c @@ -0,0 +1,79 @@ +/* + * e-cal-config-meeting-store.c + * + * 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/> + * + */ + +#include "e-cal-config-meeting-store.h" + +#include <shell/e-shell.h> +#include <e-util/e-binding.h> +#include <e-util/e-extension.h> +#include <calendar/gui/e-meeting-store.h> + +static void +cal_config_meeting_store_constructed (GObject *object) +{ + EExtension *extension; + EExtensible *extensible; + EShellSettings *shell_settings; + EShell *shell; + + extension = E_EXTENSION (object); + extensible = e_extension_get_extensible (extension); + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + e_binding_new ( + shell_settings, "cal-free-busy-template", + extensible, "free-busy-template"); + + e_binding_new ( + shell_settings, "cal-timezone", + extensible, "timezone"); +} + +static void +cal_config_meeting_store_class_init (EExtensionClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = cal_config_meeting_store_constructed; + + class->extensible_type = E_TYPE_MEETING_STORE; +} + +void +e_cal_config_meeting_store_register_type (GTypeModule *type_module) +{ + static const GTypeInfo type_info = { + sizeof (EExtensionClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) cal_config_meeting_store_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EExtension), + 0, /* n_preallocs */ + (GInstanceInitFunc) NULL, + NULL /* value_table */ + }; + + g_type_module_register_type ( + type_module, E_TYPE_EXTENSION, + "ECalConfigMeetingStore", &type_info, 0); +} diff --git a/modules/calendar/e-cal-config-meeting-store.h b/modules/calendar/e-cal-config-meeting-store.h new file mode 100644 index 0000000000..9ad2835da8 --- /dev/null +++ b/modules/calendar/e-cal-config-meeting-store.h @@ -0,0 +1,30 @@ +/* + * e-cal-config-meeting-store.h + * + * 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/> + * + */ + +#ifndef E_CAL_CONFIG_MEETING_STORE_H +#define E_CAL_CONFIG_MEETING_STORE_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +void e_cal_config_meeting_store_register_type (GTypeModule *type_module); + +G_END_DECLS + +#endif /* E_CAL_CONFIG_MEETING_STORE_H */ diff --git a/modules/calendar/e-cal-config-meeting-time-selector.c b/modules/calendar/e-cal-config-meeting-time-selector.c new file mode 100644 index 0000000000..1c45d3b9ef --- /dev/null +++ b/modules/calendar/e-cal-config-meeting-time-selector.c @@ -0,0 +1,83 @@ +/* + * e-cal-config-meeting-time-selector.c + * + * 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/> + * + */ + +#include "e-cal-config-meeting-time-selector.h" + +#include <shell/e-shell.h> +#include <e-util/e-binding.h> +#include <e-util/e-extension.h> +#include <calendar/gui/e-meeting-time-sel.h> + +static void +cal_config_meeting_time_selector_constructed (GObject *object) +{ + EExtension *extension; + EExtensible *extensible; + EShellSettings *shell_settings; + EShell *shell; + + extension = E_EXTENSION (object); + extensible = e_extension_get_extensible (extension); + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + e_binding_new ( + shell_settings, "cal-show-week-numbers", + extensible, "show-week-numbers"); + + e_binding_new ( + shell_settings, "cal-use-24-hour-format", + extensible, "use-24-hour-format"); + + e_binding_new ( + shell_settings, "cal-week-start-day", + extensible, "week-start-day"); +} + +static void +cal_config_meeting_time_selector_class_init (EExtensionClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = cal_config_meeting_time_selector_constructed; + + class->extensible_type = E_TYPE_MEETING_TIME_SELECTOR; +} + +void +e_cal_config_meeting_time_selector_register_type (GTypeModule *type_module) +{ + static const GTypeInfo type_info = { + sizeof (EExtensionClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) cal_config_meeting_time_selector_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EExtension), + 0, /* n_preallocs */ + (GInstanceInitFunc) NULL, + NULL /* value_table */ + }; + + g_type_module_register_type ( + type_module, E_TYPE_EXTENSION, + "ECalConfigMeetingTimeSelector", &type_info, 0); +} diff --git a/modules/calendar/e-cal-config-meeting-time-selector.h b/modules/calendar/e-cal-config-meeting-time-selector.h new file mode 100644 index 0000000000..b244263605 --- /dev/null +++ b/modules/calendar/e-cal-config-meeting-time-selector.h @@ -0,0 +1,30 @@ +/* + * e-cal-config-meeting-time-selector.h + * + * 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/> + * + */ + +#ifndef E_CAL_CONFIG_MEETING_TIME_SELECTOR_H +#define E_CAL_CONFIG_MEETING_TIME_SELECTOR_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +void e_cal_config_meeting_time_selector_register_type (GTypeModule *type_module); + +G_END_DECLS + +#endif /* E_CAL_CONFIG_MEETING_TIME_SELECTOR_H */ diff --git a/modules/calendar/e-cal-config-model.c b/modules/calendar/e-cal-config-model.c new file mode 100644 index 0000000000..d176d509e9 --- /dev/null +++ b/modules/calendar/e-cal-config-model.c @@ -0,0 +1,99 @@ +/* + * e-cal-config-model.c + * + * 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/> + * + */ + +#include "e-cal-config-model.h" + +#include <shell/e-shell.h> +#include <e-util/e-binding.h> +#include <e-util/e-extension.h> +#include <calendar/gui/e-cal-model.h> +#include <calendar/gui/e-cal-model-tasks.h> + +static void +cal_config_model_constructed (GObject *object) +{ + EExtension *extension; + EExtensible *extensible; + EShellSettings *shell_settings; + EShell *shell; + + extension = E_EXTENSION (object); + extensible = e_extension_get_extensible (extension); + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + /*** ECalModel ***/ + + e_binding_new ( + shell_settings, "cal-timezone", + extensible, "timezone"); + + e_binding_new ( + shell_settings, "cal-use-24-hour-format", + extensible, "use-24-hour-format"); + + e_binding_new ( + shell_settings, "cal-week-start-day", + extensible, "week-start-day"); + + /*** ECalModelTasks ***/ + + if (E_IS_CAL_MODEL_TASKS (extensible)) { + + e_binding_new ( + shell_settings, "cal-tasks-color-due-today", + extensible, "color-due-today"); + + e_binding_new ( + shell_settings, "cal-tasks-color-overdue", + extensible, "color-overdue"); + } +} + +static void +cal_config_model_class_init (EExtensionClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = cal_config_model_constructed; + + class->extensible_type = E_TYPE_CAL_MODEL; +} + +void +e_cal_config_model_register_type (GTypeModule *type_module) +{ + static const GTypeInfo type_info = { + sizeof (EExtensionClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) cal_config_model_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EExtension), + 0, /* n_preallocs */ + (GInstanceInitFunc) NULL, + NULL /* value_table */ + }; + + g_type_module_register_type ( + type_module, E_TYPE_EXTENSION, + "ECalConfigModel", &type_info, 0); +} diff --git a/modules/calendar/e-cal-config-model.h b/modules/calendar/e-cal-config-model.h new file mode 100644 index 0000000000..1c1045a906 --- /dev/null +++ b/modules/calendar/e-cal-config-model.h @@ -0,0 +1,30 @@ +/* + * e-cal-config-model.h + * + * 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/> + * + */ + +#ifndef E_CAL_CONFIG_MODEL_H +#define E_CAL_CONFIG_MODEL_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +void e_cal_config_model_register_type (GTypeModule *type_module); + +G_END_DECLS + +#endif /* E_CAL_CONFIG_MODEL_H */ diff --git a/modules/calendar/e-cal-config-view.c b/modules/calendar/e-cal-config-view.c new file mode 100644 index 0000000000..e543bf6c56 --- /dev/null +++ b/modules/calendar/e-cal-config-view.c @@ -0,0 +1,130 @@ +/* + * e-cal-config-view.c + * + * 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/> + * + */ + +#include "e-cal-config-view.h" + +#include <shell/e-shell.h> +#include <e-util/e-binding.h> +#include <e-util/e-extension.h> +#include <calendar/gui/e-day-view.h> +#include <calendar/gui/e-week-view.h> + +static void +cal_config_view_constructed (GObject *object) +{ + EExtension *extension; + EExtensible *extensible; + EShellSettings *shell_settings; + EShell *shell; + + extension = E_EXTENSION (object); + extensible = e_extension_get_extensible (extension); + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + /*** EDayView ***/ + + if (E_IS_DAY_VIEW (extensible)) { + + e_binding_new ( + shell_settings, "cal-show-week-numbers", + E_DAY_VIEW (extensible)->week_number_label, "visible"); + + e_binding_new ( + shell_settings, "cal-marcus-bains-show-line", + extensible, "marcus-bains-show-line"); + + e_binding_new ( + shell_settings, "cal-marcus-bains-day-view-color", + extensible, "marcus-bains-day-view-color"); + + e_binding_new ( + shell_settings, "cal-marcus-bains-time-bar-color", + extensible, "marcus-bains-time-bar-color"); + + e_binding_new ( + shell_settings, "cal-time-divisions", + extensible, "mins-per-row"); + + e_binding_new ( + shell_settings, "cal-work-day-end-hour", + extensible, "work-day-end-hour"); + + e_binding_new ( + shell_settings, "cal-work-day-end-minute", + extensible, "work-day-end-minute"); + + e_binding_new ( + shell_settings, "cal-work-day-start-hour", + extensible, "work-day-start-hour"); + + e_binding_new ( + shell_settings, "cal-work-day-start-minute", + extensible, "work-day-start-minute"); + + e_binding_new ( + shell_settings, "cal-working-days-bitset", + extensible, "working-days"); + } + + /*** EWeekView ***/ + + if (E_IS_WEEK_VIEW (extensible)) { + + e_binding_new ( + shell_settings, "cal-compress-weekend", + extensible, "compress-weekend"); + + e_binding_new ( + shell_settings, "cal-show-event-end-times", + extensible, "show-event-end-times"); + } +} + +static void +cal_config_view_class_init (EExtensionClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = cal_config_view_constructed; + + class->extensible_type = E_TYPE_CALENDAR_VIEW; +} + +void +e_cal_config_view_register_type (GTypeModule *type_module) +{ + static const GTypeInfo type_info = { + sizeof (EExtensionClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) cal_config_view_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EExtension), + 0, /* n_preallocs */ + (GInstanceInitFunc) NULL, + NULL /* value_table */ + }; + + g_type_module_register_type ( + type_module, E_TYPE_EXTENSION, + "ECalConfigView", &type_info, 0); +} diff --git a/modules/calendar/e-cal-config-view.h b/modules/calendar/e-cal-config-view.h new file mode 100644 index 0000000000..e36acddf0c --- /dev/null +++ b/modules/calendar/e-cal-config-view.h @@ -0,0 +1,31 @@ +/* + * e-cal-config-view.h + * + * 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/> + * + */ + +#ifndef E_CAL_CONFIG_VIEW_H +#define E_CAL_CONFIG_VIEW_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +void e_cal_config_view_register_type (GTypeModule *type_module); + +G_END_DECLS + +#endif /* E_CAL_CONFIG_VIEW_H */ + diff --git a/modules/calendar/e-cal-shell-backend.c b/modules/calendar/e-cal-shell-backend.c index 5e6f390189..86750f0a32 100644 --- a/modules/calendar/e-cal-shell-backend.c +++ b/modules/calendar/e-cal-shell-backend.c @@ -600,7 +600,7 @@ cal_shell_backend_handle_uri_cb (EShellBackend *shell_backend, source = e_source_list_peek_source_by_uid (source_list, source_uid); if (source == NULL) { - g_printerr ("No source for UID `%s'\n", source_uid); + g_printerr ("No source for UID '%s'\n", source_uid); g_object_unref (source_list); goto exit; } diff --git a/modules/calendar/e-cal-shell-content.c b/modules/calendar/e-cal-shell-content.c index f5cc0162c0..e35b935f05 100644 --- a/modules/calendar/e-cal-shell-content.c +++ b/modules/calendar/e-cal-shell-content.c @@ -314,11 +314,11 @@ cal_shell_content_constructed (GObject *object) { ECalShellContentPrivate *priv; ECalendarView *calendar_view; - ECalModel *memo_model; - ECalModel *task_model; + ECalModel *memo_model=NULL; + ECalModel *task_model=NULL; EShell *shell; EShellContent *shell_content; - EShellSettings *shell_settings; + EShellBackend *shell_backend; EShellView *shell_view; EShellWindow *shell_window; EShellContent *foreign_content; @@ -342,51 +342,57 @@ cal_shell_content_constructed (GObject *object) shell_window = e_shell_view_get_shell_window (shell_view); shell = e_shell_window_get_shell (shell_window); - shell_settings = e_shell_get_shell_settings (shell); /* We borrow the memopad and taskpad models from the memo * and task views, loading the views if necessary. */ - - foreign_view = e_shell_window_get_shell_view (shell_window, "memos"); - foreign_content = e_shell_view_get_shell_content (foreign_view); - g_object_get (foreign_content, "model", &memo_model, NULL); - - foreign_view = e_shell_window_get_shell_view (shell_window, "tasks"); - foreign_content = e_shell_view_get_shell_content (foreign_view); - g_object_get (foreign_content, "model", &task_model, NULL); - + if(!e_shell_get_express_mode(e_shell_get_default())) { + foreign_view = e_shell_window_get_shell_view (shell_window, "memos"); + foreign_content = e_shell_view_get_shell_content (foreign_view); + g_object_get (foreign_content, "model", &memo_model, NULL); + + foreign_view = e_shell_window_get_shell_view (shell_window, "tasks"); + foreign_content = e_shell_view_get_shell_content (foreign_view); + g_object_get (foreign_content, "model", &task_model, NULL); + } /* Build content widgets. */ container = GTK_WIDGET (object); + + if (!e_shell_get_express_mode(e_shell_get_default())) { + widget = e_paned_new (GTK_ORIENTATION_HORIZONTAL); + gtk_container_add (GTK_CONTAINER (container), widget); + priv->hpaned = g_object_ref (widget); + gtk_widget_show (widget); - widget = e_paned_new (GTK_ORIENTATION_HORIZONTAL); - gtk_container_add (GTK_CONTAINER (container), widget); - priv->hpaned = g_object_ref (widget); - gtk_widget_show (widget); - - container = priv->hpaned; + container = priv->hpaned; + } widget = gtk_notebook_new (); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (widget), FALSE); gtk_notebook_set_show_border (GTK_NOTEBOOK (widget), FALSE); - gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, FALSE); + if (!e_shell_get_express_mode(e_shell_get_default())) + gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, FALSE); + else + gtk_container_add (GTK_CONTAINER (container), widget); priv->notebook = g_object_ref (widget); gtk_widget_show (widget); - /* FIXME Need to deal with saving and restoring the position. - * Month view has its own position. */ - widget = e_paned_new (GTK_ORIENTATION_VERTICAL); - e_paned_set_fixed_resize (E_PANED (widget), FALSE); - gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, TRUE); - priv->vpaned = g_object_ref (widget); - gtk_widget_show (widget); + if (!e_shell_get_express_mode(e_shell_get_default())) { + /* FIXME Need to deal with saving and restoring the position. + * Month view has its own position. */ + widget = e_paned_new (GTK_ORIENTATION_VERTICAL); + e_paned_set_fixed_resize (E_PANED (widget), FALSE); + gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, TRUE); + priv->vpaned = g_object_ref (widget); + gtk_widget_show (widget); + } container = priv->notebook; /* Add views in the order defined by GnomeCalendarViewType, such * that the notebook page number corresponds to the view type. */ - priv->calendar = gnome_calendar_new (shell_settings); + priv->calendar = gnome_calendar_new (); calendar = GNOME_CALENDAR (priv->calendar); for (ii = 0; ii < GNOME_CAL_LAST_VIEW; ii++) { @@ -403,7 +409,7 @@ cal_shell_content_constructed (GObject *object) priv->notebook, "page"); container = priv->vpaned; - +if(!e_shell_get_express_mode(e_shell_get_default())) { widget = gtk_vbox_new (FALSE, 0); gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, TRUE); gtk_widget_show (widget); @@ -484,7 +490,7 @@ cal_shell_content_constructed (GObject *object) widget, "open-component", G_CALLBACK (e_cal_shell_view_memopad_open_memo), shell_view); - +} /* Load the view instance. */ view_instance = e_shell_view_new_view_instance (shell_view, NULL); @@ -496,21 +502,23 @@ cal_shell_content_constructed (GObject *object) * The GtkWidget::map() callback below explains why. */ priv->view_instance = view_instance; - g_signal_connect_swapped ( - shell_view, "notify::view-id", - G_CALLBACK (cal_shell_content_notify_view_id_cb), - object); + if (!e_shell_get_express_mode(e_shell_get_default())) { + g_signal_connect_swapped ( + shell_view, "notify::view-id", + G_CALLBACK (cal_shell_content_notify_view_id_cb), + object); - /* Bind GObject properties to GConf keys. */ + bridge = gconf_bridge_get (); - bridge = gconf_bridge_get (); - - object = G_OBJECT (priv->vpaned); - key = "/apps/evolution/calendar/display/tag_vpane_position"; - gconf_bridge_bind_property_delayed (bridge, key, object, "proportion"); + object = G_OBJECT (priv->vpaned); + key = "/apps/evolution/calendar/display/tag_vpane_position"; + gconf_bridge_bind_property_delayed (bridge, key, object, "proportion"); + } - g_object_unref (memo_model); - g_object_unref (task_model); + if (memo_model) + g_object_unref (memo_model); + if (task_model) + g_object_unref (task_model); } static void @@ -545,7 +553,7 @@ cal_shell_content_class_init (ECalShellContentClass *class) object_class->get_property = cal_shell_content_get_property; object_class->dispose = cal_shell_content_dispose; object_class->constructed = cal_shell_content_constructed; - + widget_class = GTK_WIDGET_CLASS (class); widget_class->map = cal_shell_content_map; @@ -669,6 +677,7 @@ e_cal_shell_content_get_task_table (ECalShellContent *cal_shell_content) EShellSearchbar * e_cal_shell_content_get_searchbar (ECalShellContent *cal_shell_content) { + EShellView *shell_view; EShellContent *shell_content; GtkWidget *widget; @@ -676,7 +685,8 @@ e_cal_shell_content_get_searchbar (ECalShellContent *cal_shell_content) E_IS_CAL_SHELL_CONTENT (cal_shell_content), NULL); shell_content = E_SHELL_CONTENT (cal_shell_content); - widget = e_shell_content_get_searchbar (shell_content); + shell_view = e_shell_content_get_shell_view (shell_content); + widget = e_shell_view_get_searchbar (shell_view); return E_SHELL_SEARCHBAR (widget); } diff --git a/modules/calendar/e-cal-shell-migrate.c b/modules/calendar/e-cal-shell-migrate.c index ea0e6aa751..f307522a9b 100644 --- a/modules/calendar/e-cal-shell-migrate.c +++ b/modules/calendar/e-cal-shell-migrate.c @@ -82,7 +82,7 @@ static e_gconf_map_t calendar_other_map[] = { static e_gconf_map_t calendar_datenavigator_map[] = { /* /Calendar/DateNavigator */ - { "ShowWeekNumbers", "calendar/date_navigator/show_week_numbers", E_GCONF_MAP_BOOL }, + { "ShowWeekNumbers", "calendar/display/show_week_numbers", E_GCONF_MAP_BOOL }, { NULL }, }; @@ -690,7 +690,7 @@ e_cal_shell_backend_migrate (EShellBackend *shell_backend, if (!migrate_ical_folder (l->data, on_this_computer, source_name, E_CAL_SOURCE_TYPE_EVENT)) { /* FIXME: domain/code */ - g_set_error(error, 0, 0, _("Unable to migrate calendar `%s'"), source_name); + g_set_error(error, 0, 0, _("Unable to migrate calendar '%s'"), source_name); g_free(source_name); goto fail; } diff --git a/modules/calendar/e-cal-shell-settings.c b/modules/calendar/e-cal-shell-settings.c index 3852de0a52..4613f280bb 100644 --- a/modules/calendar/e-cal-shell-settings.c +++ b/modules/calendar/e-cal-shell-settings.c @@ -491,8 +491,8 @@ e_cal_shell_backend_init_settings (EShell *shell) "/apps/evolution/calendar/prompts/confirm_purge"); e_shell_settings_install_property_for_key ( - "cal-day-view-show-week-numbers", - "/apps/evolution/calendar/display/day_view_show_week_number"); + "cal-show-week-numbers", + "/apps/evolution/calendar/display/show_week_numbers"); e_shell_settings_install_property_for_key ( "cal-free-busy-template", @@ -539,10 +539,6 @@ e_cal_shell_backend_init_settings (EShell *shell) "/apps/evolution/calendar/display/show_event_end"); e_shell_settings_install_property_for_key ( - "cal-show-week-numbers", - "/apps/evolution/calendar/date_navigator/show_week_numbers"); - - e_shell_settings_install_property_for_key ( "cal-tasks-color-due-today", "/apps/evolution/calendar/tasks/colors/due_today"); diff --git a/modules/calendar/e-cal-shell-sidebar.c b/modules/calendar/e-cal-shell-sidebar.c index eb28868ce6..546d21b3c3 100644 --- a/modules/calendar/e-cal-shell-sidebar.c +++ b/modules/calendar/e-cal-shell-sidebar.c @@ -33,6 +33,7 @@ #include "calendar/gui/calendar-config.h" #include "calendar/gui/e-calendar-selector.h" #include "calendar/gui/misc.h" +#include "calendar/gui/dialogs/calendar-setup.h" #include "e-cal-shell-view.h" #include "e-cal-shell-backend.h" @@ -476,7 +477,7 @@ cal_shell_sidebar_restore_state_cb (EShellWindow *shell_window, bridge = gconf_bridge_get (); object = G_OBJECT (priv->paned); - key = "/apps/evolution/calendar/display/date_navigator_vpane_position"; + key = "/apps/evolution/calendar/display/date_navigator_pane_position"; gconf_bridge_bind_property_delayed (bridge, key, object, "vposition"); } @@ -559,6 +560,21 @@ cal_shell_sidebar_finalize (GObject *object) } static void +new_calendar_clicked (GtkButton *button, + EShellSidebar *shell_sidebar) +{ + EShellView *shell_view; + EShellWindow *shell_window; + EShellBackend *shell_backend; + + shell_view = e_shell_sidebar_get_shell_view (shell_sidebar); + shell_backend = e_shell_view_get_shell_backend (shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + calendar_setup_new_calendar (GTK_WINDOW (shell_window)); +} + +static void cal_shell_sidebar_constructed (GObject *object) { ECalShellSidebarPrivate *priv; @@ -605,7 +621,21 @@ cal_shell_sidebar_constructed (GObject *object) GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN); - gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, TRUE); + if(!e_shell_get_express_mode(e_shell_get_default())) { + gtk_paned_pack1 (GTK_PANED (container), widget, TRUE, TRUE); + } else { + GtkWidget *button; + + container = gtk_vbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX(container), widget, TRUE, TRUE, 0); + + button = gtk_button_new_with_label (_("New Calendar...")); + gtk_box_pack_start (GTK_BOX(container), button, FALSE, FALSE, 0); + g_signal_connect (button, "clicked", G_CALLBACK(new_calendar_clicked), shell_sidebar); + + gtk_paned_pack1 (GTK_PANED (priv->paned), container, TRUE, TRUE); + gtk_widget_show_all (container); + } gtk_widget_show (widget); container = widget; @@ -624,7 +654,8 @@ cal_shell_sidebar_constructed (GObject *object) calitem = E_CALENDAR (widget)->calitem; e_calendar_item_set_days_start_week_sel (calitem, 9); e_calendar_item_set_max_days_sel (calitem, 42); - gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, TRUE); + gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, FALSE); + gtk_widget_set_size_request (widget, -1, 200); priv->date_navigator = g_object_ref (widget); gtk_widget_show (widget); diff --git a/modules/calendar/e-cal-shell-view-actions.c b/modules/calendar/e-cal-shell-view-actions.c index 5eaa9a4eb0..83f6101d0a 100644 --- a/modules/calendar/e-cal-shell-view-actions.c +++ b/modules/calendar/e-cal-shell-view-actions.c @@ -1196,6 +1196,25 @@ action_event_schedule_cb (GtkAction *action, edit_event_as (cal_shell_view, TRUE); } + static void +quit_calendar_cb (GtkAction *action, + ECalShellView *cal_shell_view) +{ + EShellView *shell_view; + EShellWindow *shell_window; + GdkEvent *event; + + shell_view = E_SHELL_VIEW (cal_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + /* Synthesize a delete_event on this window. */ + event = gdk_event_new (GDK_DELETE); + event->any.window = g_object_ref (((GtkWidget *) shell_window)->window); + event->any.send_event = TRUE; + gtk_main_do_event (event); + gdk_event_free (event); +} + static void action_event_schedule_appointment_cb (GtkAction *action, ECalShellView *cal_shell_view) @@ -1428,6 +1447,13 @@ static GtkActionEntry calendar_entries[] = { N_("Converts a meeting to an appointment"), G_CALLBACK (action_event_schedule_appointment_cb) }, + { "quit-calendar", + GTK_STOCK_CLOSE, + N_("Quit"), + NULL, + NULL, /* XXX Add a tooltip! */ + G_CALLBACK (quit_calendar_cb) }, + /*** Menus ***/ { "calendar-actions-menu", @@ -1689,7 +1715,7 @@ e_cal_shell_view_actions_init (ECalShellView *cal_shell_view) cal_shell_content = cal_shell_view->priv->cal_shell_content; searchbar = e_cal_shell_content_get_searchbar (cal_shell_content); - + /* Calendar Actions */ action_group = ACTION_GROUP (CALENDAR); gtk_action_group_add_actions ( @@ -1710,8 +1736,9 @@ e_cal_shell_view_actions_init (ECalShellView *cal_shell_view) /* Advanced Search Action */ action = ACTION (CALENDAR_SEARCH_ADVANCED_HIDDEN); gtk_action_set_visible (action, FALSE); - e_shell_searchbar_set_search_option ( - searchbar, GTK_RADIO_ACTION (action)); + if (searchbar) + e_shell_searchbar_set_search_option ( + searchbar, GTK_RADIO_ACTION (action)); /* Lockdown Printing Actions */ action_group = ACTION_GROUP (LOCKDOWN_PRINTING); @@ -1833,18 +1860,20 @@ e_cal_shell_view_update_search_filter (ECalShellView *cal_shell_view) cal_shell_content = cal_shell_view->priv->cal_shell_content; searchbar = e_cal_shell_content_get_searchbar (cal_shell_content); - combo_box = e_shell_searchbar_get_filter_combo_box (searchbar); + if (searchbar) { + combo_box = e_shell_searchbar_get_filter_combo_box (searchbar); - e_shell_view_block_execute_search (shell_view); + e_shell_view_block_execute_search (shell_view); - /* Use any action in the group; doesn't matter which. */ - e_action_combo_box_set_action (combo_box, radio_action); + /* Use any action in the group; doesn't matter which. */ + e_action_combo_box_set_action (combo_box, radio_action); - ii = CALENDAR_FILTER_UNMATCHED; - e_action_combo_box_add_separator_after (combo_box, ii); + ii = CALENDAR_FILTER_UNMATCHED; + e_action_combo_box_add_separator_after (combo_box, ii); - ii = CALENDAR_FILTER_NEXT_7_DAYS_APPOINTMENTS; - e_action_combo_box_add_separator_after (combo_box, ii); + ii = CALENDAR_FILTER_NEXT_7_DAYS_APPOINTMENTS; + e_action_combo_box_add_separator_after (combo_box, ii); - e_shell_view_unblock_execute_search (shell_view); + e_shell_view_unblock_execute_search (shell_view); + } } diff --git a/modules/calendar/e-cal-shell-view-actions.h b/modules/calendar/e-cal-shell-view-actions.h index a69b82f645..b79bc6baaf 100644 --- a/modules/calendar/e-cal-shell-view-actions.h +++ b/modules/calendar/e-cal-shell-view-actions.h @@ -89,6 +89,8 @@ E_SHELL_WINDOW_ACTION ((window), "event-reply-all") #define E_SHELL_WINDOW_ACTION_EVENT_OCCURRENCE_MOVABLE(window) \ E_SHELL_WINDOW_ACTION ((window), "event-occurrence-movable") +#define E_SHELL_WINDOW_ACTION_EVENT_MEETING_NEW(window) \ + E_SHELL_WINDOW_ACTION ((window), "event-meeting-new") /* Memo Pad Actions */ #define E_SHELL_WINDOW_ACTION_CALENDAR_MEMOPAD_FORWARD(window) \ diff --git a/modules/calendar/e-cal-shell-view-private.c b/modules/calendar/e-cal-shell-view-private.c index c669c29b33..a958a9f05e 100644 --- a/modules/calendar/e-cal-shell-view-private.c +++ b/modules/calendar/e-cal-shell-view-private.c @@ -28,6 +28,16 @@ #define CHECK_NB 5 +/* be compatible with older e-d-s for MeeGo */ +#ifndef ETC_TIMEZONE +# define ETC_TIMEZONE "/etc/timezone" +# define ETC_TIMEZONE_MAJ "/etc/TIMEZONE" +# define ETC_RC_CONF "/etc/rc.conf" +# define ETC_SYSCONFIG_CLOCK "/etc/sysconfig/clock" +# define ETC_CONF_D_CLOCK "/etc/conf.d/clock" +# define ETC_LOCALTIME "/etc/localtime" +#endif + static const gchar * files_to_check [CHECK_NB] = { ETC_TIMEZONE, ETC_TIMEZONE_MAJ, @@ -611,35 +621,41 @@ e_cal_shell_view_private_constructed (ECalShellView *cal_shell_view) G_CALLBACK (cal_shell_view_selector_client_removed_cb), cal_shell_view); - g_signal_connect_swapped ( - memo_table, "popup-event", - G_CALLBACK (cal_shell_view_memopad_popup_event_cb), - cal_shell_view); - - g_signal_connect_swapped ( - memo_table, "selection-change", - G_CALLBACK (e_cal_shell_view_memopad_actions_update), - cal_shell_view); + if (memo_table) + g_signal_connect_swapped ( + memo_table, "popup-event", + G_CALLBACK (cal_shell_view_memopad_popup_event_cb), + cal_shell_view); - g_signal_connect_swapped ( - memo_table, "status-message", - G_CALLBACK (e_cal_shell_view_memopad_set_status_message), - cal_shell_view); + if (memo_table) + g_signal_connect_swapped ( + memo_table, "selection-change", + G_CALLBACK (e_cal_shell_view_memopad_actions_update), + cal_shell_view); - g_signal_connect_swapped ( - task_table, "popup-event", - G_CALLBACK (cal_shell_view_taskpad_popup_event_cb), - cal_shell_view); + if (memo_table) + g_signal_connect_swapped ( + memo_table, "status-message", + G_CALLBACK (e_cal_shell_view_memopad_set_status_message), + cal_shell_view); - g_signal_connect_swapped ( - task_table, "status-message", - G_CALLBACK (e_cal_shell_view_taskpad_set_status_message), - cal_shell_view); + if (task_table) + g_signal_connect_swapped ( + task_table, "popup-event", + G_CALLBACK (cal_shell_view_taskpad_popup_event_cb), + cal_shell_view); - g_signal_connect_swapped ( - task_table, "selection-change", - G_CALLBACK (e_cal_shell_view_taskpad_actions_update), - cal_shell_view); + if (task_table) + g_signal_connect_swapped ( + task_table, "status-message", + G_CALLBACK (e_cal_shell_view_taskpad_set_status_message), + cal_shell_view); + + if (task_table) + g_signal_connect_swapped ( + task_table, "selection-change", + G_CALLBACK (e_cal_shell_view_taskpad_actions_update), + cal_shell_view); e_categories_add_change_hook ( (GHookFunc) e_cal_shell_view_update_search_filter, diff --git a/modules/calendar/e-cal-shell-view.c b/modules/calendar/e-cal-shell-view.c index cd44f37c56..1f719e82c5 100644 --- a/modules/calendar/e-cal-shell-view.c +++ b/modules/calendar/e-cal-shell-view.c @@ -283,6 +283,7 @@ cal_shell_view_update_actions (EShellView *shell_view) GtkAction *action; GList *list, *iter; gboolean sensitive; + gboolean visible; guint32 state; gint n_selected; @@ -303,6 +304,26 @@ cal_shell_view_update_actions (EShellView *shell_view) shell_window = e_shell_view_get_shell_window (shell_view); + if(e_shell_get_express_mode(e_shell_get_default())) { + GtkWidget *widget, *item; + + /* Hack: Get rid of New and Send/Receive in toolbar + * while in express mode */ + widget = e_shell_window_get_managed_widget ( + shell_window, "/main-toolbar"); + + item = (GtkWidget *)gtk_toolbar_get_nth_item ((GtkToolbar *)widget, 0); + gtk_widget_hide(item); + + widget = e_shell_window_get_managed_widget ( + shell_window, "/main-menu"); + gtk_widget_hide(widget); + + item = e_shell_window_get_managed_widget ( + shell_window, "/main-toolbar/send-receive"); + if (item) + gtk_widget_hide(item); + } cal_shell_content = priv->cal_shell_content; calendar = e_cal_shell_content_get_calendar (cal_shell_content); view_type = gnome_calendar_get_view (calendar); @@ -444,6 +465,10 @@ cal_shell_view_update_actions (EShellView *shell_view) action = ACTION (EVENT_REPLY_ALL); sensitive = (n_selected == 1) && is_meeting; gtk_action_set_sensitive (action, sensitive); + + action = ACTION (EVENT_MEETING_NEW); + visible = itip_addresses_get_default() != NULL; + gtk_action_set_visible (action, visible); } static void @@ -472,7 +497,7 @@ cal_shell_view_class_init (ECalShellViewClass *class, shell_view_class->new_shell_sidebar = e_cal_shell_sidebar_new; shell_view_class->execute_search = cal_shell_view_execute_search; shell_view_class->update_actions = cal_shell_view_update_actions; -} +} static void cal_shell_view_init (ECalShellView *cal_shell_view, diff --git a/modules/calendar/e-memo-shell-backend.c b/modules/calendar/e-memo-shell-backend.c index 979b525304..b0635b6e38 100644 --- a/modules/calendar/e-memo-shell-backend.c +++ b/modules/calendar/e-memo-shell-backend.c @@ -419,7 +419,7 @@ memo_shell_backend_handle_uri_cb (EShellBackend *shell_backend, source = e_source_list_peek_source_by_uid (source_list, source_uid); if (source == NULL) { - g_printerr ("No source for UID `%s'\n", source_uid); + g_printerr ("No source for UID '%s'\n", source_uid); g_object_unref (source_list); goto exit; } diff --git a/modules/calendar/e-memo-shell-content.c b/modules/calendar/e-memo-shell-content.c index 34946b7bdd..d56a6105d1 100644 --- a/modules/calendar/e-memo-shell-content.c +++ b/modules/calendar/e-memo-shell-content.c @@ -418,7 +418,7 @@ memo_shell_content_constructed (GObject *object) shell = e_shell_backend_get_shell (shell_backend); shell_settings = e_shell_get_shell_settings (shell); - priv->memo_model = e_cal_model_memos_new (shell_settings); + priv->memo_model = e_cal_model_memos_new (); timezone = e_shell_settings_get_pointer ( shell_settings, "cal-timezone"); @@ -730,6 +730,7 @@ e_memo_shell_content_set_preview_visible (EMemoShellContent *memo_shell_content, EShellSearchbar * e_memo_shell_content_get_searchbar (EMemoShellContent *memo_shell_content) { + EShellView *shell_view; EShellContent *shell_content; GtkWidget *widget; @@ -737,7 +738,8 @@ e_memo_shell_content_get_searchbar (EMemoShellContent *memo_shell_content) E_IS_MEMO_SHELL_CONTENT (memo_shell_content), NULL); shell_content = E_SHELL_CONTENT (memo_shell_content); - widget = e_shell_content_get_searchbar (shell_content); + shell_view = e_shell_content_get_shell_view (shell_content); + widget = e_shell_view_get_searchbar (shell_view); return E_SHELL_SEARCHBAR (widget); } diff --git a/modules/calendar/e-task-shell-backend.c b/modules/calendar/e-task-shell-backend.c index 7926555ec6..e428c9413e 100644 --- a/modules/calendar/e-task-shell-backend.c +++ b/modules/calendar/e-task-shell-backend.c @@ -424,7 +424,7 @@ task_shell_backend_handle_uri_cb (EShellBackend *shell_backend, source = e_source_list_peek_source_by_uid (source_list, source_uid); if (source == NULL) { - g_printerr ("No source for UID `%s'\n", source_uid); + g_printerr ("No source for UID '%s'\n", source_uid); g_object_unref (source_list); goto exit; } diff --git a/modules/calendar/e-task-shell-content.c b/modules/calendar/e-task-shell-content.c index 5fb39a9738..910b4da48e 100644 --- a/modules/calendar/e-task-shell-content.c +++ b/modules/calendar/e-task-shell-content.c @@ -415,7 +415,7 @@ task_shell_content_constructed (GObject *object) shell = e_shell_window_get_shell (shell_window); shell_settings = e_shell_get_shell_settings (shell); - priv->task_model = e_cal_model_tasks_new (shell_settings); + priv->task_model = e_cal_model_tasks_new (); timezone = e_shell_settings_get_pointer ( shell_settings, "cal-timezone"); @@ -752,6 +752,7 @@ e_task_shell_content_set_preview_visible (ETaskShellContent *task_shell_content, EShellSearchbar * e_task_shell_content_get_searchbar (ETaskShellContent *task_shell_content) { + EShellView *shell_view; EShellContent *shell_content; GtkWidget *widget; @@ -759,7 +760,8 @@ e_task_shell_content_get_searchbar (ETaskShellContent *task_shell_content) E_IS_TASK_SHELL_CONTENT (task_shell_content), NULL); shell_content = E_SHELL_CONTENT (task_shell_content); - widget = e_shell_content_get_searchbar (shell_content); + shell_view = e_shell_content_get_shell_view (shell_content); + widget = e_shell_view_get_searchbar (shell_view); return E_SHELL_SEARCHBAR (widget); } diff --git a/modules/calendar/e-task-shell-migrate.c b/modules/calendar/e-task-shell-migrate.c index 3ba36ce9b1..3c3210b472 100644 --- a/modules/calendar/e-task-shell-migrate.c +++ b/modules/calendar/e-task-shell-migrate.c @@ -617,7 +617,7 @@ e_task_shell_backend_migrate (EShellBackend *shell_backend, if (!migrate_ical_folder (l->data, on_this_computer, source_name, E_CAL_SOURCE_TYPE_TODO)) { /* FIXME: domain/code */ - g_set_error(error, 0, 0, _("Unable to migrate tasks `%s'"), source_name); + g_set_error(error, 0, 0, _("Unable to migrate tasks '%s'"), source_name); g_free(source_name); goto fail; } diff --git a/modules/calendar/evolution-module-calendar.c b/modules/calendar/evolution-module-calendar.c index f72e8a97e4..b54f6439a3 100644 --- a/modules/calendar/evolution-module-calendar.c +++ b/modules/calendar/evolution-module-calendar.c @@ -39,6 +39,13 @@ #include "e-task-shell-sidebar.h" #include "e-task-shell-view.h" +#include "e-cal-config-calendar-item.h" +#include "e-cal-config-date-edit.h" +#include "e-cal-config-meeting-store.h" +#include "e-cal-config-meeting-time-selector.h" +#include "e-cal-config-model.h" +#include "e-cal-config-view.h" + /* Module Entry Points */ void e_module_load (GTypeModule *type_module); void e_module_unload (GTypeModule *type_module); @@ -67,6 +74,13 @@ e_module_load (GTypeModule *type_module) e_task_shell_content_register_type (type_module); e_task_shell_sidebar_register_type (type_module); e_task_shell_view_register_type (type_module); + + e_cal_config_calendar_item_register_type (type_module); + e_cal_config_date_edit_register_type (type_module); + e_cal_config_meeting_store_register_type (type_module); + e_cal_config_meeting_time_selector_register_type (type_module); + e_cal_config_model_register_type (type_module); + e_cal_config_view_register_type (type_module); } G_MODULE_EXPORT void diff --git a/modules/connman/Makefile.am b/modules/connman/Makefile.am new file mode 100644 index 0000000000..63822262c4 --- /dev/null +++ b/modules/connman/Makefile.am @@ -0,0 +1,22 @@ +module_LTLIBRARIES = libevolution-module-connman.la + +libevolution_module_connman_la_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + -I$(top_srcdir) \ + -DG_LOG_DOMAIN=\"evolution-connman\" \ + $(GNOME_PLATFORM_CFLAGS) \ + $(DBUS_GLIB_CFLAGS) + +libevolution_module_connman_la_SOURCES = \ + evolution-connman.c + +libevolution_module_connman_la_LIBADD = \ + $(top_builddir)/e-util/libeutil.la \ + $(top_builddir)/shell/libeshell.la \ + $(GNOME_PLATFORM_LIBS) \ + $(DBUS_GLIB_LIBS) + +libevolution_module_connman_la_LDFLAGS = \ + -module -avoid-version $(NO_UNDEFINED) + +-include $(top_srcdir)/git.mk diff --git a/modules/connman/evolution-connman.c b/modules/connman/evolution-connman.c new file mode 100644 index 0000000000..abf532f295 --- /dev/null +++ b/modules/connman/evolution-connman.c @@ -0,0 +1,209 @@ +/* + * evolution-connman.c + * + * 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/> + * + */ + +#include <dbus/dbus.h> +#include <dbus/dbus-glib.h> +#include <dbus/dbus-glib-lowlevel.h> + +#include <shell/e-shell.h> +#include <e-util/e-extension.h> + +#define CM_DBUS_SERVICE "org.moblin.connman" +#define CM_DBUS_INTERFACE "org.moblin.connman.Manager" +#define CM_DBUS_PATH "/" + +/* Standard GObject macros */ +#define E_TYPE_CONNMAN \ + (e_connman_get_type ()) +#define E_CONNMAN(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_CONNMAN, EConnMan)) + +typedef struct { + EExtension parent; + DBusConnection *connection; +} EConnMan; +typedef EExtensionClass EConnManClass; + +/* Module Entry Points */ +void e_module_load (GTypeModule *type_module); +void e_module_unload (GTypeModule *type_module); + +/* Forward Declarations */ +GType e_connman_get_type (void); +static gboolean network_manager_connect (EConnMan *extension); + +G_DEFINE_DYNAMIC_TYPE (EConnMan, e_connman, E_TYPE_EXTENSION) + +static void +extension_set_state (EConnMan *extension, const char *state) +{ + EExtensible *extensible; + + extensible = e_extension_get_extensible (E_EXTENSION (extension)); + g_return_if_fail (E_IS_SHELL (extensible)); + + e_shell_set_network_available (E_SHELL (extensible), !g_strcmp0 (state, "online")); +} + +static DBusHandlerResult +connman_monitor (DBusConnection *connection G_GNUC_UNUSED, + DBusMessage *message, + gpointer user_data) +{ + char *value; + EConnMan *extension = user_data; + DBusError error = DBUS_ERROR_INIT; + DBusHandlerResult ret = DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + + if (!dbus_message_has_path (message, CM_DBUS_PATH) || + !dbus_message_has_interface (message, CM_DBUS_INTERFACE) || + !dbus_message_has_member (message, "StateChanged")) + goto err_exit; + + if (!dbus_message_get_args (message, &error, + DBUS_TYPE_STRING, &value, + DBUS_TYPE_INVALID)) + goto err_exit; + + extension_set_state (extension, value); + ret = DBUS_HANDLER_RESULT_HANDLED; + + err_exit: + return ret; +} + +static void +connman_check_initial_state (EConnMan *extension) +{ + DBusMessage *message = NULL; + DBusMessage *response = NULL; + DBusError error = DBUS_ERROR_INIT; + + message = dbus_message_new_method_call ( + CM_DBUS_SERVICE, CM_DBUS_PATH, CM_DBUS_INTERFACE, "GetState"); + + /* XXX Assuming this should be safe to call synchronously. */ + response = dbus_connection_send_with_reply_and_block ( + extension->connection, message, 100, &error); + + if (response != NULL) { + const char *value; + if (dbus_message_get_args (message, &error, + DBUS_TYPE_STRING, &value, + DBUS_TYPE_INVALID)) + extension_set_state (extension, value); + } else { + g_warning ("%s", error.message); + dbus_error_free (&error); + return; + } + + dbus_message_unref (message); + dbus_message_unref (response); +} + +static gboolean +network_manager_connect (EConnMan *extension) +{ + DBusError error = DBUS_ERROR_INIT; + + /* This is a timeout callback, so the return value denotes + * whether to reschedule, not whether we're successful. */ + + if (extension->connection != NULL) + return FALSE; + + extension->connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); + if (extension->connection == NULL) { + g_warning ("%s", error.message); + dbus_error_free (&error); + return TRUE; + } + + dbus_connection_setup_with_g_main (extension->connection, NULL); + dbus_connection_set_exit_on_disconnect (extension->connection, FALSE); + + if (!dbus_connection_add_filter ( + extension->connection, connman_monitor, extension, NULL)) + goto fail; + + dbus_bus_add_match ( + extension->connection, + "type='signal'," + "interface='" CM_DBUS_INTERFACE "'," + "sender='" CM_DBUS_SERVICE "'," + "member='StateChanged'," + "path='" CM_DBUS_PATH "'", + &error); + if (dbus_error_is_set (&error)) { + g_warning ("%s", error.message); + dbus_error_free (&error); + goto fail; + } + + connman_check_initial_state (extension); + + return FALSE; + +fail: + dbus_connection_unref (extension->connection); + extension->connection = NULL; + + return TRUE; +} + +static void +network_manager_constructed (GObject *object) +{ + network_manager_connect (E_CONNMAN (object)); +} + +static void +e_connman_class_init (EConnManClass *class) +{ + GObjectClass *object_class; + EExtensionClass *extension_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = network_manager_constructed; + + extension_class = E_EXTENSION_CLASS (class); + extension_class->extensible_type = E_TYPE_SHELL; +} + +static void +e_connman_class_finalize (EConnManClass *class) +{ +} + +static void +e_connman_init (EConnMan *extension) +{ +} + +G_MODULE_EXPORT void +e_module_load (GTypeModule *type_module) +{ + e_connman_register_type (type_module); +} + +G_MODULE_EXPORT void +e_module_unload (GTypeModule *type_module) +{ +} diff --git a/modules/mail/Makefile.am b/modules/mail/Makefile.am index 65a5c30d1f..323820217b 100644 --- a/modules/mail/Makefile.am +++ b/modules/mail/Makefile.am @@ -17,8 +17,12 @@ libevolution_module_mail_la_SOURCES = \ evolution-module-mail.c \ e-mail-attachment-handler.c \ e-mail-attachment-handler.h \ + e-mail-config-format-html.c \ + e-mail-config-format-html.h \ e-mail-config-hook.c \ e-mail-config-hook.h \ + e-mail-config-web-view.c \ + e-mail-config-web-view.h \ e-mail-event-hook.c \ e-mail-event-hook.h \ e-mail-junk-hook.c \ diff --git a/modules/mail/e-mail-config-format-html.c b/modules/mail/e-mail-config-format-html.c new file mode 100644 index 0000000000..a92a943976 --- /dev/null +++ b/modules/mail/e-mail-config-format-html.c @@ -0,0 +1,93 @@ +/* + * e-mail-config-format-html.c + * + * 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/> + * + */ + +#include "e-mail-config-format-html.h" + +#include <shell/e-shell.h> +#include <e-util/e-binding.h> +#include <e-util/e-extension.h> +#include <mail/em-format-html.h> + +static void +mail_config_format_html_constructed (GObject *object) +{ + EExtension *extension; + EExtensible *extensible; + EShellSettings *shell_settings; + EShell *shell; + + extension = E_EXTENSION (object); + extensible = e_extension_get_extensible (extension); + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + e_binding_new_full ( + shell_settings, "mail-citation-color", + extensible, "citation-color", + e_binding_transform_string_to_color, + NULL, NULL); + + e_binding_new ( + shell_settings, "mail-image-loading-policy", + extensible, "image-loading-policy"); + + e_binding_new ( + shell_settings, "mail-only-local-photos", + extensible, "only-local-photos"); + + e_binding_new ( + shell_settings, "mail-show-sender-photo", + extensible, "show-sender-photo"); + + e_binding_new ( + shell_settings, "mail-show-real-date", + extensible, "show-real-date"); +} + +static void +mail_config_format_html_class_init (EExtensionClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = mail_config_format_html_constructed; + + class->extensible_type = EM_TYPE_FORMAT_HTML; +} + +void +e_mail_config_format_html_register_type (GTypeModule *type_module) +{ + static const GTypeInfo type_info = { + sizeof (EExtensionClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) mail_config_format_html_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EExtension), + 0, /* n_preallocs */ + (GInstanceInitFunc) NULL, + NULL /* value_table */ + }; + + g_type_module_register_type ( + type_module, E_TYPE_EXTENSION, + "EMailConfigFormatHTML", &type_info, 0); +} diff --git a/modules/mail/e-mail-config-format-html.h b/modules/mail/e-mail-config-format-html.h new file mode 100644 index 0000000000..bed76d88b7 --- /dev/null +++ b/modules/mail/e-mail-config-format-html.h @@ -0,0 +1,30 @@ +/* + * e-mail-config-format-html.h + * + * 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/> + * + */ + +#ifndef E_MAIL_CONFIG_FORMAT_HTML_H +#define E_MAIL_CONFIG_FORMAT_HTML_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +void e_mail_config_format_html_register_type (GTypeModule *type_module); + +G_END_DECLS + +#endif /* E_MAIL_CONFIG_FORMAT_HTML_H */ diff --git a/modules/mail/e-mail-config-web-view.c b/modules/mail/e-mail-config-web-view.c new file mode 100644 index 0000000000..5cfb648154 --- /dev/null +++ b/modules/mail/e-mail-config-web-view.c @@ -0,0 +1,100 @@ +/* + * e-mail-config-web-view.c + * + * 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/> + * + */ + +#include "e-mail-config-web-view.h" + +#include <shell/e-shell.h> +#include <e-util/e-binding.h> +#include <e-util/e-extension.h> +#include <misc/e-web-view.h> + +static void +mail_config_web_view_realize (GtkWidget *widget) +{ + EShell *shell; + EShellSettings *shell_settings; + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + e_binding_new ( + shell_settings, "mail-show-animated-images", + widget, "animate"); + + e_binding_new ( + shell_settings, "composer-inline-spelling", + widget, "inline-spelling"); + + e_binding_new ( + shell_settings, "composer-magic-links", + widget, "magic-links"); + + e_binding_new ( + shell_settings, "composer-magic-smileys", + widget, "magic-smileys"); +} + +static void +mail_config_web_view_constructed (GObject *object) +{ + EExtension *extension; + EExtensible *extensible; + + extension = E_EXTENSION (object); + extensible = e_extension_get_extensible (extension); + + /* Wait to bind shell settings until the EWebView is realized + * so GtkhtmlEditor has a chance to install a GtkHTMLEditorAPI. + * Otherwise our settings will have no effect. */ + + g_signal_connect ( + extensible, "realize", + G_CALLBACK (mail_config_web_view_realize), NULL); +} + +static void +mail_config_web_view_class_init (EExtensionClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->constructed = mail_config_web_view_constructed; + + class->extensible_type = E_TYPE_WEB_VIEW; +} + +void +e_mail_config_web_view_register_type (GTypeModule *type_module) +{ + static const GTypeInfo type_info = { + sizeof (EExtensionClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) mail_config_web_view_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EExtension), + 0, /* n_preallocs */ + (GInstanceInitFunc) NULL, + NULL /* value_table */ + }; + + g_type_module_register_type ( + type_module, E_TYPE_EXTENSION, + "EMailConfigWebView", &type_info, 0); +} diff --git a/modules/mail/e-mail-config-web-view.h b/modules/mail/e-mail-config-web-view.h new file mode 100644 index 0000000000..c2a8758709 --- /dev/null +++ b/modules/mail/e-mail-config-web-view.h @@ -0,0 +1,30 @@ +/* + * e-mail-config-web-view.h + * + * 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/> + * + */ + +#ifndef E_MAIL_CONFIG_WEB_VIEW_H +#define E_MAIL_CONFIG_WEB_VIEW_H + +#include <glib-object.h> + +G_BEGIN_DECLS + +void e_mail_config_web_view_register_type (GTypeModule *type_module); + +G_END_DECLS + +#endif /* E_MAIL_CONFIG_WEB_VIEW_H */ diff --git a/modules/mail/e-mail-shell-backend.c b/modules/mail/e-mail-shell-backend.c index de8d4f42d9..b3eb0a97c1 100644 --- a/modules/mail/e-mail-shell-backend.c +++ b/modules/mail/e-mail-shell-backend.c @@ -408,32 +408,28 @@ mail_shell_backend_window_created_cb (EShell *shell, GtkWindow *window, EShellBackend *shell_backend) { - EShellSettings *shell_settings; static gboolean first_time = TRUE; const gchar *backend_name; - shell_settings = e_shell_get_shell_settings (shell); - /* This applies to both the composer and signature editor. */ if (GTKHTML_IS_EDITOR (window)) { + EShellSettings *shell_settings; GList *spell_languages; - - e_binding_new ( - shell_settings, "composer-inline-spelling", - window, "inline-spelling"); - - e_binding_new ( - shell_settings, "composer-magic-links", - window, "magic-links"); - - e_binding_new ( - shell_settings, "composer-magic-smileys", - window, "magic-smileys"); + gboolean active = TRUE; spell_languages = e_load_spell_languages (); gtkhtml_editor_set_spell_languages ( GTKHTML_EDITOR (window), spell_languages); g_list_free (spell_languages); + + shell_settings = e_shell_get_shell_settings (shell); + + /* Express mode does not honor this setting. */ + if (!e_shell_get_express_mode (shell)) + active = e_shell_settings_get_boolean ( + shell_settings, "composer-format-html"); + + gtkhtml_editor_set_html_mode (GTKHTML_EDITOR (window), active); } if (E_IS_MSG_COMPOSER (window)) { diff --git a/modules/mail/e-mail-shell-content.c b/modules/mail/e-mail-shell-content.c index 846c1ee854..aa2718dcec 100644 --- a/modules/mail/e-mail-shell-content.c +++ b/modules/mail/e-mail-shell-content.c @@ -621,7 +621,7 @@ mail_shell_content_set_folder (EMailReader *reader, key = STATE_KEY_GROUP_BY_THREADS; value = g_key_file_get_boolean (key_file, group_name, key, &error); if (error != NULL) { - value = FALSE; + value = TRUE; g_clear_error (&error); } @@ -881,6 +881,7 @@ e_mail_shell_content_set_preview_visible (EMailShellContent *mail_shell_content, EShellSearchbar * e_mail_shell_content_get_searchbar (EMailShellContent *mail_shell_content) { + EShellView *shell_view; EShellContent *shell_content; GtkWidget *widget; @@ -888,7 +889,8 @@ e_mail_shell_content_get_searchbar (EMailShellContent *mail_shell_content) E_IS_MAIL_SHELL_CONTENT (mail_shell_content), NULL); shell_content = E_SHELL_CONTENT (mail_shell_content); - widget = e_shell_content_get_searchbar (shell_content); + shell_view = e_shell_content_get_shell_view (shell_content); + widget = e_shell_view_get_searchbar (shell_view); return E_SHELL_SEARCHBAR (widget); } diff --git a/modules/mail/e-mail-shell-view-actions.c b/modules/mail/e-mail-shell-view-actions.c index e92800c660..f534c2a276 100644 --- a/modules/mail/e-mail-shell-view-actions.c +++ b/modules/mail/e-mail-shell-view-actions.c @@ -1223,7 +1223,7 @@ static GtkRadioActionEntry mail_filter_entries[] = { MAIL_FILTER_LAST_5_DAYS_MESSAGES }, { "mail-filter-messages-not-junk", - "mail-mark-notjunk", + "mail-mark-not-junk", N_("Messages Not Junk"), NULL, NULL, /* XXX Add a tooltip! */ diff --git a/modules/mail/e-mail-shell-view-actions.h b/modules/mail/e-mail-shell-view-actions.h index eb11f46013..addd67452b 100644 --- a/modules/mail/e-mail-shell-view-actions.h +++ b/modules/mail/e-mail-shell-view-actions.h @@ -115,8 +115,8 @@ E_SHELL_WINDOW_ACTION ((window), "mail-mark-important") #define E_SHELL_WINDOW_ACTION_MAIL_MARK_JUNK(window) \ E_SHELL_WINDOW_ACTION ((window), "mail-mark-junk") -#define E_SHELL_WINDOW_ACTION_MAIL_MARK_NOTJUNK(window) \ - E_SHELL_WINDOW_ACTION ((window), "mail-mark-notjunk") +#define E_SHELL_WINDOW_ACTION_MAIL_MARK_NOT_JUNK(window) \ + E_SHELL_WINDOW_ACTION ((window), "mail-mark-not-junk") #define E_SHELL_WINDOW_ACTION_MAIL_MARK_READ(window) \ E_SHELL_WINDOW_ACTION ((window), "mail-mark-read") #define E_SHELL_WINDOW_ACTION_MAIL_MARK_UNIMPORTANT(window) \ diff --git a/modules/mail/em-composer-prefs.c b/modules/mail/em-composer-prefs.c index 574657806e..49f2fda5b6 100644 --- a/modules/mail/em-composer-prefs.c +++ b/modules/mail/em-composer-prefs.c @@ -36,6 +36,7 @@ #include "em-composer-prefs.h" #include "composer/e-msg-composer.h" +#include "shell/e-shell-utils.h" #include <camel/camel-iconv.h> @@ -398,10 +399,15 @@ em_composer_prefs_construct (EMComposerPrefs *prefs, /* General tab */ /* Default Behavior */ + + /* Express mode does not honor this setting. */ widget = e_builder_get_widget (prefs->builder, "chkSendHTML"); - e_mutual_binding_new ( - shell_settings, "composer-format-html", - widget, "active"); + if (e_shell_get_express_mode (shell)) + gtk_widget_hide (widget); + else + e_mutual_binding_new ( + shell_settings, "composer-format-html", + widget, "active"); widget = e_builder_get_widget (prefs->builder, "chkPromptEmptySubject"); e_mutual_binding_new ( @@ -517,9 +523,11 @@ em_composer_prefs_construct (EMComposerPrefs *prefs, widget, "editor-created", G_CALLBACK (e_shell_watch_window), shell); - e_binding_new ( - shell_settings, "composer-format-html", - widget, "prefer-html"); + /* Express mode does not honor this setting. */ + if (!e_shell_get_express_mode (shell)) + e_binding_new ( + shell_settings, "composer-format-html", + widget, "prefer-html"); #ifndef G_OS_WIN32 e_binding_new_with_negation ( @@ -545,6 +553,14 @@ em_composer_prefs_construct (EMComposerPrefs *prefs, signature_tree_view, "selected", widget, "signature"); + /* Sanitize the dialog for Express mode */ + e_shell_hide_widgets_for_express_mode (shell, prefs->builder, + "chkOutlookFilenames", + "vboxTopPosting", + "labelAlerts", + "chkPromptEmptySubject", + NULL); + /* get our toplevel widget */ target = em_config_target_new_prefs (ec, client); e_config_set_target ((EConfig *)ec, (EConfigTarget *)target); diff --git a/modules/mail/em-mailer-prefs.c b/modules/mail/em-mailer-prefs.c index 89a7f0acc9..a885c72744 100644 --- a/modules/mail/em-mailer-prefs.c +++ b/modules/mail/em-mailer-prefs.c @@ -43,6 +43,7 @@ #include "e-util/e-datetime-format.h" #include "e-util/e-util-private.h" #include "widgets/misc/e-charset-combo-box.h" +#include "shell/e-shell-utils.h" #include "e-mail-label-manager.h" #include "e-mail-reader-utils.h" @@ -1207,6 +1208,15 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs, g_signal_connect (G_OBJECT (prefs->junk_header_add), "clicked", G_CALLBACK (jh_add_cb), prefs); g_signal_connect (G_OBJECT (prefs->junk_header_remove), "clicked", G_CALLBACK (jh_remove_cb), prefs); + /* Sanitize the dialog for Express mode */ + e_shell_hide_widgets_for_express_mode (shell, prefs->builder, + "hboxReadTimeout", + "hboxMailSizeLimit", + "hboxShrinkAddresses", + "magic_spacebar_checkbox", + "hboxEnableSearchFolders", + NULL); + /* get our toplevel widget */ target = em_config_target_new_prefs(ec, prefs->gconf); e_config_set_target((EConfig *)ec, (EConfigTarget *)target); diff --git a/modules/mail/evolution-module-mail.c b/modules/mail/evolution-module-mail.c index 1bb58c7742..9e9744569b 100644 --- a/modules/mail/evolution-module-mail.c +++ b/modules/mail/evolution-module-mail.c @@ -30,6 +30,9 @@ #include "e-mail-shell-sidebar.h" #include "e-mail-shell-view.h" +#include "e-mail-config-format-html.h" +#include "e-mail-config-web-view.h" + /* Module Entry Points */ void e_module_load (GTypeModule *type_module); void e_module_unload (GTypeModule *type_module); @@ -50,6 +53,9 @@ e_module_load (GTypeModule *type_module) e_mail_shell_content_register_type (type_module); e_mail_shell_sidebar_register_type (type_module); e_mail_shell_view_register_type (type_module); + + e_mail_config_format_html_register_type (type_module); + e_mail_config_web_view_register_type (type_module); } G_MODULE_EXPORT void diff --git a/modules/network-manager/Makefile.am b/modules/network-manager/Makefile.am index f7a01a6c31..90579dae38 100644 --- a/modules/network-manager/Makefile.am +++ b/modules/network-manager/Makefile.am @@ -12,8 +12,8 @@ libevolution_module_network_manager_la_SOURCES = \ evolution-network-manager.c libevolution_module_network_manager_la_LIBADD = \ - $(top_builddir)/shell/libeshell.la \ $(top_builddir)/e-util/libeutil.la \ + $(top_builddir)/shell/libeshell.la \ $(GNOME_PLATFORM_LIBS) \ $(DBUS_GLIB_LIBS) diff --git a/plugins/bbdb/gaimbuddies.c b/plugins/bbdb/gaimbuddies.c index 184c071e39..66f77bcc99 100644 --- a/plugins/bbdb/gaimbuddies.c +++ b/plugins/bbdb/gaimbuddies.c @@ -40,7 +40,6 @@ #include <string.h> #include <libebook/e-book.h> -#include <libedataserver/md5-utils.h> #include <libedataserverui/e-source-combo-box.h> #include <sys/time.h> @@ -75,15 +74,29 @@ get_buddy_filename (void) static gchar * get_md5_as_string (const gchar *filename) { - guchar d[16]; + GMappedFile *mapped_file; + const gchar *contents; + gchar *digest; + gsize length; + GError *error = NULL; g_return_val_if_fail (filename != NULL, NULL); - md5_get_digest_from_file (filename, d); + mapped_file = g_mapped_file_new (filename, FALSE, &error); + if (mapped_file == NULL) { + g_warning ("%s", error->message); + return NULL; + } + + contents = g_mapped_file_get_contents (mapped_file); + length = g_mapped_file_get_length (mapped_file); + + digest = g_compute_checksum_for_data ( + G_CHECKSUM_MD5, (guchar *) contents, length); + + g_mapped_file_unref (mapped_file); - return g_strdup_printf ("%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x%x", - d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], - d[8], d[9], d[10], d[11], d[12], d[13], d[14], d[15]); + return digest; } void diff --git a/plugins/bogo-junk-plugin/bf-junk-filter.c b/plugins/bogo-junk-plugin/bf-junk-filter.c index 6d315da575..4190eebe86 100644 --- a/plugins/bogo-junk-plugin/bf-junk-filter.c +++ b/plugins/bogo-junk-plugin/bf-junk-filter.c @@ -51,6 +51,7 @@ #include <camel/camel-stream-fs.h> #include <camel/camel-debug.h> #include <gconf/gconf-client.h> +#include "shell/e-shell.h" #ifndef BOGOFILTER_BINARY #define BOGOFILTER_BINARY "/usr/bin/bogofilter" @@ -388,6 +389,7 @@ convert_unicode_cb (GtkWidget *widget, gpointer data) GtkWidget * org_gnome_bogo_convert_unicode (struct _EPlugin *epl, struct _EConfigHookItemFactoryData *data) { + EShell *shell; GtkWidget *check; guint i = ((GtkTable *)data->parent)->nrows; @@ -399,7 +401,13 @@ org_gnome_bogo_convert_unicode (struct _EPlugin *epl, struct _EConfigHookItemFac gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), em_junk_bf_unicode); g_signal_connect (GTK_TOGGLE_BUTTON (check), "toggled", G_CALLBACK (convert_unicode_cb), (gpointer) "/apps/evolution/mail/junk/bogofilter/unicode"); gtk_table_attach((GtkTable *)data->parent, check, 0, 1, i, i+1, 0, 0, 0, 0); - gtk_widget_show (check); - return (GtkWidget *)check; + + shell = e_shell_get_default (); + if (e_shell_get_express_mode (shell)) + gtk_widget_hide (check); + else + gtk_widget_show (check); + + return check; } diff --git a/plugins/groupwise-features/share-folder-common.c b/plugins/groupwise-features/share-folder-common.c index 14e3b0e5bd..992664f863 100644 --- a/plugins/groupwise-features/share-folder-common.c +++ b/plugins/groupwise-features/share-folder-common.c @@ -138,7 +138,7 @@ struct _EMCreateFolder { static gchar * create_folder_desc (struct _EMCreateFolder *m) { - return g_strdup_printf (_("Creating folder `%s'"), m->full_name); + return g_strdup_printf (_("Creating folder '%s'"), m->full_name); } static void diff --git a/plugins/profiler/profiler.c b/plugins/profiler/profiler.c index b57ba83817..e3ecd07a9e 100644 --- a/plugins/profiler/profiler.c +++ b/plugins/profiler/profiler.c @@ -45,7 +45,7 @@ org_gnome_evolution_profiler_event(EPlugin *ep, EProfileEventTarget *t) name = g_strdup_printf("eprofile.%ld", (glong) getpid()); fp = fopen(name, "w"); if (fp) - fprintf(stderr, "Generating profiling data in `%s'\n", name); + fprintf(stderr, "Generating profiling data in '%s'\n", name); g_free(name); } diff --git a/plugins/pst-import/pst-importer.c b/plugins/pst-import/pst-importer.c index 7d2868042a..fa0b61e993 100644 --- a/plugins/pst-import/pst-importer.c +++ b/plugins/pst-import/pst-importer.c @@ -453,7 +453,7 @@ pst_import_file (PstImporter *m) filename = g_filename_from_uri (((EImportTargetURI *)m->target)->uri_src, NULL, NULL); m->parent_uri = g_strdup (((EImportTargetURI *)m->target)->uri_dest); /* Destination folder, was set in our widget */ - camel_operation_start (NULL, _("Importing `%s'"), filename); + camel_operation_start (NULL, _("Importing '%s'"), filename); if (GPOINTER_TO_INT (g_datalist_get_data (&m->target->data, "pst-do-mail"))) { mail_tool_uri_to_folder (m->parent_uri, CAMEL_STORE_FOLDER_CREATE, &m->base.ex); @@ -559,7 +559,7 @@ pst_process_item (PstImporter *m, pst_desc_tree *d_ptr) if (item->folder != NULL) { pst_process_folder (m, item); - camel_operation_start (NULL, _("Importing `%s'"), item->file_as.str); + camel_operation_start (NULL, _("Importing '%s'"), item->file_as.str); } else { if (m->folder_count && (m->current_item < m->folder_count)) { camel_operation_progress (NULL, (m->current_item * 100) / m->folder_count); diff --git a/plugins/sa-junk-plugin/em-junk-filter.c b/plugins/sa-junk-plugin/em-junk-filter.c index c0b59891a1..c8c53c6169 100644 --- a/plugins/sa-junk-plugin/em-junk-filter.c +++ b/plugins/sa-junk-plugin/em-junk-filter.c @@ -47,6 +47,7 @@ #include <gtk/gtk.h> #include "mail/em-config.h" +#include "shell/e-shell.h" #include <gconf/gconf-client.h> @@ -926,6 +927,7 @@ use_remote_tests_cb (GtkWidget *widget, gpointer data) GtkWidget * org_gnome_sa_use_remote_tests (struct _EPlugin *epl, struct _EConfigHookItemFactoryData *data) { + EShell *shell; GtkWidget *check, *vbox, *label; gchar *text = g_strdup_printf (" <small>%s</small>", _("This will make SpamAssassin more reliable, but slower")); guint i = ((GtkTable *)data->parent)->nrows; @@ -944,7 +946,13 @@ org_gnome_sa_use_remote_tests (struct _EPlugin *epl, struct _EConfigHookItemFact gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), !em_junk_sa_local_only); g_signal_connect (GTK_TOGGLE_BUTTON (check), "toggled", G_CALLBACK (use_remote_tests_cb), (gpointer) "/apps/evolution/mail/junk/sa/local_only"); gtk_table_attach((GtkTable *)data->parent, vbox, 0, 1, i, i+1, 0, 0, 0, 0); - gtk_widget_show_all (vbox); - return (GtkWidget *)vbox; + + shell = e_shell_get_default (); + if (e_shell_get_express_mode (shell)) + gtk_widget_hide (vbox); + else + gtk_widget_show_all (vbox); + + return vbox; } diff --git a/plugins/startup-wizard/startup-wizard.c b/plugins/startup-wizard/startup-wizard.c index a38b2d9e9a..97d2297480 100644 --- a/plugins/startup-wizard/startup-wizard.c +++ b/plugins/startup-wizard/startup-wizard.c @@ -66,7 +66,15 @@ startup_wizard (EPlugin *ep, ESEventTargetUpgrade *target) GSList *accounts; EConfig *config; EMAccountEditor *emae; + char *req_view; + req_view = e_shell_get_startup_view(e_shell_get_default()); + + if (req_view && strcmp (req_view, "mail") && e_shell_get_express_mode(e_shell_get_default())) { + return; + } + + client = gconf_client_get_default (); accounts = gconf_client_get_list (client, "/apps/evolution/mail/accounts", GCONF_VALUE_STRING, NULL); g_object_unref (client); diff --git a/shell/Makefile.am b/shell/Makefile.am index 7b742debae..1241dd41d3 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -58,6 +58,8 @@ libeshell_la_SOURCES = \ e-shell.c \ e-shell-backend.c \ e-shell-content.c \ + e-shell-meego.c \ + e-shell-meego.h \ e-shell-searchbar.c \ e-shell-settings.c \ e-shell-sidebar.c \ diff --git a/shell/e-shell-backend.c b/shell/e-shell-backend.c index 18ebe0f8d8..570e58db95 100644 --- a/shell/e-shell-backend.c +++ b/shell/e-shell-backend.c @@ -21,6 +21,12 @@ * Copyright (C) 2009 Intel Corporation */ +/** + * SECTION: e-shell-backend + * @short_description: dynamically loaded capabilities + * @include: shell/e-shell-backend.h + **/ + #include "e-shell-backend.h" #include <errno.h> @@ -37,8 +43,6 @@ struct _EShellBackendPrivate { - gpointer shell; /* weak pointer */ - /* We keep a reference to corresponding EShellView subclass * since it keeps a reference back to us. This ensures the * subclass is not finalized before we are, otherwise it @@ -52,63 +56,38 @@ struct _EShellBackendPrivate { }; enum { - PROP_0, - PROP_SHELL -}; - -enum { ACTIVITY_ADDED, LAST_SIGNAL }; -static gpointer parent_class; static guint signals[LAST_SIGNAL]; -static void -shell_backend_set_shell (EShellBackend *shell_backend, - EShell *shell) -{ - g_return_if_fail (shell_backend->priv->shell == NULL); +G_DEFINE_ABSTRACT_TYPE (EShellBackend, e_shell_backend, E_TYPE_EXTENSION) - shell_backend->priv->shell = shell; - - g_object_add_weak_pointer ( - G_OBJECT (shell_backend), - &shell_backend->priv->shell); -} - -static void -shell_backend_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) +static GObject * +shell_backend_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_properties) { - switch (property_id) { - case PROP_SHELL: - shell_backend_set_shell ( - E_SHELL_BACKEND (object), - g_value_get_object (value)); - return; - } + EShellBackendPrivate *priv; + EShellBackendClass *class; + EShellViewClass *shell_view_class; + GObject *object; - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); -} + /* Chain up to parent's construct() method. */ + object = G_OBJECT_CLASS (e_shell_backend_parent_class)->constructor ( + type, n_construct_properties, construct_properties); -static void -shell_backend_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - switch (property_id) { - case PROP_SHELL: - g_value_set_object ( - value, e_shell_backend_get_shell ( - E_SHELL_BACKEND (object))); - return; - } + class = E_SHELL_BACKEND_GET_CLASS (object); + priv = E_SHELL_BACKEND_GET_PRIVATE (object); + + /* Install a reference to ourselves in the + * corresponding EShellViewClass structure. */ + shell_view_class = g_type_class_ref (class->shell_view_type); + shell_view_class->shell_backend = g_object_ref (object); + priv->shell_view_class = shell_view_class; - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + return object; } static void @@ -118,19 +97,13 @@ shell_backend_dispose (GObject *object) priv = E_SHELL_BACKEND_GET_PRIVATE (object); - if (priv->shell != NULL) { - g_object_remove_weak_pointer ( - G_OBJECT (priv->shell), &priv->shell); - priv->shell = NULL; - } - if (priv->shell_view_class != NULL) { g_type_class_unref (priv->shell_view_class); priv->shell_view_class = NULL; } /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_shell_backend_parent_class)->dispose (object); } static void @@ -144,7 +117,7 @@ shell_backend_finalize (GObject *object) g_free (priv->data_dir); /* Chain up to parent's finalize() method. */ - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (e_shell_backend_parent_class)->finalize (object); } static const gchar * @@ -189,39 +162,25 @@ shell_backend_get_data_dir (EShellBackend *shell_backend) } static void -shell_backend_class_init (EShellBackendClass *class) +e_shell_backend_class_init (EShellBackendClass *class) { GObjectClass *object_class; + EExtensionClass *extension_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EShellBackendPrivate)); object_class = G_OBJECT_CLASS (class); - object_class->set_property = shell_backend_set_property; - object_class->get_property = shell_backend_get_property; + object_class->constructor = shell_backend_constructor; object_class->dispose = shell_backend_dispose; object_class->finalize = shell_backend_finalize; + extension_class = E_EXTENSION_CLASS (class); + extension_class->extensible_type = E_TYPE_SHELL; + class->get_config_dir = shell_backend_get_config_dir; class->get_data_dir = shell_backend_get_data_dir; /** - * EShellBackend:shell - * - * The #EShell singleton. - **/ - g_object_class_install_property ( - object_class, - PROP_SHELL, - g_param_spec_object ( - "shell", - _("Shell"), - _("The EShell singleton"), - E_TYPE_SHELL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT_ONLY)); - - /** * EShellBackend::activity-added * @shell_backend: the #EShellBackend that emitted the signal * @activity: an #EActivity @@ -239,44 +198,9 @@ shell_backend_class_init (EShellBackendClass *class) } static void -shell_backend_init (EShellBackend *shell_backend, - EShellBackendClass *class) +e_shell_backend_init (EShellBackend *shell_backend) { - EShellViewClass *shell_view_class; - shell_backend->priv = E_SHELL_BACKEND_GET_PRIVATE (shell_backend); - - /* Install a reference to ourselves in the corresponding - * EShellViewClass structure, */ - shell_view_class = g_type_class_ref (class->shell_view_type); - shell_view_class->shell_backend = g_object_ref (shell_backend); - shell_backend->priv->shell_view_class = shell_view_class; -} - -GType -e_shell_backend_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - const GTypeInfo type_info = { - sizeof (EShellBackendClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) shell_backend_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EShellBackend), - 0, /* n_preallocs */ - (GInstanceInitFunc) shell_backend_init, - NULL /* value_table */ - }; - - type = g_type_register_static ( - G_TYPE_OBJECT, "EShellBackend", &type_info, 0); - } - - return type; } /** @@ -358,9 +282,13 @@ e_shell_backend_get_data_dir (EShellBackend *shell_backend) EShell * e_shell_backend_get_shell (EShellBackend *shell_backend) { + EExtensible *extensible; + g_return_val_if_fail (E_IS_SHELL_BACKEND (shell_backend), NULL); - return E_SHELL (shell_backend->priv->shell); + extensible = e_extension_get_extensible (E_EXTENSION (shell_backend)); + + return E_SHELL (extensible); } /** diff --git a/shell/e-shell-backend.h b/shell/e-shell-backend.h index cda014e5a9..055a2a3322 100644 --- a/shell/e-shell-backend.h +++ b/shell/e-shell-backend.h @@ -19,17 +19,12 @@ * */ -/** - * SECTION: e-shell-backend - * @short_description: dynamically loaded capabilities - * @include: shell/e-shell-backend.h - **/ - #ifndef E_SHELL_BACKEND_H #define E_SHELL_BACKEND_H #include <shell/e-shell-common.h> #include <e-util/e-activity.h> +#include <e-util/e-extension.h> /* Standard GObject macros */ #define E_TYPE_SHELL_BACKEND \ @@ -66,7 +61,7 @@ typedef struct _EShellBackendPrivate EShellBackendPrivate; * functions below. **/ struct _EShellBackend { - GObject parent; + EExtension parent; EShellBackendPrivate *priv; }; @@ -100,7 +95,7 @@ struct _EShellBackend { * #EShellBackendClass contains a number of important settings for subclasses. **/ struct _EShellBackendClass { - GObjectClass parent_class; + EExtensionClass parent_class; GType shell_view_type; diff --git a/shell/e-shell-content.c b/shell/e-shell-content.c index e0102908de..5d5857cfc2 100644 --- a/shell/e-shell-content.c +++ b/shell/e-shell-content.c @@ -19,11 +19,18 @@ * */ +/** + * SECTION: e-shell-content + * @short_description: the right side of the main window + * @include: shell/e-shell-content.h + **/ + #include "e-shell-content.h" #include <glib/gi18n.h> #include "e-util/e-binding.h" +#include "e-util/e-extensible.h" #include "e-util/e-util.h" #include "e-util/e-alert-dialog.h" #include "filter/e-rule-editor.h" @@ -41,9 +48,9 @@ struct _EShellContentPrivate { - gpointer shell_view; /* weak pointer */ + gpointer shell_view; /* weak pointer */ - GtkWidget *searchbar; + GtkWidget *searchbar; /* not referenced */ /* Custom search rules. */ gchar *user_filename; @@ -54,7 +61,9 @@ enum { PROP_SHELL_VIEW }; -static gpointer parent_class; +G_DEFINE_TYPE_WITH_CODE ( + EShellContent, e_shell_content, GTK_TYPE_BIN, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)); static void shell_content_dialog_rule_changed (GtkWidget *dialog, @@ -131,17 +140,15 @@ shell_content_dispose (GObject *object) } /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_shell_content_parent_class)->dispose (object); } static void shell_content_constructed (GObject *object) { - EShellContentClass *class; EShellContent *shell_content; EShellBackend *shell_backend; EShellView *shell_view; - GtkWidget *widget; const gchar *data_dir; shell_content = E_SHELL_CONTENT (object); @@ -156,37 +163,7 @@ shell_content_constructed (GObject *object) shell_content->priv->user_filename = g_build_filename (data_dir, "searches.xml", NULL); - class = E_SHELL_CONTENT_GET_CLASS (shell_content); - if (class->construct_searchbar != NULL) - widget = class->construct_searchbar (shell_content); - else - widget = NULL; - if (widget != NULL) { - gtk_widget_set_parent (widget, GTK_WIDGET (shell_content)); - shell_content->priv->searchbar = g_object_ref (widget); - gtk_widget_show (widget); - } -} - -static void -shell_content_destroy (GtkObject *gtk_object) -{ - EShellContentPrivate *priv; - - priv = E_SHELL_CONTENT_GET_PRIVATE (gtk_object); - - /* Unparent the widget before destroying it to avoid - * writing a custom GtkContainer::remove() method. */ - - if (priv->searchbar != NULL) { - gtk_widget_unparent (priv->searchbar); - gtk_widget_destroy (priv->searchbar); - g_object_unref (priv->searchbar); - priv->searchbar = NULL; - } - - /* Chain up to parent's destroy() method. */ - GTK_OBJECT_CLASS (parent_class)->destroy (gtk_object); + e_extensible_load_extensions (E_EXTENSIBLE (object)); } static void @@ -251,6 +228,26 @@ shell_content_size_allocate (GtkWidget *widget, } static void +shell_content_remove (GtkContainer *container, + GtkWidget *widget) +{ + GtkContainerClass *container_class; + EShellContentPrivate *priv; + + priv = E_SHELL_CONTENT_GET_PRIVATE (container); + + if (widget == priv->searchbar) { + gtk_widget_unparent (priv->searchbar); + priv->searchbar = NULL; + return; + } + + /* Chain up to parent's remove() method. */ + container_class = GTK_CONTAINER_CLASS (e_shell_content_parent_class); + container_class->remove (container, widget); +} + +static void shell_content_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, @@ -265,51 +262,17 @@ shell_content_forall (GtkContainer *container, callback (priv->searchbar, callback_data); /* Chain up to parent's forall() method. */ - GTK_CONTAINER_CLASS (parent_class)->forall ( + GTK_CONTAINER_CLASS (e_shell_content_parent_class)->forall ( container, include_internals, callback, callback_data); } -static gchar * -shell_content_get_search_name (EShellContent *shell_content) -{ - EShellSearchbar *searchbar; - EShellView *shell_view; - EFilterRule *rule; - const gchar *search_text; - - shell_view = e_shell_content_get_shell_view (shell_content); - - rule = e_shell_view_get_search_rule (shell_view); - g_return_val_if_fail (E_IS_FILTER_RULE (rule), NULL); - - searchbar = E_SHELL_SEARCHBAR (shell_content->priv->searchbar); - search_text = e_shell_searchbar_get_search_text (searchbar); - - if (search_text == NULL || *search_text == '\0') - search_text = "''"; - - return g_strdup_printf ("%s %s", rule->name, search_text); -} - -static GtkWidget * -shell_content_construct_searchbar (EShellContent *shell_content) -{ - EShellView *shell_view; - - shell_view = e_shell_content_get_shell_view (shell_content); - - return e_shell_searchbar_new (shell_view); -} - static void -shell_content_class_init (EShellContentClass *class) +e_shell_content_class_init (EShellContentClass *class) { GObjectClass *object_class; - GtkObjectClass *gtk_object_class; GtkWidgetClass *widget_class; GtkContainerClass *container_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EShellContentPrivate)); object_class = G_OBJECT_CLASS (class); @@ -318,19 +281,14 @@ shell_content_class_init (EShellContentClass *class) object_class->dispose = shell_content_dispose; object_class->constructed = shell_content_constructed; - gtk_object_class = GTK_OBJECT_CLASS (class); - gtk_object_class->destroy = shell_content_destroy; - widget_class = GTK_WIDGET_CLASS (class); widget_class->size_request = shell_content_size_request; widget_class->size_allocate = shell_content_size_allocate; container_class = GTK_CONTAINER_CLASS (class); + container_class->remove = shell_content_remove; container_class->forall = shell_content_forall; - class->get_search_name = shell_content_get_search_name; - class->construct_searchbar = shell_content_construct_searchbar; - /** * EShellContent:shell-view * @@ -349,39 +307,13 @@ shell_content_class_init (EShellContentClass *class) } static void -shell_content_init (EShellContent *shell_content) +e_shell_content_init (EShellContent *shell_content) { shell_content->priv = E_SHELL_CONTENT_GET_PRIVATE (shell_content); GTK_WIDGET_SET_FLAGS (shell_content, GTK_NO_WINDOW); } -GType -e_shell_content_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - static const GTypeInfo type_info = { - sizeof (EShellContentClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) shell_content_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EShellContent), - 0, /* n_preallocs */ - (GInstanceInitFunc) shell_content_init, - NULL /* value_table */ - }; - - type = g_type_register_static ( - GTK_TYPE_BIN, "EShellContent", &type_info, 0); - } - - return type; -} - /** * e_shell_content_new: * @shell_view: an #EShellView @@ -400,21 +332,34 @@ e_shell_content_new (EShellView *shell_view) } /** - * e_shell_content_get_searchbar: + * e_shell_content_set_searchbar: * @shell_content: an #EShellContent + * @searchbar: a #GtkWidget, or %NULL * - * Returns the search bar widget returned by the - * <structfield>construct_searchbar</structfield> method in - * #EShellContentClass. - * - * Returns: the search bar widget + * Packs @searchbar at the top of @shell_content. **/ -GtkWidget * -e_shell_content_get_searchbar (EShellContent *shell_content) +void +e_shell_content_set_searchbar (EShellContent *shell_content, + GtkWidget *searchbar) { - g_return_val_if_fail (E_IS_SHELL_CONTENT (shell_content), NULL); + g_return_if_fail (E_IS_SHELL_CONTENT (shell_content)); + + if (searchbar != NULL) { + g_return_if_fail (GTK_IS_WIDGET (searchbar)); + g_object_ref_sink (searchbar); + } - return shell_content->priv->searchbar; + if (shell_content->priv->searchbar != NULL) + gtk_container_remove ( + GTK_CONTAINER (shell_content), + shell_content->priv->searchbar); + + shell_content->priv->searchbar = searchbar; + + if (searchbar != NULL) + gtk_widget_set_parent (searchbar, GTK_WIDGET (shell_content)); + + gtk_widget_queue_resize (GTK_WIDGET (shell_content)); } /** @@ -459,29 +404,6 @@ e_shell_content_get_shell_view (EShellContent *shell_content) return E_SHELL_VIEW (shell_content->priv->shell_view); } -/** - * e_shell_content_get_search_name: - * @shell_content: an #EShellContent - * - * Returns a newly-allocated string containing a suitable name for the - * current search criteria. This is used as the suggested name in the - * Save Search dialog. Free the returned string with g_free(). - * - * Returns: a name for the current search criteria - **/ -gchar * -e_shell_content_get_search_name (EShellContent *shell_content) -{ - EShellContentClass *class; - - g_return_val_if_fail (E_IS_SHELL_CONTENT (shell_content), NULL); - - class = E_SHELL_CONTENT_GET_CLASS (shell_content); - g_return_val_if_fail (class->get_search_name != NULL, NULL); - - return class->get_search_name (shell_content); -} - void e_shell_content_run_advanced_search_dialog (EShellContent *shell_content) { @@ -607,7 +529,7 @@ e_shell_content_run_save_search_dialog (EShellContent *shell_content) g_return_if_fail (E_IS_FILTER_RULE (rule)); rule = e_filter_rule_clone (rule); - search_name = e_shell_content_get_search_name (shell_content); + search_name = e_shell_view_get_search_name (shell_view); e_filter_rule_set_name (rule, search_name); g_free (search_name); diff --git a/shell/e-shell-content.h b/shell/e-shell-content.h index 3c3332b17b..e6a11291a7 100644 --- a/shell/e-shell-content.h +++ b/shell/e-shell-content.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-content - * @short_description: the right side of the main window - * @include: shell/e-shell-content.h - **/ - #ifndef E_SHELL_CONTENT_H #define E_SHELL_CONTENT_H @@ -74,22 +68,18 @@ struct _EShellContentClass { /* Methods */ guint32 (*check_state) (EShellContent *shell_content); - gchar * (*get_search_name) (EShellContent *shell_content); - - /* This is a protected method. Not for public use. */ - GtkWidget * (*construct_searchbar) (EShellContent *shell_content); }; GType e_shell_content_get_type (void); GtkWidget * e_shell_content_new (struct _EShellView *shell_view); -GtkWidget * e_shell_content_get_searchbar (EShellContent *shell_content); +void e_shell_content_set_searchbar (EShellContent *shell_content, + GtkWidget *searchbar); guint32 e_shell_content_check_state (EShellContent *shell_content); struct _EShellView * e_shell_content_get_shell_view (EShellContent *shell_content); const gchar * e_shell_content_get_view_id (EShellContent *shell_content); void e_shell_content_set_view_id (EShellContent *shell_content, const gchar *view_id); -gchar * e_shell_content_get_search_name (EShellContent *shell_content); void e_shell_content_run_advanced_search_dialog (EShellContent *shell_content); void e_shell_content_run_edit_searches_dialog diff --git a/shell/e-shell-meego.c b/shell/e-shell-meego.c new file mode 100644 index 0000000000..3e1bb8a393 --- /dev/null +++ b/shell/e-shell-meego.c @@ -0,0 +1,157 @@ +/* + * e-shell-meego.c + * + * 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/> + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * + * Inspired by mx's mx-application.c by + * Thomas Wood <thomas.wood@intel.com>, + * Chris Lord <chris@linux.intel.com> + */ + +#include <glib.h> +#include <e-shell-meego.h> + +#ifndef G_OS_WIN32 +#include <gdk/gdkx.h> +#include <X11/Xatom.h> +#endif + +#ifdef G_OS_WIN32 +void e_shell_detect_meego (gboolean *is_meego, gboolean *small_screen) +{ + *is_meego = *small_screen = FALSE; +} +#else +void e_shell_detect_meego (gboolean *is_meego, gboolean *small_screen) +{ + Window *wm_window_v = NULL; + unsigned char *moblin_string = NULL; + GModule *module = NULL; + /* + * Wow - this is unpleasant, but it is hard to link directly + * to the X libraries, and we have to use XGetWindowProperty + * to get to the (mind-mashed) 'supporting' window. + */ + struct { + int (*XFree) (void *); + int (*XGetWindowProperty) (Display*, XID, Atom, long, long, Bool, + Atom, Atom *, int *, unsigned long*, + unsigned long*, unsigned char**); + } fns = { 0, 0 }; + + *is_meego = *small_screen = FALSE; + + moblin_string = (unsigned char *)g_getenv ("EVO_MEEGO"); + if (!moblin_string) { + GdkScreen *screen; + GdkDisplay *display; + GdkAtom wm_win, mob_atom; + Atom dummy_t; + unsigned long dummy_l; + int dummy_i; + + if (!gdk_display_get_default ()) + return; + + wm_win = gdk_atom_intern ("_NET_SUPPORTING_WM_CHECK", TRUE); + mob_atom = gdk_atom_intern ("_MOBLIN", TRUE); + if (!wm_win || !mob_atom) + return; + + module = g_module_open (NULL, 0); + if (!module) + return; + g_module_symbol (module, "XFree", (gpointer) &fns.XFree); + g_module_symbol (module, "XGetWindowProperty", + (gpointer) &fns.XGetWindowProperty); + if (!fns.XFree || !fns.XGetWindowProperty) { + fprintf (stderr, "defective X server\n"); + goto exit; + } + + display = gdk_display_get_default (); + screen = gdk_display_get_default_screen (gdk_display_get_default()); + + gdk_error_trap_push (); + + /* get the window manager's supporting window */ + fns.XGetWindowProperty (gdk_x11_display_get_xdisplay (display), + GDK_WINDOW_XID (gdk_screen_get_root_window (screen)), + gdk_x11_atom_to_xatom_for_display (display, wm_win), + 0, 1, False, XA_WINDOW, &dummy_t, &dummy_i, + &dummy_l, &dummy_l, (unsigned char **)(&wm_window_v)); + + /* get the '_Moblin' setting */ + if (wm_window_v && (*wm_window_v != None)) + fns.XGetWindowProperty (gdk_x11_display_get_xdisplay (display), *wm_window_v, + gdk_x11_atom_to_xatom_for_display (display, mob_atom), + 0, 8192, False, XA_STRING, + &dummy_t, &dummy_i, &dummy_l, &dummy_l, + &moblin_string); + + gdk_error_trap_pop (); + } + + if (moblin_string) { + int i; + char **props; + + g_warning ("prop '%s'", moblin_string); + + /* use meego theming tweaks */ + *is_meego = TRUE; + + props = g_strsplit ((gchar *)moblin_string, ":", -1); + for (i = 0; props && props[i]; i++) { + char **pair = g_strsplit (props[i], "=", 2); + + g_warning ("pair '%s'='%s'", pair ? pair[0] : "<null>", + pair && pair[0] ? pair[1] : "<null>"); + + /* Hunt for session-type=small-screen */ + if (pair && pair[0] && !g_ascii_strcasecmp (pair[0], "session-type")) + *small_screen = !g_ascii_strcasecmp (pair[1], "small-screen"); + g_strfreev (pair); + } + g_strfreev (props); + if (fns.XFree) + fns.XFree (moblin_string); + } + + exit: + if (wm_window_v) + fns.XFree (wm_window_v); + if (module) + g_module_close (module); +} +#endif + +#ifdef TEST_APP +/* gcc -g -O0 -Wall -I. -DTEST_APP `pkg-config --cflags --libs gtk+-2.0` e-shell-meego.c && ./a.out */ +#include <gtk/gtk.h> + +int main (int argc, char **argv) +{ + gboolean is_meego, small_screen; + + gtk_init (&argc, &argv); + + e_shell_detect_meego (&is_meego, &small_screen); + fprintf (stderr, "Meego ? %d small ? %d\n", is_meego, small_screen); + + return 0; +} +#endif diff --git a/shell/e-shell-meego.h b/shell/e-shell-meego.h new file mode 100644 index 0000000000..54a7d528b4 --- /dev/null +++ b/shell/e-shell-meego.h @@ -0,0 +1,24 @@ +/* + * e-shell-meego.h + * + * 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/> + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + */ +#ifndef E_SHELL_MEEGO_H +#define E_SHELL_MEEGO_H + +extern void e_shell_detect_meego (gboolean *is_meego, gboolean *small_screen); + +#endif /* E_SHELL_MEEGO_H */ diff --git a/shell/e-shell-searchbar.c b/shell/e-shell-searchbar.c index 272ba0e906..940bd9fd6b 100644 --- a/shell/e-shell-searchbar.c +++ b/shell/e-shell-searchbar.c @@ -19,6 +19,12 @@ * */ +/** + * SECTION: e-shell-searchbar + * @short_description: quick search interface + * @include: shell/e-shell-searchbar.h + **/ + #include "e-shell-searchbar.h" #include <config.h> @@ -26,6 +32,7 @@ #include "e-util/e-util.h" #include "e-util/e-binding.h" +#include "e-util/e-extensible.h" #include "widgets/misc/e-action-combo-box.h" #include "widgets/misc/e-hinted-entry.h" @@ -60,8 +67,9 @@ struct _EShellSearchbarPrivate { /* State Key File */ gchar *state_group; + guint express_mode : 1; guint filter_visible : 1; - guint label_visible : 1; + guint labels_visible : 1; guint search_visible : 1; guint scope_visible : 1; guint state_dirty : 1; @@ -69,9 +77,10 @@ struct _EShellSearchbarPrivate { enum { PROP_0, + PROP_EXPRESS_MODE, PROP_FILTER_COMBO_BOX, PROP_FILTER_VISIBLE, - PROP_LABEL_VISIBLE, + PROP_LABELS_VISIBLE, PROP_SEARCH_HINT, PROP_SEARCH_OPTION, PROP_SEARCH_TEXT, @@ -82,7 +91,9 @@ enum { PROP_STATE_GROUP }; -static gpointer parent_class; +G_DEFINE_TYPE_WITH_CODE ( + EShellSearchbar, e_shell_searchbar, GTK_TYPE_BOX, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) static void shell_searchbar_save_search_filter (EShellSearchbar *searchbar) @@ -463,14 +474,20 @@ shell_searchbar_set_property (GObject *object, GParamSpec *pspec) { switch (property_id) { + case PROP_EXPRESS_MODE: + e_shell_searchbar_set_express_mode ( + E_SHELL_SEARCHBAR (object), + g_value_get_boolean (value)); + return; + case PROP_FILTER_VISIBLE: e_shell_searchbar_set_filter_visible ( E_SHELL_SEARCHBAR (object), g_value_get_boolean (value)); return; - case PROP_LABEL_VISIBLE: - e_shell_searchbar_set_label_visible ( + case PROP_LABELS_VISIBLE: + e_shell_searchbar_set_labels_visible ( E_SHELL_SEARCHBAR (object), g_value_get_boolean (value)); return; @@ -528,15 +545,21 @@ shell_searchbar_get_property (GObject *object, GParamSpec *pspec) { switch (property_id) { + case PROP_EXPRESS_MODE: + g_value_set_boolean ( + value, e_shell_searchbar_get_express_mode ( + E_SHELL_SEARCHBAR (object))); + return; + case PROP_FILTER_COMBO_BOX: g_value_set_object ( value, e_shell_searchbar_get_filter_combo_box ( E_SHELL_SEARCHBAR (object))); return; - case PROP_LABEL_VISIBLE: + case PROP_LABELS_VISIBLE: g_value_set_boolean ( - value, e_shell_searchbar_get_label_visible ( + value, e_shell_searchbar_get_labels_visible ( E_SHELL_SEARCHBAR (object))); return; @@ -620,7 +643,7 @@ shell_searchbar_dispose (GObject *object) } /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_shell_searchbar_parent_class)->dispose (object); } static void @@ -693,13 +716,15 @@ shell_searchbar_constructed (GObject *object) widget = GTK_WIDGET (searchbar); gtk_size_group_add_widget (size_group, widget); + + e_extensible_load_extensions (E_EXTENSIBLE (object)); } static void shell_searchbar_map (GtkWidget *widget) { /* Chain up to parent's map() method. */ - GTK_WIDGET_CLASS (parent_class)->map (widget); + GTK_WIDGET_CLASS (e_shell_searchbar_parent_class)->map (widget); /* Load state after constructed() so we don't derail * subclass initialization. We wait until map() so we @@ -708,12 +733,11 @@ shell_searchbar_map (GtkWidget *widget) } static void -shell_searchbar_class_init (EShellSearchbarClass *class) +e_shell_searchbar_class_init (EShellSearchbarClass *class) { GObjectClass *object_class; GtkWidgetClass *widget_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EShellSearchbarPrivate)); object_class = G_OBJECT_CLASS (class); @@ -727,6 +751,17 @@ shell_searchbar_class_init (EShellSearchbarClass *class) g_object_class_install_property ( object_class, + PROP_EXPRESS_MODE, + g_param_spec_boolean ( + "express-mode", + NULL, + NULL, + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); + + g_object_class_install_property ( + object_class, PROP_FILTER_COMBO_BOX, g_param_spec_object ( "filter-combo-box", @@ -737,9 +772,9 @@ shell_searchbar_class_init (EShellSearchbarClass *class) g_object_class_install_property ( object_class, - PROP_LABEL_VISIBLE, + PROP_LABELS_VISIBLE, g_param_spec_boolean ( - "label-visible", + "labels-visible", NULL, NULL, TRUE, @@ -853,7 +888,7 @@ shell_searchbar_class_init (EShellSearchbarClass *class) } static void -shell_searchbar_init (EShellSearchbar *searchbar) +e_shell_searchbar_init (EShellSearchbar *searchbar) { GtkBox *box; GtkLabel *label; @@ -884,6 +919,10 @@ shell_searchbar_init (EShellSearchbar *searchbar) gtk_box_pack_start (box, widget, FALSE, FALSE, 0); gtk_widget_show (widget); + e_binding_new ( + searchbar, "labels-visible", + widget, "visible"); + label = GTK_LABEL (widget); widget = e_action_combo_box_new (); @@ -911,11 +950,12 @@ shell_searchbar_init (EShellSearchbar *searchbar) gtk_box_pack_start (box, widget, FALSE, FALSE, 0); gtk_widget_show (widget); - label = GTK_LABEL (widget); e_binding_new ( - searchbar, "label-visible", + searchbar, "labels-visible", widget, "visible"); + label = GTK_LABEL (widget); + widget = e_hinted_entry_new (); gtk_label_set_mnemonic_widget (label, widget); gtk_box_pack_start (box, widget, TRUE, TRUE, 0); @@ -989,32 +1029,6 @@ shell_searchbar_init (EShellSearchbar *searchbar) G_CONNECT_AFTER | G_CONNECT_SWAPPED); } -GType -e_shell_searchbar_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - static const GTypeInfo type_info = { - sizeof (EShellSearchbarClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) shell_searchbar_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EShellSearchbar), - 0, /* n_preallocs */ - (GInstanceInitFunc) shell_searchbar_init, - NULL /* value_table */ - }; - - type = g_type_register_static ( - GTK_TYPE_BOX, "EShellSearchbar", &type_info, 0); - } - - return type; -} - /** * e_shell_searchbar_new: * @shell_view: an #EShellView @@ -1048,6 +1062,31 @@ e_shell_searchbar_get_shell_view (EShellSearchbar *searchbar) return E_SHELL_VIEW (searchbar->priv->shell_view); } +gboolean +e_shell_searchbar_get_express_mode (EShellSearchbar *searchbar) +{ + g_return_val_if_fail (E_IS_SHELL_SEARCHBAR (searchbar), FALSE); + + return searchbar->priv->express_mode; +} + +void +e_shell_searchbar_set_express_mode (EShellSearchbar *searchbar, + gboolean express_mode) +{ + g_return_if_fail (E_IS_SHELL_SEARCHBAR (searchbar)); + + searchbar->priv->express_mode = express_mode; + + /* Emit "notify" on all the properties we override. */ + g_object_freeze_notify (G_OBJECT (searchbar)); + g_object_notify (G_OBJECT (searchbar), "express-mode"); + g_object_notify (G_OBJECT (searchbar), "labels-visible"); + g_object_notify (G_OBJECT (searchbar), "filter-visible"); + g_object_notify (G_OBJECT (searchbar), "scope-visible"); + g_object_thaw_notify (G_OBJECT (searchbar)); +} + EActionComboBox * e_shell_searchbar_get_filter_combo_box (EShellSearchbar *searchbar) { @@ -1057,22 +1096,26 @@ e_shell_searchbar_get_filter_combo_box (EShellSearchbar *searchbar) } gboolean -e_shell_searchbar_get_label_visible (EShellSearchbar *searchbar) +e_shell_searchbar_get_labels_visible (EShellSearchbar *searchbar) { g_return_val_if_fail (E_IS_SHELL_SEARCHBAR (searchbar), FALSE); - return searchbar->priv->label_visible; + /* Express mode overrides this. */ + if (e_shell_searchbar_get_express_mode (searchbar)) + return FALSE; + + return searchbar->priv->labels_visible; } void -e_shell_searchbar_set_label_visible (EShellSearchbar *searchbar, - gboolean label_visible) +e_shell_searchbar_set_labels_visible (EShellSearchbar *searchbar, + gboolean labels_visible) { g_return_if_fail (E_IS_SHELL_SEARCHBAR (searchbar)); - searchbar->priv->label_visible = label_visible; + searchbar->priv->labels_visible = labels_visible; - g_object_notify (G_OBJECT (searchbar), "label-visible"); + g_object_notify (G_OBJECT (searchbar), "labels-visible"); } gboolean @@ -1080,6 +1123,10 @@ e_shell_searchbar_get_filter_visible (EShellSearchbar *searchbar) { g_return_val_if_fail (E_IS_SHELL_SEARCHBAR (searchbar), FALSE); + /* Express mode overrides this. */ + if (e_shell_searchbar_get_express_mode (searchbar)) + return FALSE; + return searchbar->priv->filter_visible; } @@ -1220,6 +1267,10 @@ e_shell_searchbar_get_scope_visible (EShellSearchbar *searchbar) { g_return_val_if_fail (E_IS_SHELL_SEARCHBAR (searchbar), FALSE); + /* Express mode overrides this. */ + if (e_shell_searchbar_get_express_mode (searchbar)) + return FALSE; + return searchbar->priv->scope_visible; } @@ -1273,6 +1324,7 @@ e_shell_searchbar_load_state (EShellSearchbar *searchbar) GKeyFile *key_file; GtkAction *action; GtkWidget *widget; + gboolean express_mode; const gchar *search_text; const gchar *state_group; const gchar *key; @@ -1288,6 +1340,8 @@ e_shell_searchbar_load_state (EShellSearchbar *searchbar) key_file = e_shell_view_get_state_key_file (shell_view); shell_window = e_shell_view_get_shell_window (shell_view); + express_mode = e_shell_searchbar_get_express_mode (searchbar); + /* Changing the combo boxes triggers searches, so block * the search action until the state is fully restored. */ action = E_SHELL_WINDOW_ACTION_SEARCH_QUICK (shell_window); @@ -1299,7 +1353,7 @@ e_shell_searchbar_load_state (EShellSearchbar *searchbar) key = STATE_KEY_SEARCH_FILTER; string = g_key_file_get_string (key_file, state_group, key, NULL); - if (string != NULL && *string != '\0') + if (string != NULL && *string != '\0' && !express_mode) action = e_shell_window_get_action (shell_window, string); else action = NULL; @@ -1344,7 +1398,7 @@ e_shell_searchbar_load_state (EShellSearchbar *searchbar) key = STATE_KEY_SEARCH_SCOPE; string = g_key_file_get_string (key_file, state_group, key, NULL); - if (string != NULL && *string != '\0') + if (string != NULL && *string != '\0' && !express_mode) action = e_shell_window_get_action (shell_window, string); else action = NULL; diff --git a/shell/e-shell-searchbar.h b/shell/e-shell-searchbar.h index 23fa480a86..84049e99e0 100644 --- a/shell/e-shell-searchbar.h +++ b/shell/e-shell-searchbar.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-searchbar - * @short_description: quick search interface - * @include: shell/e-shell-searchbar.h - **/ - #ifndef E_SHELL_SEARCHBAR_H #define E_SHELL_SEARCHBAR_H @@ -75,6 +69,11 @@ struct _EShellSearchbarClass { GType e_shell_searchbar_get_type (void); GtkWidget * e_shell_searchbar_new (EShellView *shell_view); EShellView * e_shell_searchbar_get_shell_view(EShellSearchbar *searchbar); +gboolean e_shell_searchbar_get_express_mode + (EShellSearchbar *searchbar); +void e_shell_searchbar_set_express_mode + (EShellSearchbar *searchbar, + gboolean express_mode); EActionComboBox * e_shell_searchbar_get_filter_combo_box (EShellSearchbar *searchbar); @@ -83,11 +82,11 @@ gboolean e_shell_searchbar_get_filter_visible void e_shell_searchbar_set_filter_visible (EShellSearchbar *searchbar, gboolean filter_visible); -gboolean e_shell_searchbar_get_label_visible +gboolean e_shell_searchbar_get_labels_visible (EShellSearchbar *searchbar); -void e_shell_searchbar_set_label_visible +void e_shell_searchbar_set_labels_visible (EShellSearchbar *searchbar, - gboolean label_visible); + gboolean labels_visible); const gchar * e_shell_searchbar_get_search_hint (EShellSearchbar *searchbar); void e_shell_searchbar_set_search_hint diff --git a/shell/e-shell-settings.c b/shell/e-shell-settings.c index 99e1822e68..7c5cac4e53 100644 --- a/shell/e-shell-settings.c +++ b/shell/e-shell-settings.c @@ -19,6 +19,12 @@ * */ +/** + * SECTION: e-shell-settings + * @short_description: settings management + * @include: shell/e-shell-settings.h + **/ + #include "e-shell-settings.h" #include "e-util/gconf-bridge.h" diff --git a/shell/e-shell-settings.h b/shell/e-shell-settings.h index c1ac497dec..15aaff2071 100644 --- a/shell/e-shell-settings.h +++ b/shell/e-shell-settings.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-settings - * @short_description: settings management - * @include: shell/e-shell-settings.h - **/ - #ifndef E_SHELL_SETTINGS_H #define E_SHELL_SETTINGS_H diff --git a/shell/e-shell-sidebar.c b/shell/e-shell-sidebar.c index 5701321f24..edb8ba5299 100644 --- a/shell/e-shell-sidebar.c +++ b/shell/e-shell-sidebar.c @@ -19,9 +19,16 @@ * */ +/** + * SECTION: e-shell-sidebar + * @short_description: the left side of the main window + * @include: shell/e-shell-sidebar.h + **/ + #include "e-shell-sidebar.h" #include <e-util/e-binding.h> +#include <e-util/e-extensible.h> #include <e-util/e-unicode.h> #include <shell/e-shell-view.h> @@ -48,7 +55,9 @@ enum { PROP_SHELL_VIEW }; -static gpointer parent_class; +G_DEFINE_TYPE_WITH_CODE ( + EShellSidebar, e_shell_sidebar, GTK_TYPE_BIN, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) static void shell_sidebar_set_shell_view (EShellSidebar *shell_sidebar, @@ -147,7 +156,7 @@ shell_sidebar_dispose (GObject *object) } /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_shell_sidebar_parent_class)->dispose (object); } static void @@ -162,7 +171,7 @@ shell_sidebar_finalize (GObject *object) g_free (priv->secondary_text); /* Chain up to parent's finalize() method. */ - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (e_shell_sidebar_parent_class)->finalize (object); } static void @@ -191,6 +200,8 @@ shell_sidebar_constructed (GObject *object) g_object_get (action, "label", &label, NULL); e_shell_sidebar_set_primary_text (shell_sidebar, label); g_free (label); + + e_extensible_load_extensions (E_EXTENSIBLE (object)); } static void @@ -211,7 +222,7 @@ shell_sidebar_destroy (GtkObject *gtk_object) } /* Chain up to parent's destroy() method. */ - GTK_OBJECT_CLASS (parent_class)->destroy (gtk_object); + GTK_OBJECT_CLASS (e_shell_sidebar_parent_class)->destroy (gtk_object); } static void @@ -282,19 +293,18 @@ shell_sidebar_forall (GtkContainer *container, callback (priv->event_box, callback_data); /* Chain up to parent's forall() method. */ - GTK_CONTAINER_CLASS (parent_class)->forall ( + GTK_CONTAINER_CLASS (e_shell_sidebar_parent_class)->forall ( container, include_internals, callback, callback_data); } static void -shell_sidebar_class_init (EShellSidebarClass *class) +e_shell_sidebar_class_init (EShellSidebarClass *class) { GObjectClass *object_class; GtkObjectClass *gtk_object_class; GtkWidgetClass *widget_class; GtkContainerClass *container_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EShellSidebarPrivate)); object_class = G_OBJECT_CLASS (class); @@ -378,7 +388,7 @@ shell_sidebar_class_init (EShellSidebarClass *class) } static void -shell_sidebar_init (EShellSidebar *shell_sidebar) +e_shell_sidebar_init (EShellSidebar *shell_sidebar) { GtkStyle *style; GtkWidget *widget; @@ -446,32 +456,6 @@ shell_sidebar_init (EShellSidebar *shell_sidebar) e_binding_new (shell_sidebar, "secondary-text", widget, "label"); } -GType -e_shell_sidebar_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - static const GTypeInfo type_info = { - sizeof (EShellSidebarClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) shell_sidebar_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EShellSidebar), - 0, /* n_preallocs */ - (GInstanceInitFunc) shell_sidebar_init, - NULL /* value_table */ - }; - - type = g_type_register_static ( - GTK_TYPE_BIN, "EShellSidebar", &type_info, 0); - } - - return type; -} - /** * e_shell_sidebar_new: * @shell_view: an #EShellView diff --git a/shell/e-shell-sidebar.h b/shell/e-shell-sidebar.h index 5999aa9de2..95f2e97dad 100644 --- a/shell/e-shell-sidebar.h +++ b/shell/e-shell-sidebar.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-sidebar - * @short_description: the left side of the main window - * @include: shell/e-shell-sidebar.h - **/ - #ifndef E_SHELL_SIDEBAR_H #define E_SHELL_SIDEBAR_H diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c index 7e82e556bc..c12423de99 100644 --- a/shell/e-shell-switcher.c +++ b/shell/e-shell-switcher.c @@ -19,9 +19,16 @@ * */ +/** + * SECTION: e-shell-switcher + * @short_description: buttons for switching views + * @include: shell/e-shell-switcher.h + **/ + #include "e-shell-switcher.h" #include <glib/gi18n.h> +#include <e-util/e-extensible.h> #define E_SHELL_SWITCHER_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ @@ -50,9 +57,17 @@ enum { LAST_SIGNAL }; -static gpointer parent_class; static guint signals[LAST_SIGNAL]; +/* Forward Declarations */ +static void shell_switcher_tool_shell_iface_init (GtkToolShellIface *iface); + +G_DEFINE_TYPE_WITH_CODE ( + EShellSwitcher, e_shell_switcher, GTK_TYPE_BIN, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL) + G_IMPLEMENT_INTERFACE (GTK_TYPE_TOOL_SHELL, + shell_switcher_tool_shell_iface_init)) + static gint shell_switcher_layout_actions (EShellSwitcher *switcher) { @@ -223,7 +238,7 @@ shell_switcher_dispose (GObject *object) } /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_shell_switcher_parent_class)->dispose (object); } static void @@ -346,7 +361,8 @@ shell_switcher_remove (GtkContainer *container, } /* Chain up to parent's remove() method. */ - GTK_CONTAINER_CLASS (parent_class)->remove (container, widget); + GTK_CONTAINER_CLASS (e_shell_switcher_parent_class)->remove ( + container, widget); } static void @@ -364,7 +380,7 @@ shell_switcher_forall (GtkContainer *container, priv->proxies, (GFunc) callback, callback_data); /* Chain up to parent's forall() method. */ - GTK_CONTAINER_CLASS (parent_class)->forall ( + GTK_CONTAINER_CLASS (e_shell_switcher_parent_class)->forall ( container, include_internals, callback, callback_data); } @@ -410,13 +426,12 @@ shell_switcher_get_relief_style (GtkToolShell *shell) } static void -shell_switcher_class_init (EShellSwitcherClass *class) +e_shell_switcher_class_init (EShellSwitcherClass *class) { GObjectClass *object_class; GtkWidgetClass *widget_class; GtkContainerClass *container_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EShellSwitcherPrivate)); object_class = G_OBJECT_CLASS (class); @@ -487,11 +502,13 @@ shell_switcher_class_init (EShellSwitcherClass *class) } static void -shell_switcher_init (EShellSwitcher *switcher) +e_shell_switcher_init (EShellSwitcher *switcher) { switcher->priv = E_SHELL_SWITCHER_GET_PRIVATE (switcher); GTK_WIDGET_SET_FLAGS (switcher, GTK_NO_WINDOW); + + e_extensible_load_extensions (E_EXTENSIBLE (switcher)); } static void @@ -503,41 +520,6 @@ shell_switcher_tool_shell_iface_init (GtkToolShellIface *iface) iface->get_relief_style = shell_switcher_get_relief_style; } -GType -e_shell_switcher_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - static const GTypeInfo type_info = { - sizeof (EShellSwitcherClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) shell_switcher_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EShellSwitcher), - 0, /* n_preallocs */ - (GInstanceInitFunc) shell_switcher_init, - NULL /* value_table */ - }; - - static const GInterfaceInfo tool_shell_info = { - (GInterfaceInitFunc) shell_switcher_tool_shell_iface_init, - (GInterfaceFinalizeFunc) NULL, - NULL /* interface_data */ - }; - - type = g_type_register_static ( - GTK_TYPE_BIN, "EShellSwitcher", &type_info, 0); - - g_type_add_interface_static ( - type, GTK_TYPE_TOOL_SHELL, &tool_shell_info); - } - - return type; -} - /** * e_shell_switcher_new: * diff --git a/shell/e-shell-switcher.h b/shell/e-shell-switcher.h index dd3eddf970..b18546d58f 100644 --- a/shell/e-shell-switcher.h +++ b/shell/e-shell-switcher.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-switcher - * @short_description: buttons for switching views - * @include: shell/e-shell-switcher.h - **/ - #ifndef E_SHELL_SWITCHER_H #define E_SHELL_SWITCHER_H diff --git a/shell/e-shell-taskbar.c b/shell/e-shell-taskbar.c index 7e8a34ac7c..bf8dfa7e2a 100644 --- a/shell/e-shell-taskbar.c +++ b/shell/e-shell-taskbar.c @@ -19,11 +19,18 @@ * */ +/** + * SECTION: e-shell-taskbar + * @short_description: the bottom of the main window + * @include: shell/e-shell-taskbar.h + **/ + #include "e-shell-taskbar.h" #include <e-shell-view.h> -#include <widgets/misc/e-activity-proxy.h> +#include <e-util/e-extensible.h> +#include <misc/e-activity-proxy.h> #define E_SHELL_TASKBAR_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ @@ -49,7 +56,9 @@ enum { PROP_SHELL_VIEW }; -static gpointer parent_class; +G_DEFINE_TYPE_WITH_CODE ( + EShellTaskbar, e_shell_taskbar, GTK_TYPE_HBOX, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) static void shell_taskbar_activity_remove (EShellTaskbar *shell_taskbar, @@ -204,7 +213,7 @@ shell_taskbar_dispose (GObject *object) object); /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_shell_taskbar_parent_class)->dispose (object); } static void @@ -217,7 +226,7 @@ shell_taskbar_finalize (GObject *object) g_hash_table_destroy (priv->proxy_table); /* Chain up to parent's finalize() method. */ - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (e_shell_taskbar_parent_class)->finalize (object); } static void @@ -239,16 +248,17 @@ shell_taskbar_constructed (GObject *object) shell_backend, "activity-added", G_CALLBACK (shell_taskbar_activity_add), shell_taskbar); - /* to not enlarge window width on new activities */ + /* Do not enlarge window width on new activities. */ gtk_widget_set_size_request (GTK_WIDGET (shell_taskbar), 0, -1); + + e_extensible_load_extensions (E_EXTENSIBLE (object)); } static void -shell_taskbar_class_init (EShellTaskbarClass *class) +e_shell_taskbar_class_init (EShellTaskbarClass *class) { GObjectClass *object_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EShellTaskbarPrivate)); object_class = G_OBJECT_CLASS (class); @@ -292,7 +302,7 @@ shell_taskbar_class_init (EShellTaskbarClass *class) } static void -shell_taskbar_init (EShellTaskbar *shell_taskbar) +e_shell_taskbar_init (EShellTaskbar *shell_taskbar) { GtkWidget *widget; GHashTable *proxy_table; @@ -328,32 +338,6 @@ shell_taskbar_init (EShellTaskbar *shell_taskbar) GTK_WIDGET (shell_taskbar), -1, (height * 2)); } -GType -e_shell_taskbar_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - static const GTypeInfo type_info = { - sizeof (EShellTaskbarClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) shell_taskbar_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EShellTaskbar), - 0, /* n_preallocs */ - (GInstanceInitFunc) shell_taskbar_init, - NULL /* value_table */ - }; - - type = g_type_register_static ( - GTK_TYPE_HBOX, "EShellTaskbar", &type_info, 0); - } - - return type; -} - /** * e_shell_taskbar_new: * @shell_view: an #EShellView diff --git a/shell/e-shell-taskbar.h b/shell/e-shell-taskbar.h index d2ebfbb0c4..e01ec40989 100644 --- a/shell/e-shell-taskbar.h +++ b/shell/e-shell-taskbar.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-taskbar - * @short_description: the bottom of the main window - * @include: shell/e-shell-taskbar.h - **/ - #ifndef E_SHELL_TASKBAR_H #define E_SHELL_TASKBAR_H diff --git a/shell/e-shell-utils.c b/shell/e-shell-utils.c index c7b296931c..2a9f6f4f72 100644 --- a/shell/e-shell-utils.c +++ b/shell/e-shell-utils.c @@ -19,6 +19,12 @@ * */ +/** + * SECTION: e-shell-utils + * @short_description: high-level utilities with shell integration + * @include: shell/e-shell-utils.h + **/ + #include "e-shell-utils.h" #include <glib/gi18n-lib.h> @@ -342,3 +348,57 @@ e_shell_utils_import_uris (EShell *shell, gchar **uris, gboolean preview) return g_strv_length (uris); } + +/** + * e_shell_hide_widgets_for_express_mode: + * @shell: an #EShell + * @builder: a #GtkBuilder + * @widget_name: NULL-terminated list of strings + * + * If Evolution is running in Express mode (i.e. if the specified @shell is in + * Express mode), then this function will hide a list of widgets, based on their + * specified names. The list of names must be NULL-terminated, and each element + * of that list must be the name of a widget present in @builder. Those widgets + * will then get hidden. + * + * This can be used to simplify preference dialogs and such in an easy fashion, for use + * in Express mode. + * + * If Evolution is not running in Express mode, this function does nothing. + */ +void +e_shell_hide_widgets_for_express_mode (EShell *shell, + GtkBuilder *builder, + const char *widget_name, + ...) +{ + va_list args; + const char *name; + + g_return_if_fail (E_IS_SHELL (shell)); + g_return_if_fail (GTK_IS_BUILDER (builder)); + g_return_if_fail (widget_name != NULL); + + if (!e_shell_get_express_mode (shell)) + return; + + va_start (args, widget_name); + + name = va_arg (args, const char *); + while (name) { + GObject *object; + + object = gtk_builder_get_object (builder, name); + if (!object || !GTK_IS_WIDGET (object)) { + g_error ("Object '%s' was not found in the builder file, or it is not a GtkWidget", name); + g_assert_not_reached (); + } + + gtk_widget_hide (GTK_WIDGET (object)); + + name = va_arg (args, const char *); + } + + va_end (args); +} + diff --git a/shell/e-shell-utils.h b/shell/e-shell-utils.h index e705ded2e5..e552cc2e19 100644 --- a/shell/e-shell-utils.h +++ b/shell/e-shell-utils.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-utils - * @short_description: high-level utilities with shell integration - * @include: shell/e-shell-utils.h - **/ - #ifndef E_SHELL_UTILS_H #define E_SHELL_UTILS_H @@ -56,6 +50,11 @@ guint e_shell_utils_import_uris (EShell *shell, gchar **uris, gboolean preview); +void e_shell_hide_widgets_for_express_mode (EShell *shell, + GtkBuilder *builder, + const char *widget_name, + ...) G_GNUC_NULL_TERMINATED; + G_END_DECLS #endif /* E_SHELL_UTILS_H */ diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index 3a5c6e219d..be099b9869 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -19,24 +19,34 @@ * */ +/** + * SECTION: e-shell-view + * @short_description: views within the main window + * @include: shell/e-shell-view.h + **/ + #include "e-shell-view.h" #include <string.h> #include <glib/gi18n.h> -#include "e-util/e-util-private.h" -#include "e-util/e-util.h" +#include "e-util/e-binding.h" +#include "e-util/e-extensible.h" #include "e-util/e-file-utils.h" #include "e-util/e-plugin-ui.h" #include "e-util/e-ui-manager.h" +#include "e-util/e-util-private.h" +#include "e-util/e-util.h" #include "filter/e-rule-context.h" +#include "e-shell-searchbar.h" #include "e-shell-window-actions.h" #define E_SHELL_VIEW_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ ((obj), E_TYPE_SHELL_VIEW, EShellViewPrivate)) +#define SIMPLE_SEARCHBAR_WIDTH 300 #define STATE_SAVE_TIMEOUT_SECONDS 3 struct _EShellViewPrivate { @@ -57,6 +67,7 @@ struct _EShellViewPrivate { GtkWidget *shell_content; GtkWidget *shell_sidebar; GtkWidget *shell_taskbar; + GtkWidget *searchbar; EFilterRule *search_rule; guint execute_search_blocked; @@ -69,6 +80,7 @@ enum { PROP_0, PROP_ACTION, PROP_PAGE_NUM, + PROP_SEARCHBAR, PROP_SEARCH_RULE, PROP_SHELL_BACKEND, PROP_SHELL_CONTENT, @@ -345,8 +357,9 @@ shell_view_set_action (EShellView *shell_view, static void shell_view_set_shell_window (EShellView *shell_view, - GtkWidget *shell_window) + EShellWindow *shell_window) { + g_return_if_fail (E_IS_SHELL_WINDOW (shell_window)); g_return_if_fail (shell_view->priv->shell_window == NULL); shell_view->priv->shell_window = shell_window; @@ -422,6 +435,12 @@ shell_view_get_property (GObject *object, E_SHELL_VIEW (object))); return; + case PROP_SEARCHBAR: + g_value_set_object ( + value, e_shell_view_get_searchbar ( + E_SHELL_VIEW (object))); + return; + case PROP_SEARCH_RULE: g_value_set_object ( value, e_shell_view_get_search_rule ( @@ -522,6 +541,11 @@ shell_view_dispose (GObject *object) priv->shell_taskbar = NULL; } + if (priv->searchbar != NULL) { + g_object_unref (priv->searchbar); + priv->searchbar = NULL; + } + if (priv->search_rule != NULL) { g_object_unref (priv->search_rule); priv->search_rule = NULL; @@ -575,9 +599,101 @@ shell_view_constructed (GObject *object) shell_view->priv->shell_sidebar = g_object_ref_sink (widget); gtk_widget_show (widget); + if (shell_view_class->construct_searchbar != NULL) { + widget = shell_view_class->construct_searchbar (shell_view); + shell_view->priv->searchbar = g_object_ref_sink (widget); + } + /* Size group should be safe to unreference now. */ g_object_unref (shell_view->priv->size_group); shell_view->priv->size_group = NULL; + + e_extensible_load_extensions (E_EXTENSIBLE (object)); +} + +static GtkWidget * +shell_view_construct_searchbar (EShellView *shell_view) +{ + EShell *shell; + EShellWindow *shell_window; + EShellContent *shell_content; + EShellSearchbar *shell_searchbar; + GtkToolItem *item; + GtkAction *action; + GtkWidget *main_toolbar; + GtkWidget *widget; + + shell_content = e_shell_view_get_shell_content (shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + + widget = e_shell_searchbar_new (shell_view); + + /* In normal mode, we hand the searchbar off to EShellContent. */ + if (!e_shell_get_express_mode (shell)) { + e_shell_content_set_searchbar (shell_content, widget); + gtk_widget_show (widget); + return widget; + } + + /* Express mode is more complicated. We append a heavily simplified + * version of it to the main toolbar, but only show it when this shell + * view is active. So each view still gets its own searchbar. */ + + shell_searchbar = E_SHELL_SEARCHBAR (widget); + e_shell_searchbar_set_express_mode (shell_searchbar, TRUE); + + /* XXX Hardcoded sizes are evil, but what should the width be + * relative to. Window width? The other toolbar width? */ + gtk_widget_set_size_request (widget, SIMPLE_SEARCHBAR_WIDTH, -1); + + main_toolbar = e_shell_window_get_managed_widget ( + shell_window, "/search-toolbar"); + + item = gtk_tool_item_new (); + gtk_container_add (GTK_CONTAINER (item), widget); + gtk_widget_show (GTK_WIDGET (item)); + + action = e_shell_view_get_action (shell_view); + e_binding_new (action, "active", widget, "visible"); + + gtk_toolbar_insert (GTK_TOOLBAR (main_toolbar), item, -1); + + if (e_shell_get_small_screen_mode (shell)) { + GtkWidget *image; + GtkAction *action; + GtkToolItem *item; + + action = e_shell_window_get_action (shell_window, "close-window"); + image = gtk_image_new_from_icon_name ("window-close-hover", + GTK_ICON_SIZE_DIALOG); + item = gtk_tool_button_new (image, gtk_action_get_label (action)); + gtk_widget_set_name (GTK_WIDGET (item), "MeeGoCloseButton"); + gtk_activatable_set_related_action (GTK_ACTIVATABLE (item), action); + gtk_box_pack_start ((GtkBox *)e_shell_window_get_menu_bar_box(shell_window), (GtkWidget *)item, FALSE, FALSE, 0); + gtk_widget_show_all((GtkWidget *)item); + } + + return widget; +} + +static gchar * +shell_view_get_search_name (EShellView *shell_view) +{ + EShellSearchbar *searchbar; + EFilterRule *rule; + const gchar *search_text; + + rule = e_shell_view_get_search_rule (shell_view); + g_return_val_if_fail (E_IS_FILTER_RULE (rule), NULL); + + searchbar = E_SHELL_SEARCHBAR (shell_view->priv->searchbar); + search_text = e_shell_searchbar_get_search_text (searchbar); + + if (search_text == NULL || *search_text == '\0') + search_text = "''"; + + return g_strdup_printf ("%s %s", rule->name, search_text); } static void @@ -663,6 +779,9 @@ shell_view_class_init (EShellViewClass *class) class->new_shell_sidebar = e_shell_sidebar_new; class->new_shell_taskbar = e_shell_taskbar_new; + class->construct_searchbar = shell_view_construct_searchbar; + class->get_search_name = shell_view_get_search_name; + class->toggled = shell_view_toggled; class->clear_search = shell_view_clear_search; class->custom_search = shell_view_custom_search; @@ -976,9 +1095,18 @@ e_shell_view_get_type (void) NULL /* value_table */ }; + const GInterfaceInfo extensible_info = { + (GInterfaceInitFunc) NULL, + (GInterfaceFinalizeFunc) NULL, + NULL /* interface_data */ + }; + type = g_type_register_static ( G_TYPE_OBJECT, "EShellView", &type_info, G_TYPE_FLAG_ABSTRACT); + + g_type_add_interface_static ( + type, E_TYPE_EXTENSIBLE, &extensible_info); } return type; @@ -1201,6 +1329,29 @@ e_shell_view_set_page_num (EShellView *shell_view, } /** + * e_shell_view_get_search_name: + * @shell_view: an #EShellView + * + * Returns a newly-allocated string containing a suitable name for the + * current search criteria. This is used as the suggested name in the + * Save Search dialog. Free the returned string with g_free(). + * + * Returns: a name for the current search criteria + **/ +gchar * +e_shell_view_get_search_name (EShellView *shell_view) +{ + EShellViewClass *class; + + g_return_val_if_fail (E_IS_SHELL_VIEW (shell_view), NULL); + + class = E_SHELL_VIEW_GET_CLASS (shell_view); + g_return_val_if_fail (class->get_search_name != NULL, NULL); + + return class->get_search_name (shell_view); +} + +/** * e_shell_view_get_search_rule: * @shell_view: an #EShellView * @@ -1217,6 +1368,20 @@ e_shell_view_get_search_rule (EShellView *shell_view) } /** + * e_shell_view_get_searchbar: + * @shell_view: an #EShellView + * + * Returns the searchbar widget for @shell_view. + **/ +GtkWidget * +e_shell_view_get_searchbar (EShellView *shell_view) +{ + g_return_val_if_fail (E_IS_SHELL_VIEW (shell_view), NULL); + + return shell_view->priv->searchbar; +} + +/** * e_shell_view_set_search_rule: * @shell_view: an #EShellView * @search_rule: an #EFilterRule diff --git a/shell/e-shell-view.h b/shell/e-shell-view.h index 1e189217e1..4387082f21 100644 --- a/shell/e-shell-view.h +++ b/shell/e-shell-view.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-view - * @short_description: views within the main window - * @include: shell/e-shell-view.h - **/ - #ifndef E_SHELL_VIEW_H #define E_SHELL_VIEW_H @@ -172,6 +166,10 @@ struct _EShellViewClass { GtkWidget * (*new_shell_sidebar) (EShellView *shell_view); GtkWidget * (*new_shell_taskbar) (EShellView *shell_view); + /* Create, configure and pack a search bar widget. */ + GtkWidget * (*construct_searchbar) (EShellView *shell_view); + gchar * (*get_search_name) (EShellView *shell_view); + /* Signals */ void (*toggled) (EShellView *shell_view); void (*clear_search) (EShellView *shell_view); @@ -194,6 +192,8 @@ gboolean e_shell_view_is_active (EShellView *shell_view); gint e_shell_view_get_page_num (EShellView *shell_view); void e_shell_view_set_page_num (EShellView *shell_view, gint page_num); +GtkWidget * e_shell_view_get_searchbar (EShellView *shell_view); +gchar * e_shell_view_get_search_name (EShellView *shell_view); EFilterRule * e_shell_view_get_search_rule (EShellView *shell_view); void e_shell_view_set_search_rule (EShellView *shell_view, EFilterRule *search_rule); diff --git a/shell/e-shell-window-actions.c b/shell/e-shell-window-actions.c index 9b14730c7b..65c6acff7a 100644 --- a/shell/e-shell-window-actions.c +++ b/shell/e-shell-window-actions.c @@ -926,10 +926,17 @@ action_preferences_cb (GtkAction *action, shell_backend = e_shell_view_get_shell_backend (shell_view); shell_backend_class = E_SHELL_BACKEND_GET_CLASS (shell_backend); - if (shell_backend_class->preferences_page != NULL) - e_preferences_window_show_page ( - E_PREFERENCES_WINDOW (preferences_window), - shell_backend_class->preferences_page); + if (shell_backend_class->preferences_page != NULL) { + if (e_shell_get_express_mode (shell)) { + e_preferences_window_filter_page ( + E_PREFERENCES_WINDOW (preferences_window), + shell_backend_class->preferences_page); + } else { + e_preferences_window_show_page ( + E_PREFERENCES_WINDOW (preferences_window), + shell_backend_class->preferences_page); + } + } } /** @@ -1446,6 +1453,21 @@ static GtkActionEntry shell_entries[] = { N_("Close this window"), G_CALLBACK (action_close_cb) }, + { "close-window-menu", + GTK_STOCK_CLOSE, + NULL, + "<Control>w", + N_("Close this window"), + G_CALLBACK (action_close_cb) }, + + + { "close-window", + GTK_STOCK_CLOSE, + N_("_Close Window"), + "<Control>w", + N_("Close this window"), + G_CALLBACK (action_close_cb) }, + { "contents", GTK_STOCK_HELP, N_("_Contents"), @@ -2077,9 +2099,11 @@ e_shell_window_create_new_menu (EShellWindow *shell_window) /* Add menu separators. */ - separator = gtk_separator_menu_item_new (); - new_item_actions = g_list_prepend (new_item_actions, separator); - gtk_widget_show (GTK_WIDGET (separator)); + if (new_item_actions != NULL) { + separator = gtk_separator_menu_item_new (); + new_item_actions = g_list_prepend (new_item_actions, separator); + gtk_widget_show (GTK_WIDGET (separator)); + } if (new_source_actions != NULL) { separator = gtk_separator_menu_item_new (); diff --git a/shell/e-shell-window-private.c b/shell/e-shell-window-private.c index 2272faca9e..6878ff7456 100644 --- a/shell/e-shell-window-private.c +++ b/shell/e-shell-window-private.c @@ -300,7 +300,6 @@ e_shell_window_private_constructed (EShellWindow *shell_window) merge_id = gtk_ui_manager_new_merge_id (ui_manager); priv->gal_view_merge_id = merge_id; - /* Construct window widgets. */ widget = gtk_vbox_new (FALSE, 0); @@ -433,7 +432,9 @@ e_shell_window_private_constructed (EShellWindow *shell_window) object = G_OBJECT (shell_window); key = "/apps/evolution/shell/view_defaults/component_id"; - gconf_bridge_bind_property (bridge, key, object, "active-view"); + g_object_set (object, "active-view", + gconf_client_get_string (e_shell_get_gconf_client (shell), key, NULL), + NULL); object = G_OBJECT (priv->content_pane); key = "/apps/evolution/shell/view_defaults/folder_bar/width"; @@ -443,14 +444,17 @@ e_shell_window_private_constructed (EShellWindow *shell_window) key = "/apps/evolution/shell/view_defaults/sidebar_visible"; gconf_bridge_bind_property (bridge, key, object, "sidebar-visible"); - object = G_OBJECT (shell_window); - key = "/apps/evolution/shell/view_defaults/statusbar_visible"; - gconf_bridge_bind_property (bridge, key, object, "taskbar-visible"); - if (e_shell_get_express_mode (shell)) { + const char *active_view = e_shell_window_get_active_view (shell_window); e_shell_window_set_switcher_visible (shell_window, FALSE); + e_shell_window_set_taskbar_visible (shell_window, active_view && + !strcmp (active_view, "mail")); } else { object = G_OBJECT (shell_window); + key = "/apps/evolution/shell/view_defaults/statusbar_visible"; + gconf_bridge_bind_property (bridge, key, object, "taskbar-visible"); + + object = G_OBJECT (shell_window); key = "/apps/evolution/shell/view_defaults/buttons_visible"; gconf_bridge_bind_property (bridge, key, object, "switcher-visible"); } diff --git a/shell/e-shell-window-private.h b/shell/e-shell-window-private.h index 6050ce135d..02a688503e 100644 --- a/shell/e-shell-window-private.h +++ b/shell/e-shell-window-private.h @@ -93,6 +93,7 @@ struct _EShellWindowPrivate { GtkWidget *status_notebook; /* Miscellaneous */ + GtkWidget *menubar_box; /* Shell signal handlers. */ GArray *signal_handler_ids; diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c index 5513efbe95..7970f5b015 100644 --- a/shell/e-shell-window.c +++ b/shell/e-shell-window.c @@ -19,10 +19,17 @@ * */ +/** + * SECTION: e-shell-window + * @short_description: the main window + * @include: shell/e-shell-window.h + **/ + #include "e-shell-window-private.h" #include <gconf/gconf-client.h> +#include <e-util/e-extensible.h> #include <e-util/e-plugin-ui.h> #include <e-util/e-util-private.h> @@ -45,9 +52,12 @@ enum { LAST_SIGNAL }; -static gpointer parent_class; static gulong signals[LAST_SIGNAL]; +G_DEFINE_TYPE_WITH_CODE ( + EShellWindow, e_shell_window, GTK_TYPE_WINDOW, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) + static void shell_window_menubar_update_new_menu (EShellWindow *shell_window) { @@ -299,7 +309,7 @@ shell_window_dispose (GObject *object) e_shell_window_private_dispose (E_SHELL_WINDOW (object)); /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_shell_window_parent_class)->dispose (object); } static void @@ -308,13 +318,21 @@ shell_window_finalize (GObject *object) e_shell_window_private_finalize (E_SHELL_WINDOW (object)); /* Chain up to parent's finalize() method. */ - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (e_shell_window_parent_class)->finalize (object); } static void shell_window_constructed (GObject *object) { - e_shell_window_private_constructed (E_SHELL_WINDOW (object)); + EShellWindow *shell_window = E_SHELL_WINDOW (object); + + e_shell_window_private_constructed (shell_window); + + e_extensible_load_extensions (E_EXTENSIBLE (object)); + + if (e_shell_get_meego_mode (shell_window->priv->shell) && + e_shell_get_small_screen_mode (shell_window->priv->shell)) + gtk_window_set_decorated (GTK_WINDOW (object), FALSE); } static GtkWidget * @@ -326,6 +344,23 @@ shell_window_construct_menubar (EShellWindow *shell_window) shell_window, "/main-menu"); gtk_widget_show (main_menu); + if (e_shell_get_small_screen_mode (shell_window->priv->shell)) { + GtkWidget *parent, *child; + + parent = gtk_widget_get_parent (main_menu); + g_object_ref (parent); + gtk_container_remove ((GtkContainer *)parent, main_menu); + child = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start ((GtkBox *)child, main_menu, TRUE, TRUE, 0); + gtk_widget_show (child); + gtk_container_add ((GtkContainer *)parent, child); + shell_window->priv->menubar_box = child; + + e_mutual_binding_new (main_menu, "visible", + child, "visible"); + main_menu = child; + } + g_signal_connect ( shell_window, "notify::active-view", G_CALLBACK (shell_window_menubar_update_new_menu), NULL); @@ -333,21 +368,34 @@ shell_window_construct_menubar (EShellWindow *shell_window) return main_menu; } +GtkWidget * +e_shell_window_get_menu_bar_box (EShellWindow *shell_window) +{ + return shell_window->priv->menubar_box; +} + static GtkWidget * shell_window_construct_toolbar (EShellWindow *shell_window) { GtkUIManager *ui_manager; - GtkWidget *main_toolbar; + GtkWidget *toolbar; + GtkWidget *box; GtkToolItem *item; ui_manager = e_shell_window_get_ui_manager (shell_window); - main_toolbar = e_shell_window_get_managed_widget ( - shell_window, "/main-toolbar"); + box = gtk_hbox_new (FALSE, 0); + gtk_widget_show (box); e_binding_new ( shell_window, "toolbar-visible", - main_toolbar, "visible"); + box, "visible"); + + toolbar = e_shell_window_get_managed_widget ( + shell_window, "/main-toolbar"); + + if (e_shell_get_meego_mode (shell_window->priv->shell)) + gtk_widget_set_name (GTK_WIDGET (toolbar), "MeeGoToolbar"); /* XXX Having this separator in the UI definition doesn't work * because GtkUIManager is unaware of the "New" button, so @@ -360,7 +408,7 @@ shell_window_construct_toolbar (EShellWindow *shell_window) * convinced having it proxy some new type of GtkAction * is worth the extra effort. */ item = gtk_separator_tool_item_new (); - gtk_toolbar_insert (GTK_TOOLBAR (main_toolbar), item, 0); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, 0); gtk_widget_show (GTK_WIDGET (item)); item = e_menu_tool_button_new (_("New")); @@ -369,7 +417,7 @@ shell_window_construct_toolbar (EShellWindow *shell_window) GTK_WIDGET (item), "clicked", gtk_ui_manager_get_accel_group (ui_manager), GDK_N, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); - gtk_toolbar_insert (GTK_TOOLBAR (main_toolbar), item, 0); + gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, 0); gtk_widget_show (GTK_WIDGET (item)); g_signal_connect ( @@ -377,7 +425,23 @@ shell_window_construct_toolbar (EShellWindow *shell_window) G_CALLBACK (shell_window_toolbar_update_new_menu), GTK_MENU_TOOL_BUTTON (item)); - return main_toolbar; + gtk_box_pack_start (GTK_BOX (box), toolbar, TRUE, TRUE, 0); + + toolbar = e_shell_window_get_managed_widget ( + shell_window, "/search-toolbar"); + gtk_toolbar_set_show_arrow (GTK_TOOLBAR (toolbar), FALSE); + gtk_box_pack_start (GTK_BOX (box), toolbar, FALSE, FALSE, 0); + if (e_shell_get_meego_mode (shell_window->priv->shell)) + gtk_widget_set_name (GTK_WIDGET (toolbar), "MeeGoToolbar"); + + toolbar = e_shell_window_get_managed_widget ( + shell_window, "/close-toolbar"); + gtk_toolbar_set_show_arrow (GTK_TOOLBAR (toolbar), FALSE); + gtk_box_pack_start (GTK_BOX (box), toolbar, FALSE, FALSE, 0); + if (e_shell_get_meego_mode (shell_window->priv->shell)) + gtk_widget_set_name (GTK_WIDGET (toolbar), "MeeGoToolbar"); + + return box; } static GtkWidget * @@ -582,11 +646,24 @@ shell_window_create_shell_view (EShellWindow *shell_window, } static void -shell_window_class_init (EShellWindowClass *class) +shell_window_realize (GtkWidget *widget) +{ + EShellWindow *shell_window; + + shell_window = E_SHELL_WINDOW (widget); + e_shell_adapt_window_size (shell_window->priv->shell, + GTK_WINDOW (widget)); + + /* Chain up to parent's dispose() method. */ + GTK_WIDGET_CLASS (e_shell_window_parent_class)->realize (widget); +} + +static void +e_shell_window_class_init (EShellWindowClass *class) { GObjectClass *object_class; + GtkWidgetClass *widget_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EShellWindowPrivate)); object_class = G_OBJECT_CLASS (class); @@ -596,6 +673,9 @@ shell_window_class_init (EShellWindowClass *class) object_class->finalize = shell_window_finalize; object_class->constructed = shell_window_constructed; + widget_class = GTK_WIDGET_CLASS (class); + widget_class->realize = shell_window_realize; + class->construct_menubar = shell_window_construct_menubar; class->construct_toolbar = shell_window_construct_toolbar; class->construct_sidebar = shell_window_construct_sidebar; @@ -603,6 +683,7 @@ shell_window_class_init (EShellWindowClass *class) class->construct_taskbar = shell_window_construct_taskbar; class->create_shell_view = shell_window_create_shell_view; + /** * EShellWindow:active-view * @@ -779,39 +860,13 @@ shell_window_class_init (EShellWindowClass *class) } static void -shell_window_init (EShellWindow *shell_window) +e_shell_window_init (EShellWindow *shell_window) { shell_window->priv = E_SHELL_WINDOW_GET_PRIVATE (shell_window); e_shell_window_private_init (shell_window); } -GType -e_shell_window_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - const GTypeInfo type_info = { - sizeof (EShellWindowClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) shell_window_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EShellWindow), - 0, /* n_preallocs */ - (GInstanceInitFunc) shell_window_init, - NULL /* value_table */ - }; - - type = g_type_register_static ( - GTK_TYPE_WINDOW, "EShellWindow", &type_info, 0); - } - - return type; -} - /** * e_shell_window_new: * @shell: an #EShell diff --git a/shell/e-shell-window.h b/shell/e-shell-window.h index 0bd71075c9..9baa3cf8e9 100644 --- a/shell/e-shell-window.h +++ b/shell/e-shell-window.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell-window - * @short_description: the main window - * @include: shell/e-shell-window.h - **/ - #ifndef E_SHELL_WINDOW_H #define E_SHELL_WINDOW_H @@ -152,6 +146,7 @@ void e_shell_window_register_new_source_actions const gchar *backend_name, GtkActionEntry *entries, guint n_entries); +GtkWidget * e_shell_window_get_menu_bar_box (EShellWindow *shell_window); G_END_DECLS diff --git a/shell/e-shell.c b/shell/e-shell.c index 459ebdc64a..a786bf6eed 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -19,6 +19,12 @@ * */ +/** + * SECTION: e-shell + * @short_description: the backbone of Evolution + * @include: shell/e-shell.h + **/ + #include "e-shell.h" #include <glib/gi18n.h> @@ -46,7 +52,7 @@ struct _EShellPrivate { GtkWidget *preferences_window; /* Shell Backends */ - GList *loaded_backends; + GList *loaded_backends; /* not referenced */ GHashTable *backends_by_name; GHashTable *backends_by_scheme; @@ -55,6 +61,8 @@ struct _EShellPrivate { gchar *geometry; gchar *module_directory; + + gchar *startup_view; guint auto_reconnect : 1; guint network_available : 1; @@ -62,11 +70,15 @@ struct _EShellPrivate { guint quit_cancelled : 1; guint safe_mode : 1; guint express_mode : 1; + guint meego_mode : 1; + guint small_screen_mode : 1; }; enum { PROP_0, PROP_EXPRESS_MODE, + PROP_MEEGO_MODE, + PROP_SMALL_SCREEN_MODE, PROP_GEOMETRY, PROP_MODULE_DIRECTORY, PROP_NETWORK_AVAILABLE, @@ -401,23 +413,14 @@ shell_split_and_insert_items (GHashTable *hash_table, } static void -shell_add_backend (GType type, - EShell *shell) +shell_process_backend (EShellBackend *shell_backend, + EShell *shell) { EShellBackendClass *class; - EShellBackend *shell_backend; GHashTable *backends_by_name; GHashTable *backends_by_scheme; const gchar *string; - shell_backend = g_object_new (type, "shell", shell, NULL); - - shell->priv->loaded_backends = g_list_insert_sorted ( - shell->priv->loaded_backends, shell_backend, - (GCompareFunc) e_shell_backend_compare); - - /* Bookkeeping */ - class = E_SHELL_BACKEND_GET_CLASS (shell_backend); backends_by_name = shell->priv->backends_by_name; backends_by_scheme = shell->priv->backends_by_scheme; @@ -474,6 +477,18 @@ shell_set_express_mode (EShell *shell, } static void +shell_set_meego_mode (EShell *shell, gboolean is_meego) +{ + shell->priv->meego_mode = is_meego; +} + +static void +shell_set_small_screen_mode (EShell *shell, gboolean small_screen) +{ + shell->priv->small_screen_mode = small_screen; +} + +static void shell_set_geometry (EShell *shell, const gchar *geometry) { @@ -504,6 +519,18 @@ shell_set_property (GObject *object, g_value_get_boolean (value)); return; + case PROP_MEEGO_MODE: + shell_set_meego_mode ( + E_SHELL (object), + g_value_get_boolean (value)); + return; + + case PROP_SMALL_SCREEN_MODE: + shell_set_small_screen_mode ( + E_SHELL (object), + g_value_get_boolean (value)); + return; + case PROP_GEOMETRY: shell_set_geometry ( E_SHELL (object), @@ -545,6 +572,18 @@ shell_get_property (GObject *object, E_SHELL (object))); return; + case PROP_MEEGO_MODE: + g_value_set_boolean ( + value, e_shell_get_meego_mode ( + E_SHELL (object))); + return; + + case PROP_SMALL_SCREEN_MODE: + g_value_set_boolean ( + value, e_shell_get_small_screen_mode ( + E_SHELL (object))); + return; + case PROP_MODULE_DIRECTORY: g_value_set_string ( value, e_shell_get_module_directory ( @@ -580,6 +619,11 @@ shell_dispose (GObject *object) priv = E_SHELL_GET_PRIVATE (object); + if (priv->startup_view != NULL) { + g_free (priv->startup_view); + priv->startup_view = NULL; + } + if (priv->settings != NULL) { g_object_unref (priv->settings); priv->settings = NULL; @@ -595,10 +639,6 @@ shell_dispose (GObject *object) priv->preferences_window = NULL; } - g_list_foreach (priv->loaded_backends, (GFunc) g_object_unref, NULL); - g_list_free (priv->loaded_backends); - priv->loaded_backends = NULL; - if (priv->preparing_for_line_change != NULL) { g_object_remove_weak_pointer ( G_OBJECT (priv->preparing_for_line_change), @@ -623,6 +663,8 @@ shell_finalize (GObject *object) if (!unique_app_is_running (UNIQUE_APP (object))) e_file_lock_destroy (); + g_list_free (priv->loaded_backends); + g_free (priv->geometry); g_free (priv->module_directory); @@ -634,6 +676,7 @@ static void shell_constructed (GObject *object) { EShellPrivate *priv; + GList *list; priv = E_SHELL_GET_PRIVATE (object); @@ -653,11 +696,13 @@ shell_constructed (GObject *object) shell_load_modules (E_SHELL (object)); - e_type_traverse ( - E_TYPE_SHELL_BACKEND, (ETypeFunc) - shell_add_backend, object); - - e_extensible_load_extensions (E_EXTENSIBLE (object)); + /* Process shell backends. */ + list = g_list_sort ( + e_extensible_list_extensions ( + E_EXTENSIBLE (object), E_TYPE_SHELL_BACKEND), + (GCompareFunc) e_shell_backend_compare); + g_list_foreach (list, (GFunc) shell_process_backend, object); + priv->loaded_backends = list; } static UniqueResponse @@ -791,6 +836,40 @@ e_shell_class_init (EShellClass *class) G_PARAM_CONSTRUCT_ONLY)); /** + * EShell:meego + * + * Are we running under meego - if so, adapt ourselves + * to fit in well with their theming. + **/ + g_object_class_install_property ( + object_class, + PROP_MEEGO_MODE, + g_param_spec_boolean ( + "meego-mode", + "Meego Mode", + "Whether meego mode is enabled", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + + /** + * EShell:small-screen + * + * Are we running with a small (1024x600) screen - if so, start + * throwing the babies overboard to fit onto that screen size. + **/ + g_object_class_install_property ( + object_class, + PROP_SMALL_SCREEN_MODE, + g_param_spec_boolean ( + "small-screen-mode", + "Small Screen Mode", + "Whether we run on a rather small screen", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY)); + + /** * EShell:geometry * * User-specified initial window geometry string to apply @@ -1081,6 +1160,8 @@ e_shell_init (EShell *shell) shell->priv->backends_by_scheme = backends_by_scheme; shell->priv->safe_mode = e_file_lock_exists (); + shell->priv->startup_view = NULL; + g_object_ref_sink (shell->priv->preferences_window); /* Add our icon directory to the theme's search path @@ -1582,6 +1663,38 @@ e_shell_get_express_mode (EShell *shell) } /** + * e_shell_get_meego_mode: + * @shell: an #EShell + * + * Returns %TRUE if Evolution is in MeeGo mode. + * + * Returns: %TRUE if Evolution is in MeeGo mode + **/ +gboolean +e_shell_get_meego_mode (EShell *shell) +{ + g_return_val_if_fail (E_IS_SHELL (shell), FALSE); + + return shell->priv->meego_mode; +} + +/** + * e_shell_get_small_screen_mode: + * @shell: an #EShell + * + * Returns %TRUE if Evolution is in small (netbook) screen mode. + * + * Returns: %TRUE if Evolution is in small screen mode + **/ +gboolean +e_shell_get_small_screen_mode (EShell *shell) +{ + g_return_val_if_fail (E_IS_SHELL (shell), FALSE); + + return shell->priv->small_screen_mode; +} + +/** * e_shell_get_module_directory: * @shell: an #EShell * @@ -1799,3 +1912,50 @@ e_shell_cancel_quit (EShell *shell) g_signal_stop_emission (shell, signals[QUIT_REQUESTED], 0); } + +/** + * e_shell_adapt_window_size: + * @shell: an #EShell + * @window: a #GtkWindow to adapt to full-screen + * + * This is used to adapt to window's size to be optimal for + * the platform. The shell settings are used to determine if + * a window should be set to full screen etc. + * + * This method is best called when the widget is realized on + * a given screen. + **/ +void +e_shell_adapt_window_size (EShell *shell, + GtkWindow *window) +{ + gint monitor; + GdkScreen *scr; + GdkRectangle rect; + + if (!e_shell_get_meego_mode (shell) || + !e_shell_get_small_screen_mode (shell)) + return; + + scr = gdk_screen_get_default (); + monitor = gdk_screen_get_monitor_at_window (scr, GTK_WIDGET (window)->window); + gdk_screen_get_monitor_geometry (scr, monitor, &rect); + + gtk_window_set_default_size (window, rect.width, rect.height); + gtk_window_set_decorated (window, FALSE); + gtk_window_maximize (window); +} + +void +e_shell_set_startup_view (EShell *shell, + const char *view) +{ + shell->priv->startup_view = g_strdup(view); +} + + +const char * +e_shell_get_startup_view (EShell *shell) +{ + return shell->priv->startup_view; +} diff --git a/shell/e-shell.h b/shell/e-shell.h index 5ff9abb77d..0b8c3336c8 100644 --- a/shell/e-shell.h +++ b/shell/e-shell.h @@ -19,12 +19,6 @@ * */ -/** - * SECTION: e-shell - * @short_description: the backbone of Evolution - * @include: shell/e-shell.h - **/ - #ifndef E_SHELL_H #define E_SHELL_H @@ -114,7 +108,9 @@ GList * e_shell_get_watched_windows (EShell *shell); GtkWindow * e_shell_get_active_window (EShell *shell); void e_shell_send_receive (EShell *shell, GtkWindow *parent); +gboolean e_shell_get_meego_mode (EShell *shell); gboolean e_shell_get_express_mode (EShell *shell); +gboolean e_shell_get_small_screen_mode (EShell *shell); const gchar * e_shell_get_module_directory (EShell *shell); gboolean e_shell_get_network_available (EShell *shell); void e_shell_set_network_available (EShell *shell, @@ -129,6 +125,12 @@ void e_shell_event (EShell *shell, gboolean e_shell_quit (EShell *shell); void e_shell_cancel_quit (EShell *shell); +void e_shell_adapt_window_size (EShell *shell, + GtkWindow *window); +void e_shell_set_startup_view (EShell *shell, + const char *view); +const char * e_shell_get_startup_view (EShell *shell); + G_END_DECLS #endif /* E_SHELL_H */ diff --git a/shell/main.c b/shell/main.c index 41ca79eac8..02bc094480 100644 --- a/shell/main.c +++ b/shell/main.c @@ -49,6 +49,7 @@ #include "e-shell.h" #include "e-shell-migrate.h" +#include "e-shell-meego.h" #include "e-config-upgrade.h" #include "es-event.h" @@ -387,6 +388,7 @@ create_default_shell (void) gboolean online = TRUE; const gchar *key; GError *error = NULL; + gboolean is_meego = FALSE, small_screen = FALSE; client = gconf_client_get_default (); @@ -421,6 +423,9 @@ create_default_shell (void) if (!express_mode) express_mode = gconf_client_get_bool (client, key, &error); + if (express_mode) + e_shell_detect_meego (&is_meego, &small_screen); + if (error != NULL) { g_warning ("%s", error->message); g_clear_error (&error); @@ -431,7 +436,9 @@ create_default_shell (void) "name", "org.gnome.Evolution", "geometry", geometry, "module-directory", EVOLUTION_MODULEDIR, + "meego-mode", is_meego, "express-mode", express_mode, + "small-screen-mode", small_screen, "online", online, NULL); @@ -614,6 +621,11 @@ main (gint argc, gchar **argv) e_plugin_load_plugins (); } + if (requested_view) + e_shell_set_startup_view(shell, requested_view); + else if (express_mode) + e_shell_set_startup_view(shell, "mail"); + /* Attempt migration -after- loading all modules and plugins, * as both shell backends and certain plugins hook into this. */ e_shell_migrate_attempt (shell); diff --git a/smime/gui/component.c b/smime/gui/component.c index 48546bf75f..0b7a679ee2 100644 --- a/smime/gui/component.c +++ b/smime/gui/component.c @@ -43,7 +43,7 @@ smime_pk11_passwd (ECertDB *db, PK11SlotInfo* slot, gboolean retry, gchar **pass g_strchomp (slot_name); - prompt = g_strdup_printf (_("Enter the password for `%s'"), slot_name); + prompt = g_strdup_printf (_("Enter the password for '%s'"), slot_name); g_free (slot_name); *passwd = e_passwords_ask_password (_("Enter password"), "SMIME-PKCS11", "", diff --git a/smime/lib/e-cert-db.c b/smime/lib/e-cert-db.c index ce22dc8537..73f184ab17 100644 --- a/smime/lib/e-cert-db.c +++ b/smime/lib/e-cert-db.c @@ -1189,7 +1189,7 @@ e_cert_db_import_certs_from_file (ECertDB *cert_db, rv = FALSE; } else { - printf ("importing %d bytes from `%s'\n", bytes_read, file_path); + printf ("importing %d bytes from '%s'\n", bytes_read, file_path); switch (cert_type) { case E_CERT_CA: diff --git a/smime/lib/e-pkcs12.c b/smime/lib/e-pkcs12.c index af8aedae9d..7f5b49d37f 100644 --- a/smime/lib/e-pkcs12.c +++ b/smime/lib/e-pkcs12.c @@ -167,7 +167,7 @@ input_to_decoder (SEC_PKCS12DecoderContext *dcx, const gchar *path, GError **err fp = g_fopen (path, "rb"); if (!fp) { /* XXX gerror */ - printf ("couldn't open `%s'\n", path); + printf ("couldn't open '%s'\n", path); return FALSE; } @@ -319,7 +319,7 @@ e_pkcs12_import_from_file (EPKCS12 *pkcs12, const gchar *path, GError **error) gboolean wantRetry; PK11SlotInfo *slot; - printf ("importing pkcs12 from `%s'\n", path); + printf ("importing pkcs12 from '%s'\n", path); slot = PK11_GetInternalKeySlot(); diff --git a/ui/evolution-calendars.ui b/ui/evolution-calendars.ui index feef83de6c..8bd41d4bb1 100644 --- a/ui/evolution-calendars.ui +++ b/ui/evolution-calendars.ui @@ -5,8 +5,10 @@ <menuitem action='event-open'/> </placeholder> <placeholder name='print-actions'> +#if !EXPRESS <menuitem action='calendar-print-preview'/> <menuitem action='calendar-print'/> +#endif </placeholder> </menu> <menu action='edit-menu'> @@ -28,20 +30,41 @@ </placeholder> </menubar> <toolbar name='main-toolbar'> +#if !EXPRESS + <toolitem action='send-receive'/> + <separator/> <toolitem action='calendar-print'/> <toolitem action='delete-selection'/> <separator/> +#endif <toolitem action='calendar-go-back'/> <toolitem action='calendar-go-today'/> <toolitem action='calendar-go-forward'/> +#if !EXPRESS <separator/> <toolitem action='calendar-jump-to'/> +#endif <separator/> <toolitem action='calendar-view-day'/> <toolitem action='calendar-view-workweek'/> +#if !EXPRESS <toolitem action='calendar-view-week'/> +#endif + <toolitem action='calendar-view-month'/> +#if !EXPRESS <toolitem action='calendar-view-list'/> +#endif +#if EXPRESS + <separator/> + <toolitem action='preferences'/> +#endif + </toolbar> + <toolbar name='close-toolbar'> +#if EXPRESS + <separator expand="true"/> + <toolitem action='quit-calendar'/> +#endif </toolbar> <popup name='calendar-popup'> <menuitem action='calendar-new'/> @@ -59,12 +82,15 @@ <menuitem action='event-new'/> <menuitem action='event-all-day-new'/> <menuitem action='event-meeting-new'/> +#if !EXPRESS <menuitem action='task-new'/> <separator/> <menuitem action='event-popup-print'/> <separator/> +#endif <menuitem action='popup-paste-clipboard'/> <separator/> +#if !EXPRESS <menu action='gal-view-menu'> <menuitem action='calendar-view-day'/> <menuitem action='calendar-view-workweek'/> @@ -76,24 +102,31 @@ </menu> <menuitem action='calendar-popup-go-today'/> <menuitem action='calendar-popup-jump-to'/> +#endif </popup> <popup name='calendar-event-popup'> <menuitem action='event-popup-open'/> <menuitem action='event-popup-save-as'/> +#if !EXPRESS <menuitem action='event-popup-print'/> +#endif <separator/> <menuitem action='popup-cut-clipboard'/> <menuitem action='popup-copy-clipboard'/> <menuitem action='popup-paste-clipboard'/> +#if !EXPRESS <separator/> <menuitem action='event-popup-copy'/> <menuitem action='event-popup-move'/> +#endif <menuitem action='event-popup-delegate'/> <menuitem action='event-popup-schedule'/> <menuitem action='event-popup-schedule-appointment'/> +#if !EXPRESS <menuitem action='event-popup-forward'/> <menuitem action='event-popup-reply'/> <menuitem action='event-popup-reply-all'/> +#endif <separator/> <menuitem action='event-popup-occurrence-movable'/> <menuitem action='event-popup-delete'/> @@ -108,7 +141,9 @@ <menuitem action='calendar-memopad-open'/> <menuitem action='calendar-memopad-open-url'/> <menuitem action='calendar-memopad-save-as'/> +#if !EXPRESS <menuitem action='calendar-memopad-print'/> +#endif <separator/> <menuitem action='popup-cut-clipboard'/> <menuitem action='popup-copy-clipboard'/> @@ -124,7 +159,9 @@ <menuitem action='calendar-taskpad-open'/> <menuitem action='calendar-taskpad-open-url'/> <menuitem action='calendar-taskpad-save-as'/> +#if !EXPRESS <menuitem action='calendar-taskpad-print'/> +#endif <separator/> <menuitem action='popup-cut-clipboard'/> <menuitem action='popup-copy-clipboard'/> diff --git a/ui/evolution-contacts.ui b/ui/evolution-contacts.ui index 11dc1f20d0..a258060184 100644 --- a/ui/evolution-contacts.ui +++ b/ui/evolution-contacts.ui @@ -7,8 +7,10 @@ <menuitem action='address-book-save-as'/> </placeholder> <placeholder name='print-actions'> +#if !EXPRESS <menuitem action='address-book-print-preview'/> <menuitem action='address-book-print'/> +#endif </placeholder> </menu> <menu action='edit-menu'> @@ -46,7 +48,11 @@ </placeholder> </menubar> <toolbar name='main-toolbar'> +#if !EXPRESS + <toolitem action='send-receive'/> + <separator/> <toolitem action='address-book-print'/> +#endif <toolitem action='delete-selection'/> <toolitem action='address-book-stop'/> </toolbar> @@ -66,7 +72,9 @@ <separator/> <menuitem action='contact-popup-open'/> <menuitem action='contact-popup-save-as'/> +#if !EXPRESS <menuitem action='contact-popup-print'/> +#endif <separator/> <menuitem action='popup-cut-clipboard'/> <menuitem action='popup-copy-clipboard'/> diff --git a/ui/evolution-mail-reader.ui b/ui/evolution-mail-reader.ui index ad0b401676..53cb8845d3 100644 --- a/ui/evolution-mail-reader.ui +++ b/ui/evolution-mail-reader.ui @@ -82,7 +82,7 @@ <menuitem action="mail-mark-unimportant"/> <separator/> <menuitem action="mail-mark-junk"/> - <menuitem action="mail-mark-notjunk"/> + <menuitem action="mail-mark-not-junk"/> <separator/> <menuitem action="mail-flag-for-followup"/> <menuitem action="mail-flag-clear"/> @@ -127,7 +127,7 @@ #endif <toolitem action='mail-delete'/> <toolitem action='mail-mark-junk'/> - <toolitem action='mail-mark-notjunk'/> + <toolitem action='mail-mark-not-junk'/> </placeholder> <separator/> <placeholder name='mail-toolbar-navigation'> diff --git a/ui/evolution-mail.ui b/ui/evolution-mail.ui index 849d579eb6..bae4b26fe2 100644 --- a/ui/evolution-mail.ui +++ b/ui/evolution-mail.ui @@ -61,11 +61,13 @@ </menu> </menubar> <toolbar name='main-toolbar'> -#if EXPRESS <placeholder name='toolbar-actions'> + <toolitem action='send-receive'/> + <separator/> +#if EXPRESS <toolitem action='new-addressbook-window'/> - </placeholder> #endif + </placeholder> <placeholder name='mail-toolbar-common'/> #if !EXPRESS <toolitem action='mail-stop'/> @@ -109,7 +111,7 @@ <menuitem action='mail-popup-mark-important'/> <menuitem action='mail-popup-mark-unimportant'/> <menuitem action='mail-popup-mark-junk'/> - <menuitem action='mail-popup-mark-notjunk'/> + <menuitem action='mail-popup-mark-not-junk'/> <menuitem action='mail-popup-flag-for-followup'/> <menuitem action="mail-popup-flag-clear"/> <menuitem action="mail-popup-flag-completed"/> diff --git a/ui/evolution-memos.ui b/ui/evolution-memos.ui index dbe42c7714..b204605ab9 100644 --- a/ui/evolution-memos.ui +++ b/ui/evolution-memos.ui @@ -29,14 +29,16 @@ </menu> </menubar> <toolbar name='main-toolbar'> - <placeholder name='toolbar-actions'> - <toolitem action='cut-clipboard'/> - <toolitem action='copy-clipboard'/> - <toolitem action='paste-clipboard'/> - <separator/> - <toolitem action='memo-list-print'/> - <toolitem action='delete-selection'/> - </placeholder> +#if !EXPRESS + <toolitem action='send-receive'/> + <separator/> +#endif + <toolitem action='cut-clipboard'/> + <toolitem action='copy-clipboard'/> + <toolitem action='paste-clipboard'/> + <separator/> + <toolitem action='memo-list-print'/> + <toolitem action='delete-selection'/> </toolbar> <popup name='memo-popup'> <menuitem action='memo-new'/> diff --git a/ui/evolution-shell.ui b/ui/evolution-shell.ui index 2407260649..c16189932e 100644 --- a/ui/evolution-shell.ui +++ b/ui/evolution-shell.ui @@ -10,8 +10,10 @@ <placeholder name='file-actions'/> <separator/> <menuitem action='import'/> +#if !EXPRESS <separator/> <menuitem action='page-setup'/> +#endif <placeholder name='print-actions'/> <separator/> <placeholder name='long-running-actions'/> @@ -89,8 +91,9 @@ </menu> </menubar> <toolbar name='main-toolbar'> - <toolitem action='send-receive'/> - <separator/> <placeholder name='toolbar-actions'/> </toolbar> + <toolbar name='search-toolbar'/> + <toolbar name='close-toolbar'/> + </ui> diff --git a/ui/evolution-tasks.ui b/ui/evolution-tasks.ui index 62d9f023b7..8993e5c43a 100644 --- a/ui/evolution-tasks.ui +++ b/ui/evolution-tasks.ui @@ -39,6 +39,10 @@ </placeholder> </menubar> <toolbar name='main-toolbar'> +#if !EXPRESS + <toolitem action='send-receive'/> + <separator/> +#endif <toolitem action='cut-clipboard'/> <toolitem action='copy-clipboard'/> <toolitem action='paste-clipboard'/> diff --git a/widgets/misc/e-account-combo-box.c b/widgets/misc/e-account-combo-box.c index 0ded393e72..786478a5e3 100644 --- a/widgets/misc/e-account-combo-box.c +++ b/widgets/misc/e-account-combo-box.c @@ -41,6 +41,7 @@ enum { struct _EAccountComboBoxPrivate { EAccountList *account_list; GHashTable *index; + int num_displayed_accounts; }; static gpointer parent_class; @@ -150,6 +151,8 @@ account_combo_box_refresh_cb (EAccountList *account_list, GList *list = NULL; GList *iter; + combo_box->priv->num_displayed_accounts = 0; + store = gtk_list_store_new (2, G_TYPE_STRING, E_TYPE_ACCOUNT); model = GTK_TREE_MODEL (store); index = combo_box->priv->index; @@ -182,6 +185,7 @@ account_combo_box_refresh_cb (EAccountList *account_list, gchar *string; account = iter->data; + combo_box->priv->num_displayed_accounts++; /* Show the account name for duplicate email addresses. */ if (account_combo_box_has_dupes (list, account->id->address)) @@ -514,3 +518,21 @@ e_account_combo_box_set_active_name (EAccountComboBox *combo_box, return e_account_combo_box_set_active (combo_box, account); } + +/** + * e_account_combo_box_count_displayed_accounts: + * @combo_box: an #EAccountComboBox + * + * Counts the number of accounts that are displayed in the @combo_box. This may not + * be the actual number of accounts that are configured, as some of those accounts + * may be disabled by the user. + * + * Return value: number of active and valid accounts as shown in the @combo_box. + */ +int +e_account_combo_box_count_displayed_accounts (EAccountComboBox *combo_box) +{ + g_return_val_if_fail (E_IS_ACCOUNT_COMBO_BOX (combo_box), -1); + + return combo_box->priv->num_displayed_accounts; +} diff --git a/widgets/misc/e-account-combo-box.h b/widgets/misc/e-account-combo-box.h index 12d4be6c72..60078690e9 100644 --- a/widgets/misc/e-account-combo-box.h +++ b/widgets/misc/e-account-combo-box.h @@ -78,6 +78,8 @@ gboolean e_account_combo_box_set_active_name (EAccountComboBox *combo_box, const gchar *account_name); +int e_account_combo_box_count_displayed_accounts (EAccountComboBox *combo_box); + G_END_DECLS #endif /* E_ACCOUNT_COMBO_BOX_H */ diff --git a/widgets/misc/e-calendar-item.c b/widgets/misc/e-calendar-item.c index def7019c21..4d7506e05d 100644 --- a/widgets/misc/e-calendar-item.c +++ b/widgets/misc/e-calendar-item.c @@ -35,6 +35,7 @@ #include <glib/gi18n.h> #include <libedataserver/e-data-server-util.h> #include <e-util/e-util.h> +#include <e-util/e-extensible.h> static const gint e_calendar_item_days_in_month[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 @@ -228,7 +229,9 @@ enum { static guint e_calendar_item_signals[LAST_SIGNAL] = { 0 }; -G_DEFINE_TYPE (ECalendarItem, e_calendar_item, GNOME_TYPE_CANVAS_ITEM) +G_DEFINE_TYPE_WITH_CODE ( + ECalendarItem, e_calendar_item, GNOME_TYPE_CANVAS_ITEM, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) static void e_calendar_item_class_init (ECalendarItemClass *class) @@ -844,6 +847,8 @@ e_calendar_item_realize (GnomeCanvasItem *item) calitem = E_CALENDAR_ITEM (item); e_calendar_item_style_set (GTK_WIDGET(item->canvas), calitem); + + e_extensible_load_extensions (E_EXTENSIBLE (calitem)); } static void diff --git a/widgets/misc/e-calendar-item.h b/widgets/misc/e-calendar-item.h index 6a3b74fccb..4aab58ea2e 100644 --- a/widgets/misc/e-calendar-item.h +++ b/widgets/misc/e-calendar-item.h @@ -109,12 +109,24 @@ typedef void (*ECalendarItemStyleCallback) (ECalendarItem *calitem, typedef struct tm (*ECalendarItemGetTimeCallback) (ECalendarItem *calitem, gpointer data); -#define E_CALENDAR_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - e_calendar_item_get_type (), ECalendarItem)) -#define E_CALENDAR_ITEM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k),\ - e_calendar_item_get_type ())) -#define E_IS_CALENDAR_ITEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ - e_calendar_item_get_type ())) +/* Standard GObject macros */ +#define E_TYPE_CALENDAR_ITEM \ + (e_calendar_item_get_type ()) +#define E_CALENDAR_ITEM(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_CALENDAR_ITEM, ECalendarItem)) +#define E_CALENDAR_ITEM_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_CAST \ + ((cls), E_TYPE_CALENDAR_ITEM, ECalendarItemClass)) +#define E_IS_CALENDAR_ITEM(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), E_TYPE_CALENDAR_ITEM)) +#define E_IS_CALENDAR_ITEM_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), E_TYPE_CALENDAR_ITEM)) +#define E_CALENDAR_ITEM_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_CALENDAR_ITEM, ECalendarItemClass)) struct _ECalendarItem { diff --git a/widgets/misc/e-dateedit.c b/widgets/misc/e-dateedit.c index db63ffaaf8..03c8f2fd47 100644 --- a/widgets/misc/e-dateedit.c +++ b/widgets/misc/e-dateedit.c @@ -41,6 +41,7 @@ #include <libedataserver/e-data-server-util.h> #include <e-util/e-util.h> #include <e-util/e-binding.h> +#include <e-util/e-extensible.h> #include "e-calendar.h" #define E_DATE_EDIT_GET_PRIVATE(obj) \ @@ -205,9 +206,12 @@ static gboolean e_date_edit_set_time_internal (EDateEdit *dedit, gint hour, gint minute); -static gpointer parent_class; static gint signals[LAST_SIGNAL]; +G_DEFINE_TYPE_WITH_CODE ( + EDateEdit, e_date_edit, GTK_TYPE_HBOX, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL)) + static void date_edit_set_property (GObject *object, guint property_id, @@ -334,16 +338,15 @@ date_edit_dispose (GObject *object) } /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (parent_class)->dispose (object); + G_OBJECT_CLASS (e_date_edit_parent_class)->dispose (object); } static void -date_edit_class_init (EDateEditClass *class) +e_date_edit_class_init (EDateEditClass *class) { GObjectClass *object_class; GtkWidgetClass *widget_class; - parent_class = g_type_class_peek_parent (class); g_type_class_add_private (class, sizeof (EDateEditPrivate)); object_class = G_OBJECT_CLASS (class); @@ -448,7 +451,7 @@ date_edit_class_init (EDateEditClass *class) } static void -date_edit_init (EDateEdit *dedit) +e_date_edit_init (EDateEdit *dedit) { dedit->priv = E_DATE_EDIT_GET_PRIVATE (dedit); @@ -476,32 +479,8 @@ date_edit_init (EDateEdit *dedit) /* Set it to the current time. */ e_date_edit_set_time (dedit, 0); -} - -GType -e_date_edit_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - static const GTypeInfo type_info = { - sizeof (EDateEditClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) date_edit_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EDateEdit), - 0, /* n_preallocs */ - (GInstanceInitFunc) date_edit_init, - NULL /* value_table */ - }; - - type = g_type_register_static ( - GTK_TYPE_HBOX, "EDateEdit", &type_info, 0); - } - return type; + e_extensible_load_extensions (E_EXTENSIBLE (dedit)); } /** diff --git a/widgets/misc/e-preferences-window.c b/widgets/misc/e-preferences-window.c index f40dee180b..8fa4fcf85f 100644 --- a/widgets/misc/e-preferences-window.c +++ b/widgets/misc/e-preferences-window.c @@ -33,11 +33,17 @@ struct _EPreferencesWindowPrivate { GtkWidget *icon_view; + GtkWidget *scroll; GtkWidget *notebook; GHashTable *index; + + GtkListStore *store; + GtkTreeModelFilter *filter; + const char *filter_view; }; enum { + COLUMN_ID, /* G_TYPE_STRING */ COLUMN_TEXT, /* G_TYPE_STRING */ COLUMN_PIXBUF, /* GDK_TYPE_PIXBUF */ COLUMN_PAGE, /* G_TYPE_INT */ @@ -102,7 +108,7 @@ preferences_window_selection_changed_cb (EPreferencesWindow *window) if (list == NULL) return; - model = gtk_icon_view_get_model (icon_view); + model = window->priv->store; gtk_tree_model_get_iter (model, &iter, list->data); gtk_tree_model_get (model, &iter, COLUMN_PAGE, &page, -1); @@ -190,6 +196,40 @@ preferences_window_class_init (EPreferencesWindowClass *class) widget_class->show = preferences_window_show; } +static gboolean +filter_view (GtkTreeModel *model, + GtkTreeIter *iter, + gpointer data) +{ + EPreferencesWindow *window = (EPreferencesWindow *)data; + gchar *str; + gboolean visible = FALSE; + + if (!window->priv->filter_view) + return TRUE; + + gtk_tree_model_get (model, iter, COLUMN_ID, &str, -1); + if (strncmp(window->priv->filter_view, "mail", 4) == 0) { + /* Show everything except calendar */ + if (str && (strncmp (str, "cal", 3) == 0)) + visible = FALSE; + else + visible = TRUE; + } else if (strncmp(window->priv->filter_view, "cal", 3) == 0) { + /* Show only calendar and nothing else */ + if (str && (strncmp (str, "cal", 3) != 0)) + visible = FALSE; + else + visible = TRUE; + + } else /* In any other case, show everything */ + visible = TRUE; + + g_free (str); + + return visible; +} + static void preferences_window_init (EPreferencesWindow *window) { @@ -209,11 +249,16 @@ preferences_window_init (EPreferencesWindow *window) window->priv = E_PREFERENCES_WINDOW_GET_PRIVATE (window); window->priv->index = index; + window->priv->filter_view = NULL; store = gtk_list_store_new ( - 4, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_INT, G_TYPE_INT); + 5, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_INT, G_TYPE_INT); gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE (store), COLUMN_SORT, GTK_SORT_ASCENDING); + window->priv->store = store; + + window->priv->filter = (GtkTreeModelFilter *)gtk_tree_model_filter_new ((GtkTreeModel *)store, NULL); + gtk_tree_model_filter_set_visible_func (window->priv->filter, filter_view, window, NULL); title = _("Evolution Preferences"); gtk_window_set_title (GTK_WINDOW (window), title); @@ -243,11 +288,12 @@ preferences_window_init (EPreferencesWindow *window) gtk_scrolled_window_set_shadow_type ( GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN); gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, TRUE, 0); + window->priv->scroll = widget; gtk_widget_show (widget); - + container = widget; - widget = gtk_icon_view_new_with_model (GTK_TREE_MODEL (store)); + widget = gtk_icon_view_new_with_model (GTK_TREE_MODEL (window->priv->filter)); gtk_icon_view_set_columns (GTK_ICON_VIEW (widget), 1); gtk_icon_view_set_text_column (GTK_ICON_VIEW (widget), COLUMN_TEXT); gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (widget), COLUMN_PIXBUF); @@ -359,13 +405,14 @@ e_preferences_window_add_page (EPreferencesWindow *window, notebook = GTK_NOTEBOOK (window->priv->notebook); page = gtk_notebook_get_n_pages (notebook); - model = gtk_icon_view_get_model (icon_view); + model = window->priv->store; pixbuf = preferences_window_load_pixbuf (icon_name); gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set ( GTK_LIST_STORE (model), &iter, + COLUMN_ID, page_name, COLUMN_TEXT, caption, COLUMN_PIXBUF, pixbuf, COLUMN_PAGE, page, COLUMN_SORT, sort_order, -1); @@ -405,3 +452,35 @@ e_preferences_window_show_page (EPreferencesWindow *window, gtk_icon_view_scroll_to_path (icon_view, path, FALSE, 0.0, 0.0); gtk_tree_path_free (path); } + +void +e_preferences_window_filter_page (EPreferencesWindow *window, + const gchar *page_name) +{ + GtkTreeRowReference *reference; + GtkIconView *icon_view; + GtkTreePath *path; + + g_return_if_fail (E_IS_PREFERENCES_WINDOW (window)); + g_return_if_fail (page_name != NULL); + + icon_view = GTK_ICON_VIEW (window->priv->icon_view); + reference = g_hash_table_lookup (window->priv->index, page_name); + g_return_if_fail (reference != NULL); + + path = gtk_tree_row_reference_get_path (reference); + gtk_icon_view_select_path (icon_view, path); + gtk_icon_view_scroll_to_path (icon_view, path, FALSE, 0.0, 0.0); + gtk_tree_path_free (path); + + window->priv->filter_view = page_name; + gtk_tree_model_filter_refilter (window->priv->filter); + + /* XXX: We need a better solution to hide the icon view when + * there is just one entry */ + if (strncmp(page_name, "cal", 3) == 0) { + gtk_widget_hide (window->priv->scroll); + } else + gtk_widget_show (window->priv->scroll); +} + diff --git a/widgets/misc/e-preferences-window.h b/widgets/misc/e-preferences-window.h index 4944a89e58..97f0da85e2 100644 --- a/widgets/misc/e-preferences-window.h +++ b/widgets/misc/e-preferences-window.h @@ -68,6 +68,8 @@ void e_preferences_window_add_page (EPreferencesWindow *window, gint sort_order); void e_preferences_window_show_page (EPreferencesWindow *window, const gchar *page_name); +void e_preferences_window_filter_page (EPreferencesWindow *window, + const gchar *page_name); G_END_DECLS diff --git a/widgets/misc/e-web-view.c b/widgets/misc/e-web-view.c index e9fc71d7ca..beb865b98b 100644 --- a/widgets/misc/e-web-view.c +++ b/widgets/misc/e-web-view.c @@ -28,9 +28,10 @@ #include <camel/camel-internet-address.h> #include <camel/camel-url.h> -#include "e-util/e-util.h" -#include "e-util/e-binding.h" -#include "e-util/e-plugin-ui.h" +#include <e-util/e-util.h> +#include <e-util/e-binding.h> +#include <e-util/e-extensible.h> +#include <e-util/e-plugin-ui.h> #include "e-popup-action.h" #include "e-selectable.h" @@ -75,6 +76,9 @@ enum { PROP_DISABLE_PRINTING, PROP_DISABLE_SAVE_TO_DISK, PROP_EDITABLE, + PROP_INLINE_SPELLING, + PROP_MAGIC_LINKS, + PROP_MAGIC_SMILEYS, PROP_OPEN_PROXY, PROP_PASTE_TARGET_LIST, PROP_PRINT_PROXY, @@ -118,6 +122,14 @@ static const gchar *ui = " </popup>" "</ui>"; +/* Forward Declarations */ +static void e_web_view_selectable_init (ESelectableInterface *interface); + +G_DEFINE_TYPE_WITH_CODE ( + EWebView, e_web_view, GTK_TYPE_HTML, + G_IMPLEMENT_INTERFACE (E_TYPE_EXTENSIBLE, NULL) + G_IMPLEMENT_INTERFACE (E_TYPE_SELECTABLE, e_web_view_selectable_init)) + static EWebViewRequest * web_view_request_new (EWebView *web_view, const gchar *uri, @@ -503,6 +515,24 @@ web_view_set_property (GObject *object, g_value_get_boolean (value)); return; + case PROP_INLINE_SPELLING: + e_web_view_set_inline_spelling ( + E_WEB_VIEW (object), + g_value_get_boolean (value)); + return; + + case PROP_MAGIC_LINKS: + e_web_view_set_magic_links ( + E_WEB_VIEW (object), + g_value_get_boolean (value)); + return; + + case PROP_MAGIC_SMILEYS: + e_web_view_set_magic_smileys ( + E_WEB_VIEW (object), + g_value_get_boolean (value)); + return; + case PROP_OPEN_PROXY: e_web_view_set_open_proxy ( E_WEB_VIEW (object), @@ -574,6 +604,24 @@ web_view_get_property (GObject *object, E_WEB_VIEW (object))); return; + case PROP_INLINE_SPELLING: + g_value_set_boolean ( + value, e_web_view_get_inline_spelling ( + E_WEB_VIEW (object))); + return; + + case PROP_MAGIC_LINKS: + g_value_set_boolean ( + value, e_web_view_get_magic_links ( + E_WEB_VIEW (object))); + return; + + case PROP_MAGIC_SMILEYS: + g_value_set_boolean ( + value, e_web_view_get_magic_smileys ( + E_WEB_VIEW (object))); + return; + case PROP_OPEN_PROXY: g_value_set_object ( value, e_web_view_get_open_proxy ( @@ -809,6 +857,16 @@ web_view_extract_uri (EWebView *web_view, } static void +web_view_load_string (EWebView *web_view, + const gchar *string) +{ + if (string != NULL && *string != '\0') + gtk_html_load_from_string (GTK_HTML (web_view), string, -1); + else + e_web_view_clear (web_view); +} + +static void web_view_copy_clipboard (EWebView *web_view) { gtk_html_command (GTK_HTML (web_view), "copy"); @@ -1004,7 +1062,7 @@ web_view_selectable_select_all (ESelectable *selectable) } static void -web_view_class_init (EWebViewClass *class) +e_web_view_class_init (EWebViewClass *class) { GObjectClass *object_class; GtkWidgetClass *widget_class; @@ -1030,6 +1088,7 @@ web_view_class_init (EWebViewClass *class) html_class->iframe_created = web_view_iframe_created; class->extract_uri = web_view_extract_uri; + class->load_string = web_view_load_string; class->copy_clipboard = web_view_copy_clipboard; class->cut_clipboard = web_view_cut_clipboard; class->paste_clipboard = web_view_paste_clipboard; @@ -1072,7 +1131,8 @@ web_view_class_init (EWebViewClass *class) "Disable Printing", NULL, FALSE, - G_PARAM_READWRITE)); + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); g_object_class_install_property ( object_class, @@ -1082,7 +1142,8 @@ web_view_class_init (EWebViewClass *class) "Disable Save-to-Disk", NULL, FALSE, - G_PARAM_READWRITE)); + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT)); #endif g_object_class_install_property ( @@ -1097,6 +1158,36 @@ web_view_class_init (EWebViewClass *class) g_object_class_install_property ( object_class, + PROP_INLINE_SPELLING, + g_param_spec_boolean ( + "inline-spelling", + "Inline Spelling", + NULL, + FALSE, + G_PARAM_READWRITE)); + + g_object_class_install_property ( + object_class, + PROP_MAGIC_LINKS, + g_param_spec_boolean ( + "magic-links", + "Magic Links", + NULL, + FALSE, + G_PARAM_READWRITE)); + + g_object_class_install_property ( + object_class, + PROP_MAGIC_SMILEYS, + g_param_spec_boolean ( + "magic-smileys", + "Magic Smileys", + NULL, + FALSE, + G_PARAM_READWRITE)); + + g_object_class_install_property ( + object_class, PROP_OPEN_PROXY, g_param_spec_object ( "open-proxy", @@ -1209,7 +1300,7 @@ web_view_class_init (EWebViewClass *class) } static void -web_view_selectable_init (ESelectableInterface *interface) +e_web_view_selectable_init (ESelectableInterface *interface) { interface->update_actions = web_view_selectable_update_actions; interface->cut_clipboard = web_view_selectable_cut_clipboard; @@ -1219,7 +1310,7 @@ web_view_selectable_init (ESelectableInterface *interface) } static void -web_view_init (EWebView *web_view) +e_web_view_init (EWebView *web_view) { GtkUIManager *ui_manager; GtkActionGroup *action_group; @@ -1335,41 +1426,8 @@ web_view_init (EWebView *web_view) id = "org.gnome.evolution.webview"; e_plugin_ui_register_manager (ui_manager, id, web_view); e_plugin_ui_enable_manager (ui_manager, id); -} - -GType -e_web_view_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) { - static const GTypeInfo type_info = { - sizeof (EWebViewClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) web_view_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (EWebView), - 0, /* n_preallocs */ - (GInstanceInitFunc) web_view_init, - NULL /* value_table */ - }; - - static const GInterfaceInfo selectable_info = { - (GInterfaceInitFunc) web_view_selectable_init, - (GInterfaceFinalizeFunc) NULL, - NULL /* interface_data */ - }; - - type = g_type_register_static ( - GTK_TYPE_HTML, "EWebView", &type_info, 0); - - g_type_add_interface_static ( - type, E_TYPE_SELECTABLE, &selectable_info); - } - return type; + e_extensible_load_extensions (E_EXTENSIBLE (web_view)); } GtkWidget * @@ -1390,12 +1448,14 @@ void e_web_view_load_string (EWebView *web_view, const gchar *string) { + EWebViewClass *class; + g_return_if_fail (E_IS_WEB_VIEW (web_view)); - if (string != NULL && *string != '\0') - gtk_html_load_from_string (GTK_HTML (web_view), string, -1); - else - e_web_view_clear (web_view); + class = E_WEB_VIEW_GET_CLASS (web_view); + g_return_if_fail (class->load_string != NULL); + + class->load_string (web_view, string); } gboolean @@ -1522,6 +1582,84 @@ e_web_view_set_editable (EWebView *web_view, g_object_notify (G_OBJECT (web_view), "editable"); } +gboolean +e_web_view_get_inline_spelling (EWebView *web_view) +{ + /* XXX This is just here to maintain symmetry + * with e_web_view_set_inline_spelling(). */ + + g_return_val_if_fail (E_IS_WEB_VIEW (web_view), FALSE); + + return gtk_html_get_inline_spelling (GTK_HTML (web_view)); +} + +void +e_web_view_set_inline_spelling (EWebView *web_view, + gboolean inline_spelling) +{ + /* XXX GtkHTML does not utilize GObject properties as well + * as it could. This just wraps gtk_html_set_inline_spelling() + * so we get a "notify::inline-spelling" signal. */ + + g_return_if_fail (E_IS_WEB_VIEW (web_view)); + + gtk_html_set_inline_spelling (GTK_HTML (web_view), inline_spelling); + + g_object_notify (G_OBJECT (web_view), "inline-spelling"); +} + +gboolean +e_web_view_get_magic_links (EWebView *web_view) +{ + /* XXX This is just here to maintain symmetry + * with e_web_view_set_magic_links(). */ + + g_return_val_if_fail (E_IS_WEB_VIEW (web_view), FALSE); + + return gtk_html_get_magic_links (GTK_HTML (web_view)); +} + +void +e_web_view_set_magic_links (EWebView *web_view, + gboolean magic_links) +{ + /* XXX GtkHTML does not utilize GObject properties as well + * as it could. This just wraps gtk_html_set_magic_links() + * so we can get a "notify::magic-links" signal. */ + + g_return_if_fail (E_IS_WEB_VIEW (web_view)); + + gtk_html_set_magic_links (GTK_HTML (web_view), magic_links); + + g_object_notify (G_OBJECT (web_view), "magic-links"); +} + +gboolean +e_web_view_get_magic_smileys (EWebView *web_view) +{ + /* XXX This is just here to maintain symmetry + * with e_web_view_set_magic_smileys(). */ + + g_return_val_if_fail (E_IS_WEB_VIEW (web_view), FALSE); + + return gtk_html_get_magic_smileys (GTK_HTML (web_view)); +} + +void +e_web_view_set_magic_smileys (EWebView *web_view, + gboolean magic_smileys) +{ + /* XXX GtkHTML does not utilize GObject properties as well + * as it could. This just wraps gtk_html_set_magic_smileys() + * so we can get a "notify::magic-smileys" signal. */ + + g_return_if_fail (E_IS_WEB_VIEW (web_view)); + + gtk_html_set_magic_smileys (GTK_HTML (web_view), magic_smileys); + + g_object_notify (G_OBJECT (web_view), "magic-smileys"); +} + const gchar * e_web_view_get_selected_uri (EWebView *web_view) { diff --git a/widgets/misc/e-web-view.h b/widgets/misc/e-web-view.h index 788eadb1b7..7d8eb4c8d0 100644 --- a/widgets/misc/e-web-view.h +++ b/widgets/misc/e-web-view.h @@ -69,6 +69,8 @@ struct _EWebViewClass { gchar * (*extract_uri) (EWebView *web_view, GdkEventButton *event, GtkHTML *frame); + void (*load_string) (EWebView *web_view, + const gchar *load_string); /* Signals */ void (*copy_clipboard) (EWebView *web_view); @@ -106,6 +108,15 @@ void e_web_view_set_disable_save_to_disk gboolean e_web_view_get_editable (EWebView *web_view); void e_web_view_set_editable (EWebView *web_view, gboolean editable); +gboolean e_web_view_get_inline_spelling (EWebView *web_view); +void e_web_view_set_inline_spelling (EWebView *web_view, + gboolean inline_spelling); +gboolean e_web_view_get_magic_links (EWebView *web_view); +void e_web_view_set_magic_links (EWebView *web_view, + gboolean magic_links); +gboolean e_web_view_get_magic_smileys (EWebView *web_view); +void e_web_view_set_magic_smileys (EWebView *web_view, + gboolean magic_smileys); const gchar * e_web_view_get_selected_uri (EWebView *web_view); void e_web_view_set_selected_uri (EWebView *web_view, const gchar *selected_uri); diff --git a/widgets/table/e-cell-text.c b/widgets/table/e-cell-text.c index f9d3441d6f..f0509e4590 100644 --- a/widgets/table/e-cell-text.c +++ b/widgets/table/e-cell-text.c @@ -1421,7 +1421,7 @@ ect_print_height (ECellView *ecell_view, GtkPrintContext *context, * should be 16 + 4. * Height of some special font is much higher than others, * such as Arabic. So leave some more margin for cell. -` */ + */ return 16 + 8; } |