|
Packit |
15f964 |
/*
|
|
Packit |
15f964 |
* e-mail-config-summary-page.c
|
|
Packit |
15f964 |
*
|
|
Packit |
15f964 |
* This program is free software; you can redistribute it and/or modify it
|
|
Packit |
15f964 |
* under the terms of the GNU Lesser General Public License as published by
|
|
Packit |
15f964 |
* the Free Software Foundation.
|
|
Packit |
15f964 |
*
|
|
Packit |
15f964 |
* This program is distributed in the hope that it will be useful, but
|
|
Packit |
15f964 |
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
Packit |
15f964 |
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
Packit |
15f964 |
* for more details.
|
|
Packit |
15f964 |
*
|
|
Packit |
15f964 |
* You should have received a copy of the GNU Lesser General Public License
|
|
Packit |
15f964 |
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
Packit |
15f964 |
*
|
|
Packit |
15f964 |
*/
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
#include "evolution-config.h"
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
#include <glib/gi18n-lib.h>
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
#include <camel/camel.h>
|
|
Packit |
15f964 |
#include <libebackend/libebackend.h>
|
|
Packit |
15f964 |
#include <e-util/e-util.h>
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
#include "e-mail-config-summary-page.h"
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
#define E_MAIL_CONFIG_SUMMARY_PAGE_GET_PRIVATE(obj) \
|
|
Packit |
15f964 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
Packit |
15f964 |
((obj), E_TYPE_MAIL_CONFIG_SUMMARY_PAGE, EMailConfigSummaryPagePrivate))
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
struct _EMailConfigSummaryPagePrivate {
|
|
Packit |
15f964 |
ESource *account_source;
|
|
Packit |
15f964 |
ESource *identity_source;
|
|
Packit |
15f964 |
ESource *transport_source;
|
|
Packit |
15f964 |
EMailConfigServiceBackend *account_backend;
|
|
Packit |
15f964 |
EMailConfigServiceBackend *transport_backend;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
gulong account_source_changed_id;
|
|
Packit |
15f964 |
gulong identity_source_changed_id;
|
|
Packit |
15f964 |
gulong transport_source_changed_id;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Widgets (not referenced) */
|
|
Packit |
15f964 |
GtkBox *main_box;
|
|
Packit |
15f964 |
GtkLabel *name_label;
|
|
Packit |
15f964 |
GtkLabel *address_label;
|
|
Packit |
15f964 |
GtkLabel *recv_backend_label;
|
|
Packit |
15f964 |
GtkLabel *recv_host_label;
|
|
Packit |
15f964 |
GtkLabel *recv_user_label;
|
|
Packit |
15f964 |
GtkLabel *recv_security_label;
|
|
Packit |
15f964 |
GtkLabel *send_backend_label;
|
|
Packit |
15f964 |
GtkLabel *send_host_label;
|
|
Packit |
15f964 |
GtkLabel *send_user_label;
|
|
Packit |
15f964 |
GtkLabel *send_security_label;
|
|
Packit |
15f964 |
GtkEntry *account_name_entry;
|
|
Packit |
0d0b26 |
|
|
Packit |
0d0b26 |
GBinding *account_name_binding;
|
|
Packit |
15f964 |
};
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
enum {
|
|
Packit |
15f964 |
PROP_0,
|
|
Packit |
15f964 |
PROP_ACCOUNT_BACKEND,
|
|
Packit |
15f964 |
PROP_ACCOUNT_SOURCE,
|
|
Packit |
15f964 |
PROP_IDENTITY_SOURCE,
|
|
Packit |
15f964 |
PROP_TRANSPORT_BACKEND,
|
|
Packit |
15f964 |
PROP_TRANSPORT_SOURCE
|
|
Packit |
15f964 |
};
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
enum {
|
|
Packit |
15f964 |
REFRESH,
|
|
Packit |
15f964 |
LAST_SIGNAL
|
|
Packit |
15f964 |
};
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static gulong signals[LAST_SIGNAL];
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Forward Declarations */
|
|
Packit |
15f964 |
static void e_mail_config_summary_page_interface_init
|
|
Packit |
15f964 |
(EMailConfigPageInterface *iface);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
G_DEFINE_TYPE_WITH_CODE (
|
|
Packit |
15f964 |
EMailConfigSummaryPage,
|
|
Packit |
15f964 |
e_mail_config_summary_page,
|
|
Packit |
15f964 |
GTK_TYPE_SCROLLED_WINDOW,
|
|
Packit |
15f964 |
G_IMPLEMENT_INTERFACE (
|
|
Packit |
15f964 |
E_TYPE_EXTENSIBLE, NULL)
|
|
Packit |
15f964 |
G_IMPLEMENT_INTERFACE (
|
|
Packit |
15f964 |
E_TYPE_MAIL_CONFIG_PAGE,
|
|
Packit |
15f964 |
e_mail_config_summary_page_interface_init))
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Helper for mail_config_summary_page_refresh() */
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_refresh_auth_labels (ESource *source,
|
|
Packit |
15f964 |
GtkLabel *host_label,
|
|
Packit |
15f964 |
GtkLabel *user_label)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
ESourceAuthentication *extension;
|
|
Packit |
15f964 |
const gchar *extension_name;
|
|
Packit |
15f964 |
const gchar *value;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension_name = E_SOURCE_EXTENSION_AUTHENTICATION;
|
|
Packit |
15f964 |
if (!e_source_has_extension (source, extension_name))
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension = e_source_get_extension (source, extension_name);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
value = e_source_authentication_get_host (extension);
|
|
Packit |
15f964 |
gtk_label_set_text (host_label, value);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
value = e_source_authentication_get_user (extension);
|
|
Packit |
15f964 |
gtk_label_set_text (user_label, value);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Helper for mail_config_summary_page_refresh() */
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_refresh_security_label (ESource *source,
|
|
Packit |
15f964 |
GtkLabel *security_label)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
GEnumClass *enum_class;
|
|
Packit |
15f964 |
GEnumValue *enum_value;
|
|
Packit |
15f964 |
ESourceSecurity *extension;
|
|
Packit |
15f964 |
const gchar *extension_name;
|
|
Packit |
15f964 |
const gchar *value;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension_name = E_SOURCE_EXTENSION_SECURITY;
|
|
Packit |
15f964 |
if (!e_source_has_extension (source, extension_name))
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension = e_source_get_extension (source, extension_name);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* XXX This is a pain in the butt, but we want to avoid hard-coding
|
|
Packit |
15f964 |
* string values from the CamelNetworkSecurityMethod enum class
|
|
Packit |
15f964 |
* in case they change in the future. */
|
|
Packit |
15f964 |
enum_class = g_type_class_ref (CAMEL_TYPE_NETWORK_SECURITY_METHOD);
|
|
Packit |
15f964 |
value = e_source_security_get_method (extension);
|
|
Packit |
15f964 |
if (value != NULL)
|
|
Packit |
15f964 |
enum_value = g_enum_get_value_by_nick (enum_class, value);
|
|
Packit |
15f964 |
else
|
|
Packit |
15f964 |
enum_value = NULL;
|
|
Packit |
15f964 |
if (enum_value == NULL) {
|
|
Packit |
15f964 |
gtk_label_set_text (security_label, value);
|
|
Packit |
15f964 |
} else switch ((CamelNetworkSecurityMethod) enum_value->value) {
|
|
Packit |
15f964 |
case CAMEL_NETWORK_SECURITY_METHOD_NONE:
|
|
Packit |
15f964 |
gtk_label_set_text (security_label, _("None"));
|
|
Packit |
15f964 |
break;
|
|
Packit |
15f964 |
case CAMEL_NETWORK_SECURITY_METHOD_SSL_ON_ALTERNATE_PORT:
|
|
Packit |
15f964 |
gtk_label_set_text (security_label, _("TLS"));
|
|
Packit |
15f964 |
break;
|
|
Packit |
15f964 |
case CAMEL_NETWORK_SECURITY_METHOD_STARTTLS_ON_STANDARD_PORT:
|
|
Packit |
15f964 |
gtk_label_set_text (security_label, _("STARTTLS"));
|
|
Packit |
15f964 |
break;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
g_type_class_unref (enum_class);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_source_changed (ESource *source,
|
|
Packit |
15f964 |
EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
e_mail_config_summary_page_refresh (page);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_set_property (GObject *object,
|
|
Packit |
15f964 |
guint property_id,
|
|
Packit |
15f964 |
const GValue *value,
|
|
Packit |
15f964 |
GParamSpec *pspec)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
switch (property_id) {
|
|
Packit |
15f964 |
case PROP_ACCOUNT_BACKEND:
|
|
Packit |
15f964 |
e_mail_config_summary_page_set_account_backend (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (object),
|
|
Packit |
15f964 |
g_value_get_object (value));
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
case PROP_IDENTITY_SOURCE:
|
|
Packit |
15f964 |
e_mail_config_summary_page_set_identity_source (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (object),
|
|
Packit |
15f964 |
g_value_get_object (value));
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
case PROP_TRANSPORT_BACKEND:
|
|
Packit |
15f964 |
e_mail_config_summary_page_set_transport_backend (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (object),
|
|
Packit |
15f964 |
g_value_get_object (value));
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_get_property (GObject *object,
|
|
Packit |
15f964 |
guint property_id,
|
|
Packit |
15f964 |
GValue *value,
|
|
Packit |
15f964 |
GParamSpec *pspec)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
switch (property_id) {
|
|
Packit |
15f964 |
case PROP_ACCOUNT_BACKEND:
|
|
Packit |
15f964 |
g_value_set_object (
|
|
Packit |
15f964 |
value,
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_account_backend (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (object)));
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
case PROP_ACCOUNT_SOURCE:
|
|
Packit |
15f964 |
g_value_set_object (
|
|
Packit |
15f964 |
value,
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_account_source (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (object)));
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
case PROP_IDENTITY_SOURCE:
|
|
Packit |
15f964 |
g_value_set_object (
|
|
Packit |
15f964 |
value,
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_identity_source (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (object)));
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
case PROP_TRANSPORT_BACKEND:
|
|
Packit |
15f964 |
g_value_set_object (
|
|
Packit |
15f964 |
value,
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_transport_backend (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (object)));
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
case PROP_TRANSPORT_SOURCE:
|
|
Packit |
15f964 |
g_value_set_object (
|
|
Packit |
15f964 |
value,
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_transport_source (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (object)));
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_dispose (GObject *object)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
EMailConfigSummaryPagePrivate *priv;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
priv = E_MAIL_CONFIG_SUMMARY_PAGE_GET_PRIVATE (object);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (priv->account_source != NULL) {
|
|
Packit |
15f964 |
g_signal_handler_disconnect (
|
|
Packit |
15f964 |
priv->account_source,
|
|
Packit |
15f964 |
priv->account_source_changed_id);
|
|
Packit |
15f964 |
g_object_unref (priv->account_source);
|
|
Packit |
15f964 |
priv->account_source = NULL;
|
|
Packit |
15f964 |
priv->account_source_changed_id = 0;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (priv->identity_source != NULL) {
|
|
Packit |
15f964 |
g_signal_handler_disconnect (
|
|
Packit |
15f964 |
priv->identity_source,
|
|
Packit |
15f964 |
priv->identity_source_changed_id);
|
|
Packit |
15f964 |
g_object_unref (priv->identity_source);
|
|
Packit |
15f964 |
priv->identity_source = NULL;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (priv->transport_source != NULL) {
|
|
Packit |
15f964 |
g_signal_handler_disconnect (
|
|
Packit |
15f964 |
priv->transport_source,
|
|
Packit |
15f964 |
priv->transport_source_changed_id);
|
|
Packit |
15f964 |
g_object_unref (priv->transport_source);
|
|
Packit |
15f964 |
priv->transport_source = NULL;
|
|
Packit |
15f964 |
priv->transport_source_changed_id = 0;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (priv->account_backend != NULL) {
|
|
Packit |
15f964 |
g_object_unref (priv->account_backend);
|
|
Packit |
15f964 |
priv->account_backend = NULL;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (priv->transport_backend != NULL) {
|
|
Packit |
15f964 |
g_object_unref (priv->transport_backend);
|
|
Packit |
15f964 |
priv->transport_backend = NULL;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Chain up to parent's dispose() method. */
|
|
Packit |
15f964 |
G_OBJECT_CLASS (e_mail_config_summary_page_parent_class)->
|
|
Packit |
15f964 |
dispose (object);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_constructed (GObject *object)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
EMailConfigSummaryPage *page;
|
|
Packit |
15f964 |
GtkLabel *label;
|
|
Packit |
15f964 |
GtkWidget *widget;
|
|
Packit |
15f964 |
GtkWidget *container;
|
|
Packit |
15f964 |
GtkWidget *main_box;
|
|
Packit |
15f964 |
GtkSizeGroup *size_group;
|
|
Packit |
15f964 |
const gchar *text;
|
|
Packit |
15f964 |
gchar *markup;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
page = E_MAIL_CONFIG_SUMMARY_PAGE (object);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Chain up to parent's constructed() method. */
|
|
Packit |
15f964 |
G_OBJECT_CLASS (e_mail_config_summary_page_parent_class)->constructed (object);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* This page is dense with information,
|
|
Packit |
15f964 |
* so put extra space between sections. */
|
|
Packit |
15f964 |
main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 24);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("This is a summary of the settings which will be used "
|
|
Packit |
15f964 |
"to access your mail.");
|
|
Packit |
15f964 |
widget = gtk_label_new (text);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/*** Account Information ***/
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_grid_new ();
|
|
Packit |
15f964 |
gtk_grid_set_row_spacing (GTK_GRID (widget), 6);
|
|
Packit |
15f964 |
gtk_grid_set_column_spacing (GTK_GRID (widget), 6);
|
|
Packit |
15f964 |
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
container = widget;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Account Information");
|
|
Packit |
15f964 |
markup = g_markup_printf_escaped ("%s", text);
|
|
Packit |
15f964 |
widget = gtk_label_new (markup);
|
|
Packit |
15f964 |
gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 0, 2, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
g_free (markup);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("_Name:");
|
|
Packit |
15f964 |
widget = gtk_label_new_with_mnemonic (text);
|
|
Packit |
15f964 |
gtk_widget_set_margin_left (widget, 12);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 1.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 1, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_entry_new ();
|
|
Packit |
15f964 |
gtk_widget_set_hexpand (widget, TRUE);
|
|
Packit |
15f964 |
gtk_label_set_mnemonic_widget (label, widget);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 1, 1, 1);
|
|
Packit |
15f964 |
page->priv->account_name_entry = GTK_ENTRY (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* This entry affects the "check-complete" result. */
|
|
Packit |
15f964 |
g_signal_connect_swapped (
|
|
Packit |
15f964 |
widget, "changed",
|
|
Packit |
15f964 |
G_CALLBACK (e_mail_config_page_changed), page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("The above name will be used to identify this account.\n"
|
|
Packit |
15f964 |
"Use for example, “Work” or “Personal”.");
|
|
Packit |
15f964 |
widget = gtk_label_new (text);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 2, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/*** Details ***/
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_grid_new ();
|
|
Packit |
15f964 |
gtk_grid_set_row_spacing (GTK_GRID (widget), 6);
|
|
Packit |
15f964 |
gtk_grid_set_column_spacing (GTK_GRID (widget), 12);
|
|
Packit |
15f964 |
gtk_box_pack_start (GTK_BOX (main_box), widget, FALSE, FALSE, 0);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
container = widget;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Personal Details");
|
|
Packit |
15f964 |
markup = g_markup_printf_escaped ("%s", text);
|
|
Packit |
15f964 |
widget = gtk_label_new (markup);
|
|
Packit |
15f964 |
gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 0, 3, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
g_free (markup);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Full Name:");
|
|
Packit |
15f964 |
widget = gtk_label_new (text);
|
|
Packit |
15f964 |
gtk_widget_set_margin_left (widget, 12);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 1.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 1, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 1, 2, 1);
|
|
Packit |
15f964 |
page->priv->name_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Email Address:");
|
|
Packit |
15f964 |
widget = gtk_label_new (text);
|
|
Packit |
15f964 |
gtk_widget_set_margin_left (widget, 12);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 1.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 2, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 2, 2, 1);
|
|
Packit |
15f964 |
page->priv->address_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Receiving");
|
|
Packit |
15f964 |
markup = g_markup_printf_escaped ("%s", text);
|
|
Packit |
15f964 |
widget = gtk_label_new (markup);
|
|
Packit |
15f964 |
gtk_widget_set_hexpand (widget, TRUE);
|
|
Packit |
15f964 |
gtk_widget_set_margin_top (widget, 6);
|
|
Packit |
15f964 |
gtk_size_group_add_widget (size_group, widget);
|
|
Packit |
15f964 |
gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 3, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
g_free (markup);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Sending");
|
|
Packit |
15f964 |
markup = g_markup_printf_escaped ("%s", text);
|
|
Packit |
15f964 |
widget = gtk_label_new (markup);
|
|
Packit |
15f964 |
gtk_widget_set_hexpand (widget, TRUE);
|
|
Packit |
15f964 |
gtk_widget_set_margin_top (widget, 6);
|
|
Packit |
15f964 |
gtk_size_group_add_widget (size_group, widget);
|
|
Packit |
15f964 |
gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 2, 3, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
g_free (markup);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Server Type:");
|
|
Packit |
15f964 |
widget = gtk_label_new (text);
|
|
Packit |
15f964 |
gtk_widget_set_margin_left (widget, 12);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 1.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 4, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 4, 1, 1);
|
|
Packit |
15f964 |
page->priv->recv_backend_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 2, 4, 1, 1);
|
|
Packit |
15f964 |
page->priv->send_backend_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Server:");
|
|
Packit |
15f964 |
widget = gtk_label_new (text);
|
|
Packit |
15f964 |
gtk_widget_set_margin_left (widget, 12);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 1.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 5, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 5, 1, 1);
|
|
Packit |
15f964 |
page->priv->recv_host_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 2, 5, 1, 1);
|
|
Packit |
15f964 |
page->priv->send_host_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Username:");
|
|
Packit |
15f964 |
widget = gtk_label_new (text);
|
|
Packit |
15f964 |
gtk_widget_set_margin_left (widget, 12);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 1.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 6, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 6, 1, 1);
|
|
Packit |
15f964 |
page->priv->recv_user_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 2, 6, 1, 1);
|
|
Packit |
15f964 |
page->priv->send_user_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
text = _("Security:");
|
|
Packit |
15f964 |
widget = gtk_label_new (text);
|
|
Packit |
15f964 |
gtk_widget_set_margin_left (widget, 12);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 1.0, 0.5);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 0, 7, 1, 1);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 1, 7, 1, 1);
|
|
Packit |
15f964 |
page->priv->recv_security_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
widget = gtk_label_new (NULL);
|
|
Packit |
15f964 |
gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5);
|
|
Packit |
15f964 |
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
|
Packit |
15f964 |
gtk_grid_attach (GTK_GRID (container), widget, 2, 7, 1, 1);
|
|
Packit |
15f964 |
page->priv->send_security_label = GTK_LABEL (widget);
|
|
Packit |
15f964 |
gtk_widget_show (widget);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_unref (size_group);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
page->priv->main_box = GTK_BOX (main_box);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
e_mail_config_page_set_content (E_MAIL_CONFIG_PAGE (page), main_box);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
e_extensible_load_extensions (E_EXTENSIBLE (page));
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_refresh (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
EMailConfigSummaryPagePrivate *priv;
|
|
Packit |
15f964 |
ESource *source;
|
|
Packit |
15f964 |
gboolean account_is_transport = FALSE;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
priv = E_MAIL_CONFIG_SUMMARY_PAGE_GET_PRIVATE (page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Clear all labels. */
|
|
Packit |
15f964 |
gtk_label_set_text (priv->name_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->address_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->recv_backend_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->recv_host_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->recv_user_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->recv_security_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->send_backend_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->send_host_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->send_user_label, "");
|
|
Packit |
15f964 |
gtk_label_set_text (priv->send_security_label, "");
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
source = e_mail_config_summary_page_get_identity_source (page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (source != NULL) {
|
|
Packit |
15f964 |
ESourceMailIdentity *extension;
|
|
Packit |
15f964 |
const gchar *extension_name;
|
|
Packit |
15f964 |
const gchar *value;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension_name = E_SOURCE_EXTENSION_MAIL_IDENTITY;
|
|
Packit |
15f964 |
extension = e_source_get_extension (source, extension_name);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
value = e_source_mail_identity_get_name (extension);
|
|
Packit |
15f964 |
gtk_label_set_text (priv->name_label, value);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
value = e_source_mail_identity_get_address (extension);
|
|
Packit |
15f964 |
gtk_label_set_text (priv->address_label, value);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
source = e_mail_config_summary_page_get_account_source (page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (source != NULL) {
|
|
Packit |
15f964 |
ESourceBackend *extension;
|
|
Packit |
15f964 |
const gchar *extension_name;
|
|
Packit |
15f964 |
const gchar *value;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension_name = E_SOURCE_EXTENSION_MAIL_ACCOUNT;
|
|
Packit |
15f964 |
extension = e_source_get_extension (source, extension_name);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
value = e_source_backend_get_backend_name (extension);
|
|
Packit |
15f964 |
gtk_label_set_text (priv->recv_backend_label, value);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
mail_config_summary_page_refresh_auth_labels (
|
|
Packit |
15f964 |
source,
|
|
Packit |
15f964 |
priv->recv_host_label,
|
|
Packit |
15f964 |
priv->recv_user_label);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
mail_config_summary_page_refresh_security_label (
|
|
Packit |
15f964 |
source,
|
|
Packit |
15f964 |
priv->recv_security_label);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension_name = E_SOURCE_EXTENSION_MAIL_TRANSPORT;
|
|
Packit |
15f964 |
if (e_source_has_extension (source, extension_name))
|
|
Packit |
15f964 |
account_is_transport = TRUE;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (account_is_transport)
|
|
Packit |
15f964 |
source = e_mail_config_summary_page_get_account_source (page);
|
|
Packit |
15f964 |
else
|
|
Packit |
15f964 |
source = e_mail_config_summary_page_get_transport_source (page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (source != NULL) {
|
|
Packit |
15f964 |
ESourceBackend *extension;
|
|
Packit |
15f964 |
const gchar *extension_name;
|
|
Packit |
15f964 |
const gchar *value;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension_name = E_SOURCE_EXTENSION_MAIL_TRANSPORT;
|
|
Packit |
15f964 |
extension = e_source_get_extension (source, extension_name);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
value = e_source_backend_get_backend_name (extension);
|
|
Packit |
15f964 |
gtk_label_set_text (priv->send_backend_label, value);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
mail_config_summary_page_refresh_auth_labels (
|
|
Packit |
15f964 |
source,
|
|
Packit |
15f964 |
priv->send_host_label,
|
|
Packit |
15f964 |
priv->send_user_label);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
mail_config_summary_page_refresh_security_label (
|
|
Packit |
15f964 |
source,
|
|
Packit |
15f964 |
priv->send_security_label);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
e_mail_config_page_changed (E_MAIL_CONFIG_PAGE (page));
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static gboolean
|
|
Packit |
15f964 |
mail_config_summary_page_check_complete (EMailConfigPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
EMailConfigSummaryPagePrivate *priv;
|
|
Packit |
15f964 |
gchar *stripped_text;
|
|
Packit |
15f964 |
const gchar *text;
|
|
Packit |
15f964 |
gboolean complete;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
priv = E_MAIL_CONFIG_SUMMARY_PAGE_GET_PRIVATE (page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Strip the account name of leading and trailing
|
|
Packit |
15f964 |
* whitespace as e_source_set_display_name() does. */
|
|
Packit |
15f964 |
text = gtk_entry_get_text (priv->account_name_entry);
|
|
Packit |
15f964 |
stripped_text = g_strstrip (g_strdup ((text != NULL) ? text : ""));
|
|
Packit |
15f964 |
complete = (*stripped_text != '\0');
|
|
Packit |
15f964 |
g_free (stripped_text);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
e_util_set_entry_issue_hint (GTK_WIDGET (priv->account_name_entry), complete ? NULL : _("Account Name cannot be empty"));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (complete) {
|
|
Packit |
15f964 |
gboolean recv_is_none, send_is_none;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
recv_is_none = gtk_widget_get_visible (GTK_WIDGET (priv->recv_backend_label)) &&
|
|
Packit |
15f964 |
g_strcmp0 (gtk_label_get_text (priv->recv_backend_label), "none") == 0;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
send_is_none = gtk_widget_get_visible (GTK_WIDGET (priv->send_backend_label)) &&
|
|
Packit |
15f964 |
g_strcmp0 (gtk_label_get_text (priv->send_backend_label), "none") == 0;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
complete = !recv_is_none || !send_is_none;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
e_util_set_entry_issue_hint (GTK_WIDGET (priv->account_name_entry), complete ? NULL : _("Cannot have both receiving and sending parts set to None"));
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
return complete;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
mail_config_summary_page_commit_changes (EMailConfigPage *page,
|
|
Packit |
15f964 |
GQueue *source_queue)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
EMailConfigSummaryPagePrivate *priv;
|
|
Packit |
15f964 |
EMailConfigServiceBackend *backend;
|
|
Packit |
15f964 |
ESource *account_source;
|
|
Packit |
15f964 |
ESource *identity_source;
|
|
Packit |
15f964 |
ESource *transport_source;
|
|
Packit |
15f964 |
ESource *collection_source;
|
|
Packit |
15f964 |
ESourceExtension *extension;
|
|
Packit |
15f964 |
const gchar *extension_name;
|
|
Packit |
15f964 |
const gchar *parent_uid;
|
|
Packit |
15f964 |
const gchar *text;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
priv = E_MAIL_CONFIG_SUMMARY_PAGE_GET_PRIVATE (page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
backend = e_mail_config_summary_page_get_account_backend (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (page));
|
|
Packit |
15f964 |
account_source =
|
|
Packit |
15f964 |
e_mail_config_service_backend_get_source (backend);
|
|
Packit |
15f964 |
collection_source =
|
|
Packit |
15f964 |
e_mail_config_service_backend_get_collection (backend);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* The transport backend is NULL when the Sending Page is hidden. */
|
|
Packit |
15f964 |
backend = e_mail_config_summary_page_get_transport_backend (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (page));
|
|
Packit |
15f964 |
transport_source = (backend != NULL) ?
|
|
Packit |
15f964 |
e_mail_config_service_backend_get_source (backend) : NULL;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
identity_source = e_mail_config_summary_page_get_identity_source (
|
|
Packit |
15f964 |
E_MAIL_CONFIG_SUMMARY_PAGE (page));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* This should propagate to the other sources through bindings. */
|
|
Packit |
15f964 |
text = gtk_entry_get_text (priv->account_name_entry);
|
|
Packit |
15f964 |
e_source_set_display_name (identity_source, text);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
/* Setup parent/child relationships and cross-references. */
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (collection_source != NULL) {
|
|
Packit |
15f964 |
parent_uid = e_source_get_uid (collection_source);
|
|
Packit |
15f964 |
e_source_set_parent (account_source, parent_uid);
|
|
Packit |
15f964 |
e_source_set_parent (identity_source, parent_uid);
|
|
Packit |
15f964 |
if (transport_source != NULL)
|
|
Packit |
15f964 |
e_source_set_parent (transport_source, parent_uid);
|
|
Packit |
15f964 |
} else {
|
|
Packit |
15f964 |
parent_uid = e_source_get_uid (account_source);
|
|
Packit |
15f964 |
e_source_set_parent (identity_source, parent_uid);
|
|
Packit |
15f964 |
if (transport_source != NULL)
|
|
Packit |
15f964 |
e_source_set_parent (transport_source, parent_uid);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension_name = E_SOURCE_EXTENSION_MAIL_ACCOUNT;
|
|
Packit |
15f964 |
extension = e_source_get_extension (account_source, extension_name);
|
|
Packit |
15f964 |
e_source_mail_account_set_identity_uid (
|
|
Packit |
15f964 |
E_SOURCE_MAIL_ACCOUNT (extension),
|
|
Packit |
15f964 |
e_source_get_uid (identity_source));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
extension_name = E_SOURCE_EXTENSION_MAIL_SUBMISSION;
|
|
Packit |
15f964 |
extension = e_source_get_extension (identity_source, extension_name);
|
|
Packit |
15f964 |
if (transport_source != NULL)
|
|
Packit |
15f964 |
e_source_mail_submission_set_transport_uid (
|
|
Packit |
15f964 |
E_SOURCE_MAIL_SUBMISSION (extension),
|
|
Packit |
15f964 |
e_source_get_uid (transport_source));
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
e_mail_config_summary_page_class_init (EMailConfigSummaryPageClass *class)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
GObjectClass *object_class;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_type_class_add_private (
|
|
Packit |
15f964 |
class, sizeof (EMailConfigSummaryPagePrivate));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
object_class = G_OBJECT_CLASS (class);
|
|
Packit |
15f964 |
object_class->set_property = mail_config_summary_page_set_property;
|
|
Packit |
15f964 |
object_class->get_property = mail_config_summary_page_get_property;
|
|
Packit |
15f964 |
object_class->dispose = mail_config_summary_page_dispose;
|
|
Packit |
15f964 |
object_class->constructed = mail_config_summary_page_constructed;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
class->refresh = mail_config_summary_page_refresh;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_class_install_property (
|
|
Packit |
15f964 |
object_class,
|
|
Packit |
15f964 |
PROP_ACCOUNT_BACKEND,
|
|
Packit |
15f964 |
g_param_spec_object (
|
|
Packit |
15f964 |
"account-backend",
|
|
Packit |
15f964 |
"Account Backend",
|
|
Packit |
15f964 |
"Active mail account service backend",
|
|
Packit |
15f964 |
E_TYPE_MAIL_CONFIG_SERVICE_BACKEND,
|
|
Packit |
15f964 |
G_PARAM_READWRITE |
|
|
Packit |
15f964 |
G_PARAM_STATIC_STRINGS));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_class_install_property (
|
|
Packit |
15f964 |
object_class,
|
|
Packit |
15f964 |
PROP_ACCOUNT_SOURCE,
|
|
Packit |
15f964 |
g_param_spec_object (
|
|
Packit |
15f964 |
"account-source",
|
|
Packit |
15f964 |
"Account Source",
|
|
Packit |
15f964 |
"Mail account source being edited",
|
|
Packit |
15f964 |
E_TYPE_SOURCE,
|
|
Packit |
15f964 |
G_PARAM_READABLE |
|
|
Packit |
15f964 |
G_PARAM_STATIC_STRINGS));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_class_install_property (
|
|
Packit |
15f964 |
object_class,
|
|
Packit |
15f964 |
PROP_IDENTITY_SOURCE,
|
|
Packit |
15f964 |
g_param_spec_object (
|
|
Packit |
15f964 |
"identity-source",
|
|
Packit |
15f964 |
"Identity Source",
|
|
Packit |
15f964 |
"Mail identity source being edited",
|
|
Packit |
15f964 |
E_TYPE_SOURCE,
|
|
Packit |
15f964 |
G_PARAM_READWRITE |
|
|
Packit |
15f964 |
G_PARAM_STATIC_STRINGS));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_class_install_property (
|
|
Packit |
15f964 |
object_class,
|
|
Packit |
15f964 |
PROP_TRANSPORT_BACKEND,
|
|
Packit |
15f964 |
g_param_spec_object (
|
|
Packit |
15f964 |
"transport-backend",
|
|
Packit |
15f964 |
"Transport Backend",
|
|
Packit |
15f964 |
"Active mail transport service backend",
|
|
Packit |
15f964 |
E_TYPE_MAIL_CONFIG_SERVICE_BACKEND,
|
|
Packit |
15f964 |
G_PARAM_READWRITE |
|
|
Packit |
15f964 |
G_PARAM_STATIC_STRINGS));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_class_install_property (
|
|
Packit |
15f964 |
object_class,
|
|
Packit |
15f964 |
PROP_TRANSPORT_SOURCE,
|
|
Packit |
15f964 |
g_param_spec_object (
|
|
Packit |
15f964 |
"transport-source",
|
|
Packit |
15f964 |
"Transport Source",
|
|
Packit |
15f964 |
"Mail transport source being edited",
|
|
Packit |
15f964 |
E_TYPE_SOURCE,
|
|
Packit |
15f964 |
G_PARAM_READABLE |
|
|
Packit |
15f964 |
G_PARAM_STATIC_STRINGS));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
signals[REFRESH] = g_signal_new (
|
|
Packit |
15f964 |
"refresh",
|
|
Packit |
15f964 |
G_TYPE_FROM_CLASS (class),
|
|
Packit |
15f964 |
G_SIGNAL_RUN_LAST,
|
|
Packit |
15f964 |
G_STRUCT_OFFSET (EMailConfigSummaryPageClass, refresh),
|
|
Packit |
15f964 |
NULL, NULL,
|
|
Packit |
15f964 |
g_cclosure_marshal_VOID__VOID,
|
|
Packit |
15f964 |
G_TYPE_NONE, 0);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
e_mail_config_summary_page_interface_init (EMailConfigPageInterface *iface)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
iface->title = _("Account Summary");
|
|
Packit |
15f964 |
iface->sort_order = E_MAIL_CONFIG_SUMMARY_PAGE_SORT_ORDER;
|
|
Packit |
15f964 |
iface->check_complete = mail_config_summary_page_check_complete;
|
|
Packit |
15f964 |
iface->commit_changes = mail_config_summary_page_commit_changes;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
static void
|
|
Packit |
15f964 |
e_mail_config_summary_page_init (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
page->priv = E_MAIL_CONFIG_SUMMARY_PAGE_GET_PRIVATE (page);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
EMailConfigPage *
|
|
Packit |
15f964 |
e_mail_config_summary_page_new (void)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
return g_object_new (E_TYPE_MAIL_CONFIG_SUMMARY_PAGE, NULL);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
GtkBox *
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_internal_box (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_val_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page), NULL);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
return page->priv->main_box;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
0d0b26 |
const gchar *
|
|
Packit |
0d0b26 |
e_mail_config_summary_page_get_account_name (EMailConfigSummaryPage *page)
|
|
Packit |
0d0b26 |
{
|
|
Packit |
0d0b26 |
g_return_val_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page), NULL);
|
|
Packit |
0d0b26 |
|
|
Packit |
0d0b26 |
return gtk_entry_get_text (page->priv->account_name_entry);
|
|
Packit |
0d0b26 |
}
|
|
Packit |
0d0b26 |
|
|
Packit |
15f964 |
void
|
|
Packit |
15f964 |
e_mail_config_summary_page_refresh (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_signal_emit (page, signals[REFRESH], 0);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
EMailConfigServiceBackend *
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_account_backend (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_val_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page), NULL);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
return page->priv->account_backend;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
void
|
|
Packit |
15f964 |
e_mail_config_summary_page_set_account_backend (EMailConfigSummaryPage *page,
|
|
Packit |
15f964 |
EMailConfigServiceBackend *backend)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (backend != NULL) {
|
|
Packit |
15f964 |
g_return_if_fail (E_IS_MAIL_CONFIG_SERVICE_BACKEND (backend));
|
|
Packit |
15f964 |
g_object_ref (backend);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (page->priv->account_backend != NULL)
|
|
Packit |
15f964 |
g_object_unref (page->priv->account_backend);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
page->priv->account_backend = backend;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (page->priv->account_source != NULL) {
|
|
Packit |
15f964 |
g_signal_handler_disconnect (
|
|
Packit |
15f964 |
page->priv->account_source,
|
|
Packit |
15f964 |
page->priv->account_source_changed_id);
|
|
Packit |
15f964 |
g_object_unref (page->priv->account_source);
|
|
Packit |
15f964 |
page->priv->account_source = NULL;
|
|
Packit |
15f964 |
page->priv->account_source_changed_id = 0;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (backend != NULL) {
|
|
Packit |
15f964 |
ESource *source;
|
|
Packit |
15f964 |
gulong handler_id;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
source = e_mail_config_service_backend_get_source (backend);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
handler_id = g_signal_connect (
|
|
Packit |
15f964 |
source, "changed",
|
|
Packit |
15f964 |
G_CALLBACK (mail_config_summary_page_source_changed),
|
|
Packit |
15f964 |
page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
page->priv->account_source = g_object_ref (source);
|
|
Packit |
15f964 |
page->priv->account_source_changed_id = handler_id;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_freeze_notify (G_OBJECT (page));
|
|
Packit |
15f964 |
g_object_notify (G_OBJECT (page), "account-backend");
|
|
Packit |
15f964 |
g_object_notify (G_OBJECT (page), "account-source");
|
|
Packit |
15f964 |
g_object_thaw_notify (G_OBJECT (page));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
e_mail_config_summary_page_refresh (page);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
ESource *
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_account_source (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_val_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page), NULL);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
return page->priv->account_source;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
ESource *
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_identity_source (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_val_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page), NULL);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
return page->priv->identity_source;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
void
|
|
Packit |
15f964 |
e_mail_config_summary_page_set_identity_source (EMailConfigSummaryPage *page,
|
|
Packit |
15f964 |
ESource *identity_source)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (page->priv->identity_source == identity_source)
|
|
Packit |
15f964 |
return;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (identity_source != NULL) {
|
|
Packit |
15f964 |
g_return_if_fail (E_IS_SOURCE (identity_source));
|
|
Packit |
15f964 |
g_object_ref (identity_source);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (page->priv->identity_source != NULL) {
|
|
Packit |
15f964 |
g_signal_handler_disconnect (
|
|
Packit |
15f964 |
page->priv->identity_source,
|
|
Packit |
15f964 |
page->priv->identity_source_changed_id);
|
|
Packit |
15f964 |
g_object_unref (page->priv->identity_source);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
page->priv->identity_source = identity_source;
|
|
Packit |
15f964 |
page->priv->identity_source_changed_id = 0;
|
|
Packit |
15f964 |
|
|
Packit |
0d0b26 |
if (page->priv->account_name_binding) {
|
|
Packit |
0d0b26 |
g_binding_unbind (page->priv->account_name_binding);
|
|
Packit |
0d0b26 |
page->priv->account_name_binding = NULL;
|
|
Packit |
0d0b26 |
}
|
|
Packit |
0d0b26 |
|
|
Packit |
15f964 |
if (identity_source != NULL) {
|
|
Packit |
15f964 |
gulong handler_id;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
handler_id = g_signal_connect (
|
|
Packit |
15f964 |
identity_source, "changed",
|
|
Packit |
15f964 |
G_CALLBACK (mail_config_summary_page_source_changed),
|
|
Packit |
15f964 |
page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
page->priv->identity_source_changed_id = handler_id;
|
|
Packit |
0d0b26 |
|
|
Packit |
0d0b26 |
page->priv->account_name_binding =
|
|
Packit |
0d0b26 |
e_binding_bind_property (identity_source, "display-name",
|
|
Packit |
0d0b26 |
page->priv->account_name_entry, "text",
|
|
Packit |
0d0b26 |
G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_notify (G_OBJECT (page), "identity-source");
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
e_mail_config_summary_page_refresh (page);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
EMailConfigServiceBackend *
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_transport_backend (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_val_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page), NULL);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
return page->priv->transport_backend;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
void
|
|
Packit |
15f964 |
e_mail_config_summary_page_set_transport_backend (EMailConfigSummaryPage *page,
|
|
Packit |
15f964 |
EMailConfigServiceBackend *backend)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (backend != NULL) {
|
|
Packit |
15f964 |
g_return_if_fail (E_IS_MAIL_CONFIG_SERVICE_BACKEND (backend));
|
|
Packit |
15f964 |
g_object_ref (backend);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (page->priv->transport_backend != NULL)
|
|
Packit |
15f964 |
g_object_unref (page->priv->transport_backend);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
page->priv->transport_backend = backend;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (page->priv->transport_source != NULL) {
|
|
Packit |
15f964 |
g_signal_handler_disconnect (
|
|
Packit |
15f964 |
page->priv->transport_source,
|
|
Packit |
15f964 |
page->priv->transport_source_changed_id);
|
|
Packit |
15f964 |
g_object_unref (page->priv->transport_source);
|
|
Packit |
15f964 |
page->priv->transport_source = NULL;
|
|
Packit |
15f964 |
page->priv->transport_source_changed_id = 0;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
if (backend != NULL) {
|
|
Packit |
15f964 |
ESource *source;
|
|
Packit |
15f964 |
gulong handler_id;
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
source = e_mail_config_service_backend_get_source (backend);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
handler_id = g_signal_connect (
|
|
Packit |
15f964 |
source, "changed",
|
|
Packit |
15f964 |
G_CALLBACK (mail_config_summary_page_source_changed),
|
|
Packit |
15f964 |
page);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
page->priv->transport_source = g_object_ref (source);
|
|
Packit |
15f964 |
page->priv->transport_source_changed_id = handler_id;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
g_object_freeze_notify (G_OBJECT (page));
|
|
Packit |
15f964 |
g_object_notify (G_OBJECT (page), "transport-backend");
|
|
Packit |
15f964 |
g_object_notify (G_OBJECT (page), "transport-source");
|
|
Packit |
15f964 |
g_object_thaw_notify (G_OBJECT (page));
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
e_mail_config_summary_page_refresh (page);
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
ESource *
|
|
Packit |
15f964 |
e_mail_config_summary_page_get_transport_source (EMailConfigSummaryPage *page)
|
|
Packit |
15f964 |
{
|
|
Packit |
15f964 |
g_return_val_if_fail (E_IS_MAIL_CONFIG_SUMMARY_PAGE (page), NULL);
|
|
Packit |
15f964 |
|
|
Packit |
15f964 |
return page->priv->transport_source;
|
|
Packit |
15f964 |
}
|
|
Packit |
15f964 |
|