aboutsummaryrefslogtreecommitdiffstats
path: root/composer/e-msg-composer-hdrs.c
diff options
context:
space:
mode:
Diffstat (limited to 'composer/e-msg-composer-hdrs.c')
-rw-r--r--composer/e-msg-composer-hdrs.c354
1 files changed, 151 insertions, 203 deletions
diff --git a/composer/e-msg-composer-hdrs.c b/composer/e-msg-composer-hdrs.c
index 1db41d6d3d..a5e92ad2d0 100644
--- a/composer/e-msg-composer-hdrs.c
+++ b/composer/e-msg-composer-hdrs.c
@@ -66,7 +66,7 @@ typedef struct {
struct _EMsgComposerHdrsPrivate {
GNOME_Evolution_Addressbook_SelectNames corba_select_names;
-
+
/* The tooltips. */
GtkTooltips *tooltips;
@@ -87,7 +87,7 @@ enum {
LAST_SIGNAL
};
-static int signals[LAST_SIGNAL];
+static gint signals[LAST_SIGNAL];
static gboolean
@@ -139,7 +139,7 @@ e_msg_composer_hdrs_and_string_create (EMsgComposerHdrs *hdrs, const char *strin
emchas->string = g_strdup (string);
if (emchas->hdrs)
gtk_object_ref (GTK_OBJECT (emchas->hdrs));
-
+
return emchas;
}
@@ -168,15 +168,8 @@ static void
from_changed (GtkWidget *item, gpointer data)
{
EMsgComposerHdrs *hdrs = E_MSG_COMPOSER_HDRS (data);
- const char *reply_to;
hdrs->account = gtk_object_get_data (GTK_OBJECT (item), "account");
-
- /* we do this rather than calling e_msg_composer_hdrs_set_reply_to()
- because we don't want to change the visibility of the header */
- reply_to = hdrs->account->id->reply_to;
- e_entry_set_text (E_ENTRY (hdrs->priv->reply_to.entry), reply_to ? reply_to : "");
-
gtk_signal_emit (GTK_OBJECT (hdrs), signals [FROM_CHANGED]);
}
@@ -185,7 +178,7 @@ create_from_optionmenu (EMsgComposerHdrs *hdrs)
{
GtkWidget *omenu, *menu, *first = NULL;
const GSList *accounts;
- GtkWidget *item, *hbox;
+ GtkWidget *item;
int i = 0, history = 0;
int default_account;
@@ -209,6 +202,7 @@ create_from_optionmenu (EMsgComposerHdrs *hdrs)
}
if (account->id->address && *account->id->address) {
+
if (strcmp (account->name, account->id->address))
label = g_strdup_printf ("%s <%s> (%s)", account->id->name,
account->id->address, account->name);
@@ -234,7 +228,7 @@ create_from_optionmenu (EMsgComposerHdrs *hdrs)
gtk_menu_append (GTK_MENU (menu), item);
gtk_widget_show (item);
- i++;
+ ++i;
}
accounts = accounts->next;
@@ -247,14 +241,7 @@ create_from_optionmenu (EMsgComposerHdrs *hdrs)
gtk_signal_emit_by_name (GTK_OBJECT (first), "activate", hdrs);
}
- hbox = gtk_hbox_new (FALSE, 3);
- gtk_box_pack_start_defaults (GTK_BOX (hbox), omenu);
- gtk_widget_show (omenu);
- gtk_widget_show (hbox);
-
- gtk_object_set_data (GTK_OBJECT (hbox), "from_menu", omenu);
-
- return hbox;
+ return omenu;
}
static void
@@ -265,7 +252,7 @@ addressbook_entry_changed (BonoboListener *listener,
gpointer user_data)
{
EMsgComposerHdrs *hdrs = E_MSG_COMPOSER_HDRS (user_data);
-
+
gtk_signal_emit (GTK_OBJECT (hdrs), signals[HDRS_CHANGED]);
}
@@ -280,41 +267,41 @@ create_addressbook_entry (EMsgComposerHdrs *hdrs,
CORBA_Environment ev;
BonoboControlFrame *cf;
Bonobo_PropertyBag pb = CORBA_OBJECT_NIL;
-
+
priv = hdrs->priv;
corba_select_names = priv->corba_select_names;
-
+
CORBA_exception_init (&ev);
-
+
GNOME_Evolution_Addressbook_SelectNames_addSection (
corba_select_names, name, name, &ev);
if (ev._major != CORBA_NO_EXCEPTION) {
CORBA_exception_free (&ev);
return NULL;
}
-
+
corba_control =
GNOME_Evolution_Addressbook_SelectNames_getEntryBySection (
corba_select_names, name, &ev);
-
+
if (ev._major != CORBA_NO_EXCEPTION) {
CORBA_exception_free (&ev);
return NULL;
}
-
+
CORBA_exception_free (&ev);
-
+
control_widget = bonobo_widget_new_control_from_objref (
corba_control, CORBA_OBJECT_NIL);
-
+
cf = bonobo_widget_get_control_frame (BONOBO_WIDGET (control_widget));
pb = bonobo_control_frame_get_control_property_bag (cf, NULL);
-
+
bonobo_event_source_client_add_listener (
pb, addressbook_entry_changed,
"Bonobo/Property:change:entry_changed",
NULL, hdrs);
-
+
return control_widget;
}
@@ -334,28 +321,29 @@ header_new_recipient (EMsgComposerHdrs *hdrs, const gchar *name, const gchar *ti
e_msg_composer_hdrs_and_string_create(hdrs, name),
(GtkDestroyNotify) e_msg_composer_hdrs_and_string_free,
FALSE, FALSE);
-
+
gtk_tooltips_set_tip (
hdrs->priv->tooltips, ret.label,
_("Click here for the address book"),
NULL);
-
+
ret.entry = create_addressbook_entry (hdrs, name);
-
+
return ret;
}
static void
entry_changed (GtkWidget *entry, EMsgComposerHdrs *hdrs)
{
- char *subject, *tmp;
-
+ gchar *tmp;
+ gchar *subject;
+
tmp = e_msg_composer_hdrs_get_subject (hdrs);
subject = e_utf8_to_gtk_string (GTK_WIDGET (entry), tmp);
-
+
gtk_signal_emit (GTK_OBJECT (hdrs), signals[SUBJECT_CHANGED], subject);
g_free (tmp);
-
+
gtk_signal_emit (GTK_OBJECT (hdrs), signals[HDRS_CHANGED]);
}
@@ -363,13 +351,13 @@ static void
create_headers (EMsgComposerHdrs *hdrs)
{
EMsgComposerHdrsPrivate *priv = hdrs->priv;
-
+
/*
* From:
*/
priv->from.label = gtk_label_new (_("From:"));
priv->from.entry = create_from_optionmenu (hdrs);
-
+
/*
* Reply-To:
*/
@@ -380,7 +368,7 @@ create_headers (EMsgComposerHdrs *hdrs)
"use_ellipsis", TRUE,
"allow_newlines", FALSE,
NULL);
-
+
/*
* Subject:
*/
@@ -393,18 +381,18 @@ create_headers (EMsgComposerHdrs *hdrs)
NULL);
gtk_signal_connect (GTK_OBJECT (priv->subject.entry), "changed",
GTK_SIGNAL_FUNC (entry_changed), hdrs);
-
+
/*
* To: CC: and Bcc:
*/
priv->to = header_new_recipient (
hdrs, _("To:"),
_("Enter the recipients of the message"));
-
+
priv->cc = header_new_recipient (
hdrs, _("Cc:"),
_("Enter the addresses that will receive a carbon copy of the message"));
-
+
priv->bcc = header_new_recipient (
hdrs, _("Bcc:"),
_("Enter the addresses that will receive a carbon copy of "
@@ -428,7 +416,7 @@ attach_couple (EMsgComposerHdrs *hdrs, EMsgComposerHdrPair *pair, int line)
pad = GNOME_PAD;
else
pad = 2;
-
+
gtk_table_attach (GTK_TABLE (hdrs),
pair->label, 0, 1,
line, line + 1,
@@ -444,7 +432,7 @@ static void
attach_headers (EMsgComposerHdrs *hdrs)
{
EMsgComposerHdrsPrivate *p = hdrs->priv;
-
+
attach_couple (hdrs, &p->from, LINE_FROM);
attach_couple (hdrs, &p->reply_to, LINE_REPLYTO);
attach_couple (hdrs, &p->to, LINE_TO);
@@ -466,10 +454,10 @@ set_pair_visibility (EMsgComposerHdrs *h, EMsgComposerHdrPair *pair, gboolean vi
}
static void
-headers_set_visibility (EMsgComposerHdrs *h, int visible_flags)
+headers_set_visibility (EMsgComposerHdrs *h, gint visible_flags)
{
EMsgComposerHdrsPrivate *p = h->priv;
-
+
set_pair_visibility (h, &p->from, visible_flags & E_MSG_COMPOSER_VISIBLE_FROM);
set_pair_visibility (h, &p->reply_to, visible_flags & E_MSG_COMPOSER_VISIBLE_REPLYTO);
set_pair_visibility (h, &p->cc, visible_flags & E_MSG_COMPOSER_VISIBLE_CC);
@@ -478,21 +466,21 @@ headers_set_visibility (EMsgComposerHdrs *h, int visible_flags)
}
void
-e_msg_composer_set_hdrs_visible (EMsgComposerHdrs *hdrs, int visible_flags)
+e_msg_composer_set_hdrs_visible (EMsgComposerHdrs *hdrs, gint visible_flags)
{
g_return_if_fail (hdrs != NULL);
g_return_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs));
-
+
headers_set_visibility (hdrs, visible_flags);
gtk_widget_queue_resize (GTK_WIDGET (hdrs));
}
static void
-setup_headers (EMsgComposerHdrs *hdrs, int visible_flags)
+setup_headers (EMsgComposerHdrs *hdrs, gint visible_flags)
{
create_headers (hdrs);
attach_headers (hdrs);
-
+
/*
* To: is always visible
*/
@@ -511,19 +499,18 @@ destroy (GtkObject *object)
EMsgComposerHdrs *hdrs;
EMsgComposerHdrsPrivate *priv;
GSList *l;
-
+
hdrs = E_MSG_COMPOSER_HDRS (object);
priv = hdrs->priv;
-
+
if (priv->corba_select_names != CORBA_OBJECT_NIL) {
CORBA_Environment ev;
CORBA_exception_init (&ev);
bonobo_object_release_unref (priv->corba_select_names, &ev);
CORBA_exception_free (&ev);
}
-
+
gtk_object_destroy (GTK_OBJECT (priv->tooltips));
- gtk_object_unref (GTK_OBJECT (priv->tooltips));
l = priv->from_options;
while (l) {
@@ -548,12 +535,12 @@ static void
class_init (EMsgComposerHdrsClass *class)
{
GtkObjectClass *object_class;
-
+
object_class = GTK_OBJECT_CLASS (class);
object_class->destroy = destroy;
-
+
parent_class = gtk_type_class (gtk_table_get_type ());
-
+
signals[SHOW_ADDRESS_DIALOG] =
gtk_signal_new ("show_address_dialog",
GTK_RUN_LAST,
@@ -562,7 +549,7 @@ class_init (EMsgComposerHdrsClass *class)
show_address_dialog),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
-
+
signals[SUBJECT_CHANGED] =
gtk_signal_new ("subject_changed",
GTK_RUN_LAST,
@@ -572,7 +559,7 @@ class_init (EMsgComposerHdrsClass *class)
gtk_marshal_NONE__STRING,
GTK_TYPE_NONE,
1, GTK_TYPE_STRING);
-
+
signals[HDRS_CHANGED] =
gtk_signal_new ("hdrs_changed",
GTK_RUN_LAST,
@@ -581,7 +568,7 @@ class_init (EMsgComposerHdrsClass *class)
hdrs_changed),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
-
+
signals[FROM_CHANGED] =
gtk_signal_new ("from_changed",
GTK_RUN_LAST,
@@ -590,7 +577,7 @@ class_init (EMsgComposerHdrsClass *class)
from_changed),
gtk_marshal_NONE__NONE,
GTK_TYPE_NONE, 0);
-
+
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
}
@@ -598,11 +585,11 @@ static void
init (EMsgComposerHdrs *hdrs)
{
EMsgComposerHdrsPrivate *priv;
-
+
priv = g_new0 (EMsgComposerHdrsPrivate, 1);
-
+
priv->tooltips = gtk_tooltips_new ();
-
+
hdrs->priv = priv;
}
@@ -611,7 +598,7 @@ GtkType
e_msg_composer_hdrs_get_type (void)
{
static GtkType type = 0;
-
+
if (type == 0) {
static const GtkTypeInfo info = {
"EMsgComposerHdrs",
@@ -623,15 +610,15 @@ e_msg_composer_hdrs_get_type (void)
/* reserved_2 */ NULL,
(GtkClassInitFunc) NULL,
};
-
+
type = gtk_type_unique (gtk_table_get_type (), &info);
}
-
+
return type;
}
GtkWidget *
-e_msg_composer_hdrs_new (int visible_flags)
+e_msg_composer_hdrs_new (gint visible_flags)
{
EMsgComposerHdrs *new;
EMsgComposerHdrsPrivate *priv;
@@ -639,13 +626,13 @@ e_msg_composer_hdrs_new (int visible_flags)
new = gtk_type_new (e_msg_composer_hdrs_get_type ());
priv = new->priv;
- if (!setup_corba (new)) {
+ if (! setup_corba (new)) {
gtk_widget_destroy (GTK_WIDGET (new));
return NULL;
}
setup_headers (new, visible_flags);
-
+
return GTK_WIDGET (new);
}
@@ -653,26 +640,27 @@ static void
set_recipients_from_destv (CamelMimeMessage *msg,
EDestination **to_destv,
EDestination **cc_destv,
- EDestination **bcc_destv,
- gboolean redirect)
+ EDestination **bcc_destv)
{
CamelInternetAddress *to_addr;
CamelInternetAddress *cc_addr;
CamelInternetAddress *bcc_addr;
CamelInternetAddress *target;
- const char *text_addr, *header;
+ const gchar *text_addr;
+ gint i;
gboolean seen_hidden_list = FALSE;
- int i;
-
+
to_addr = camel_internet_address_new ();
cc_addr = camel_internet_address_new ();
bcc_addr = camel_internet_address_new ();
-
+
if (to_destv) {
for (i = 0; to_destv[i] != NULL; ++i) {
text_addr = e_destination_get_address (to_destv[i]);
-
+
+
if (text_addr && *text_addr) {
+
target = to_addr;
if (e_destination_is_evolution_list (to_destv[i])
&& !e_destination_list_show_addresses (to_destv[i])) {
@@ -684,11 +672,12 @@ set_recipients_from_destv (CamelMimeMessage *msg,
}
}
}
-
+
if (cc_destv) {
for (i = 0; cc_destv[i] != NULL; ++i) {
text_addr = e_destination_get_address (cc_destv[i]);
if (text_addr && *text_addr) {
+
target = cc_addr;
if (e_destination_is_evolution_list (cc_destv[i])
&& !e_destination_list_show_addresses (cc_destv[i])) {
@@ -700,45 +689,41 @@ set_recipients_from_destv (CamelMimeMessage *msg,
}
}
}
-
+
if (bcc_destv) {
for (i = 0; bcc_destv[i] != NULL; ++i) {
text_addr = e_destination_get_address (bcc_destv[i]);
- if (text_addr && *text_addr) {
+ if (text_addr && *text_addr) {
camel_address_decode (CAMEL_ADDRESS (bcc_addr), text_addr);
}
}
}
-
- header = redirect ? CAMEL_RECIPIENT_TYPE_RESENT_TO : CAMEL_RECIPIENT_TYPE_TO;
+
if (camel_address_length (CAMEL_ADDRESS (to_addr)) > 0) {
- camel_mime_message_set_recipients (msg, header, to_addr);
+ camel_mime_message_set_recipients (msg, CAMEL_RECIPIENT_TYPE_TO, to_addr);
} else if (seen_hidden_list) {
- camel_medium_set_header (CAMEL_MEDIUM (msg), header, "Undisclosed-Recipient:;");
+ camel_medium_set_header (CAMEL_MEDIUM (msg), CAMEL_RECIPIENT_TYPE_TO, "Undisclosed-Recipient:;");
}
-
- header = redirect ? CAMEL_RECIPIENT_TYPE_RESENT_CC : CAMEL_RECIPIENT_TYPE_CC;
+
if (camel_address_length (CAMEL_ADDRESS (cc_addr)) > 0) {
- camel_mime_message_set_recipients (msg, header, cc_addr);
+ camel_mime_message_set_recipients (msg, CAMEL_RECIPIENT_TYPE_CC, cc_addr);
}
-
- header = redirect ? CAMEL_RECIPIENT_TYPE_RESENT_BCC : CAMEL_RECIPIENT_TYPE_BCC;
+
if (camel_address_length (CAMEL_ADDRESS (bcc_addr)) > 0) {
- camel_mime_message_set_recipients (msg, header, bcc_addr);
+ camel_mime_message_set_recipients (msg, CAMEL_RECIPIENT_TYPE_BCC, bcc_addr);
}
-
+
camel_object_unref (CAMEL_OBJECT (to_addr));
camel_object_unref (CAMEL_OBJECT (cc_addr));
camel_object_unref (CAMEL_OBJECT (bcc_addr));
}
-static void
-e_msg_composer_hdrs_to_message_internal (EMsgComposerHdrs *hdrs,
- CamelMimeMessage *msg,
- gboolean redirect)
+void
+e_msg_composer_hdrs_to_message (EMsgComposerHdrs *hdrs,
+ CamelMimeMessage *msg)
{
CamelInternetAddress *addr;
- char *subject, *header;
+ gchar *subject;
EDestination **to_destv, **cc_destv, **bcc_destv;
g_return_if_fail (hdrs != NULL);
@@ -751,13 +736,7 @@ e_msg_composer_hdrs_to_message_internal (EMsgComposerHdrs *hdrs,
g_free (subject);
addr = e_msg_composer_hdrs_get_from (hdrs);
- if (redirect) {
- header = camel_address_format (CAMEL_ADDRESS (addr));
- camel_medium_set_header (CAMEL_MEDIUM (msg), "Resent-From", header);
- g_free (header);
- } else {
- camel_mime_message_set_from (msg, addr);
- }
+ camel_mime_message_set_from (msg, addr);
camel_object_unref (CAMEL_OBJECT (addr));
addr = e_msg_composer_hdrs_get_reply_to (hdrs);
@@ -765,36 +744,21 @@ e_msg_composer_hdrs_to_message_internal (EMsgComposerHdrs *hdrs,
camel_mime_message_set_reply_to (msg, addr);
camel_object_unref (CAMEL_OBJECT (addr));
}
-
+
to_destv = e_msg_composer_hdrs_get_to (hdrs);
cc_destv = e_msg_composer_hdrs_get_cc (hdrs);
bcc_destv = e_msg_composer_hdrs_get_bcc (hdrs);
-
+
/* Attach destinations to the message. */
-
- set_recipients_from_destv (msg, to_destv, cc_destv, bcc_destv, redirect);
-
+
+ set_recipients_from_destv (msg, to_destv, cc_destv, bcc_destv);
+
e_destination_freev (to_destv);
e_destination_freev (cc_destv);
e_destination_freev (bcc_destv);
}
-
-void
-e_msg_composer_hdrs_to_message (EMsgComposerHdrs *hdrs,
- CamelMimeMessage *msg)
-{
- e_msg_composer_hdrs_to_message_internal (hdrs, msg, FALSE);
-}
-
-
-void
-e_msg_composer_hdrs_to_redirect (EMsgComposerHdrs *hdrs,
- CamelMimeMessage *msg)
-{
- e_msg_composer_hdrs_to_message_internal (hdrs, msg, TRUE);
-}
-
+
/* FIXME: yea, this could be better... but it's doubtful it'll be used much */
void
@@ -810,7 +774,7 @@ e_msg_composer_hdrs_set_from_account (EMsgComposerHdrs *hdrs,
g_return_if_fail (hdrs != NULL);
g_return_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs));
- omenu = GTK_OPTION_MENU (gtk_object_get_data (GTK_OBJECT (hdrs->priv->from.entry), "from_menu"));
+ omenu = GTK_OPTION_MENU (hdrs->priv->from.entry);
if (account_name)
default_account = -1;
@@ -824,16 +788,10 @@ e_msg_composer_hdrs_set_from_account (EMsgComposerHdrs *hdrs,
item = l->data;
account = gtk_object_get_data (GTK_OBJECT (item), "account");
- if (account_name) {
- if (account->name && !strcmp (account_name, account->name)) {
- /* set the correct optionlist item */
- gtk_option_menu_set_history (omenu, i);
- gtk_signal_emit_by_name (GTK_OBJECT (item), "activate", hdrs);
-
- return;
- }
- } else if (i == default_account) {
- /* set the default optionlist item */
+ if (i == default_account ||
+ (account_name && ((account->name && !strcmp (account_name, account->name))
+ || (account->id->address && strstr (account_name, account->id->address))))) {
+ /* set the correct optionlist item */
gtk_option_menu_set_history (omenu, i);
gtk_signal_emit_by_name (GTK_OBJECT (item), "activate", hdrs);
@@ -849,22 +807,20 @@ void
e_msg_composer_hdrs_set_reply_to (EMsgComposerHdrs *hdrs,
const char *reply_to)
{
+ g_return_if_fail (hdrs != NULL);
g_return_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs));
- e_entry_set_text (E_ENTRY (hdrs->priv->reply_to.entry), reply_to ? reply_to : "");
-
- if (reply_to && *reply_to)
- set_pair_visibility (hdrs, &hdrs->priv->cc, TRUE);
+ bonobo_widget_set_property (BONOBO_WIDGET (hdrs->priv->reply_to.entry),
+ "text", reply_to, NULL);
}
void
e_msg_composer_hdrs_set_to (EMsgComposerHdrs *hdrs,
EDestination **to_destv)
{
- char *str;
-
+ gchar *str;
g_return_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs));
-
+
str = e_destination_exportv (to_destv);
bonobo_widget_set_property (BONOBO_WIDGET (hdrs->priv->to.entry), "destinations", str, NULL);
g_free (str);
@@ -874,14 +830,11 @@ void
e_msg_composer_hdrs_set_cc (EMsgComposerHdrs *hdrs,
EDestination **cc_destv)
{
- char *str;
-
+ gchar *str;
g_return_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs));
str = e_destination_exportv (cc_destv);
- bonobo_widget_set_property (BONOBO_WIDGET (hdrs->priv->cc.entry), "destinations", str, NULL);
- if (str && *str)
- set_pair_visibility (hdrs, &hdrs->priv->cc, TRUE);
+ bonobo_widget_set_property (BONOBO_WIDGET (hdrs->priv->cc.entry), "destinations", str, NULL);
g_free (str);
}
@@ -889,14 +842,11 @@ void
e_msg_composer_hdrs_set_bcc (EMsgComposerHdrs *hdrs,
EDestination **bcc_destv)
{
- char *str;
-
+ gchar *str;
g_return_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs));
-
+
str = e_destination_exportv (bcc_destv);
bonobo_widget_set_property (BONOBO_WIDGET (hdrs->priv->bcc.entry), "destinations", str, NULL);
- if (str && *str)
- set_pair_visibility (hdrs, &hdrs->priv->bcc, TRUE);
g_free (str);
}
@@ -939,34 +889,41 @@ CamelInternetAddress *
e_msg_composer_hdrs_get_reply_to (EMsgComposerHdrs *hdrs)
{
CamelInternetAddress *addr;
- const char *reply_to;
+ gchar *reply_to;
+ g_return_val_if_fail (hdrs != NULL, NULL);
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
- reply_to = e_entry_get_text (E_ENTRY (hdrs->priv->reply_to.entry));
+ gtk_object_get (GTK_OBJECT (hdrs->priv->reply_to.entry),
+ "text", &reply_to, NULL);
- if (!reply_to || *reply_to == '\0')
+ if (!reply_to || *reply_to == '\0') {
+ g_free (reply_to);
return NULL;
+ }
addr = camel_internet_address_new ();
if (camel_address_unformat (CAMEL_ADDRESS (addr), reply_to) == -1) {
+ g_free (reply_to);
camel_object_unref (CAMEL_OBJECT (addr));
return NULL;
}
+ g_free (reply_to);
+
return addr;
}
EDestination **
e_msg_composer_hdrs_get_to (EMsgComposerHdrs *hdrs)
{
- char *str = NULL;
+ gchar *str = NULL;
EDestination **destv = NULL;
-
+
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
+
bonobo_widget_get_property (BONOBO_WIDGET (hdrs->priv->to.entry), "destinations", &str, NULL);
-
+
if (str != NULL) {
destv = e_destination_importv (str);
g_free (str);
@@ -978,36 +935,36 @@ e_msg_composer_hdrs_get_to (EMsgComposerHdrs *hdrs)
EDestination **
e_msg_composer_hdrs_get_cc (EMsgComposerHdrs *hdrs)
{
- char *str = NULL;
+ gchar *str = NULL;
EDestination **destv = NULL;
-
+
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
+
bonobo_widget_get_property (BONOBO_WIDGET (hdrs->priv->cc.entry), "destinations", &str, NULL);
-
+
if (str != NULL) {
destv = e_destination_importv (str);
g_free (str);
}
-
+
return destv;
}
EDestination **
e_msg_composer_hdrs_get_bcc (EMsgComposerHdrs *hdrs)
{
- char *str = NULL;
+ gchar *str = NULL;
EDestination **destv = NULL;
-
+
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
+
bonobo_widget_get_property (BONOBO_WIDGET (hdrs->priv->bcc.entry), "destinations", &str, NULL);
-
+
if (str != NULL) {
destv = e_destination_importv (str);
g_free (str);
}
-
+
return destv;
}
@@ -1018,48 +975,48 @@ e_msg_composer_hdrs_get_recipients (EMsgComposerHdrs *hdrs)
EDestination **cc_destv;
EDestination **bcc_destv;
EDestination **recip_destv;
- int i, j, n;
+ gint i, j, n;
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
+
to_destv = e_msg_composer_hdrs_get_to (hdrs);
cc_destv = e_msg_composer_hdrs_get_cc (hdrs);
bcc_destv = e_msg_composer_hdrs_get_bcc (hdrs);
-
+
n = 0;
-
- for (i = 0; to_destv && to_destv[i] != NULL; i++, n++);
- for (i = 0; cc_destv && cc_destv[i] != NULL; i++, n++);
- for (i = 0; bcc_destv && bcc_destv[i] != NULL; i++, n++);
-
+
+ for (i = 0; to_destv && to_destv[i] != NULL; ++i, ++n);
+ for (i = 0; cc_destv && cc_destv[i] != NULL; ++i, ++n);
+ for (i = 0; bcc_destv && bcc_destv[i] != NULL; ++i, ++n);
+
if (n == 0)
return NULL;
-
- recip_destv = g_new (EDestination *, n + 1);
-
+
+ recip_destv = g_new (EDestination *, n+1);
+
j = 0;
-
- for (i = 0; to_destv && to_destv[i] != NULL; i++, j++)
+
+ for (i = 0; to_destv && to_destv[i] != NULL; ++i, ++j)
recip_destv[j] = to_destv[i];
- for (i = 0; cc_destv && cc_destv[i] != NULL; i++, j++)
+ for (i = 0; cc_destv && cc_destv[i] != NULL; ++i, ++j)
recip_destv[j] = cc_destv[i];
- for (i = 0; bcc_destv && bcc_destv[i] != NULL; i++, j++)
+ for (i = 0; bcc_destv && bcc_destv[i] != NULL; ++i, ++j)
recip_destv[j] = bcc_destv[i];
-
+
g_assert (j == n);
recip_destv[j] = NULL;
-
+
g_free (to_destv);
g_free (cc_destv);
g_free (bcc_destv);
-
+
return recip_destv;
}
char *
e_msg_composer_hdrs_get_subject (EMsgComposerHdrs *hdrs)
{
- char *subject;
+ gchar *subject;
g_return_val_if_fail (hdrs != NULL, NULL);
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
@@ -1076,7 +1033,7 @@ e_msg_composer_hdrs_get_reply_to_entry (EMsgComposerHdrs *hdrs)
{
g_return_val_if_fail (hdrs != NULL, NULL);
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
+
return hdrs->priv->reply_to.entry;
}
@@ -1085,7 +1042,7 @@ e_msg_composer_hdrs_get_to_entry (EMsgComposerHdrs *hdrs)
{
g_return_val_if_fail (hdrs != NULL, NULL);
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
+
return hdrs->priv->to.entry;
}
@@ -1103,7 +1060,7 @@ e_msg_composer_hdrs_get_bcc_entry (EMsgComposerHdrs *hdrs)
{
g_return_val_if_fail (hdrs != NULL, NULL);
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
+
return hdrs->priv->bcc.entry;
}
@@ -1112,15 +1069,6 @@ e_msg_composer_hdrs_get_subject_entry (EMsgComposerHdrs *hdrs)
{
g_return_val_if_fail (hdrs != NULL, NULL);
g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
- return hdrs->priv->subject.entry;
-}
-GtkWidget *
-e_msg_composer_hdrs_get_from_hbox (EMsgComposerHdrs *hdrs)
-{
- g_return_val_if_fail (hdrs != NULL, NULL);
- g_return_val_if_fail (E_IS_MSG_COMPOSER_HDRS (hdrs), NULL);
-
- return hdrs->priv->from.entry;
+ return hdrs->priv->subject.entry;
}