Code cleanup
This commit is contained in:
parent
133ef7870a
commit
2cf7857e0f
@ -13,6 +13,7 @@ typedef enum _AccountConfigType
|
|||||||
ACT_NONE = 0,
|
ACT_NONE = 0,
|
||||||
ACT_STRING,
|
ACT_STRING,
|
||||||
ACT_PASSWORD,
|
ACT_PASSWORD,
|
||||||
|
ACT_FILE,
|
||||||
ACT_UINT16,
|
ACT_UINT16,
|
||||||
ACT_BOOLEAN
|
ACT_BOOLEAN
|
||||||
} AccountConfigType;
|
} AccountConfigType;
|
||||||
|
@ -13,10 +13,10 @@ char const mbox_name[] = "Local folder";
|
|||||||
|
|
||||||
AccountConfig mbox_config[] =
|
AccountConfig mbox_config[] =
|
||||||
{
|
{
|
||||||
{ "mbox", "Inbox file", ACT_STRING, NULL },
|
{ "mbox", "Inbox file", ACT_FILE, NULL },
|
||||||
{ "spool", "Incoming mails file", ACT_STRING, NULL },
|
{ "spool", "Incoming mails file", ACT_FILE, NULL },
|
||||||
{ "sent", "Sent mails file", ACT_STRING, NULL },
|
{ "sent", "Sent mails file", ACT_FILE, NULL },
|
||||||
{ "draft", "Draft mails file", ACT_STRING, NULL },
|
{ "draft", "Draft mails file", ACT_FILE, NULL },
|
||||||
{ NULL, NULL, ACT_NONE, NULL }
|
{ NULL, NULL, ACT_NONE, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
100
src/callbacks.c
100
src/callbacks.c
@ -638,6 +638,7 @@ static void _on_assistant_prepare(GtkWidget * widget, GtkWidget * page,
|
|||||||
static GtkWidget * _update_string(AccountConfig * config, GtkSizeGroup * group);
|
static GtkWidget * _update_string(AccountConfig * config, GtkSizeGroup * group);
|
||||||
static GtkWidget * _update_password(AccountConfig * config,
|
static GtkWidget * _update_password(AccountConfig * config,
|
||||||
GtkSizeGroup * group);
|
GtkSizeGroup * group);
|
||||||
|
static GtkWidget * _update_file(AccountConfig * config, GtkSizeGroup * group);
|
||||||
static GtkWidget * _update_uint16(AccountConfig * config, GtkSizeGroup * group);
|
static GtkWidget * _update_uint16(AccountConfig * config, GtkSizeGroup * group);
|
||||||
static GtkWidget * _update_boolean(AccountConfig * config);
|
static GtkWidget * _update_boolean(AccountConfig * config);
|
||||||
static GtkWidget * _account_config_update(AccountConfig * config)
|
static GtkWidget * _account_config_update(AccountConfig * config)
|
||||||
@ -647,41 +648,41 @@ static GtkWidget * _account_config_update(AccountConfig * config)
|
|||||||
{
|
{
|
||||||
GtkWidget * vbox;
|
GtkWidget * vbox;
|
||||||
GtkSizeGroup * group;
|
GtkSizeGroup * group;
|
||||||
|
GtkWidget * widget;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 4);
|
vbox = gtk_vbox_new(FALSE, 4);
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
|
gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
|
||||||
group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
|
group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
|
||||||
for(i = 0; config[i].name != NULL; i++)
|
for(i = 0; config[i].name != NULL; i++)
|
||||||
|
{
|
||||||
switch(config[i].type)
|
switch(config[i].type)
|
||||||
{
|
{
|
||||||
case ACT_NONE:
|
case ACT_NONE:
|
||||||
continue;
|
continue;
|
||||||
case ACT_STRING:
|
case ACT_STRING:
|
||||||
gtk_box_pack_start(GTK_BOX(vbox),
|
widget = _update_string(&config[i], group);
|
||||||
_update_string(&config[i],
|
|
||||||
group), FALSE, TRUE, 0);
|
|
||||||
break;
|
break;
|
||||||
case ACT_PASSWORD:
|
case ACT_PASSWORD:
|
||||||
gtk_box_pack_start(GTK_BOX(vbox),
|
widget = _update_password(&config[i], group);
|
||||||
_update_password(&config[i],
|
break;
|
||||||
group), FALSE, TRUE, 0);
|
case ACT_FILE:
|
||||||
|
widget = _update_file(&config[i], group);
|
||||||
break;
|
break;
|
||||||
case ACT_UINT16:
|
case ACT_UINT16:
|
||||||
gtk_box_pack_start(GTK_BOX(vbox),
|
widget = _update_uint16(&config[i], group);
|
||||||
_update_uint16(&config[i],
|
|
||||||
group), FALSE, TRUE, 0);
|
|
||||||
break;
|
break;
|
||||||
case ACT_BOOLEAN:
|
case ACT_BOOLEAN:
|
||||||
gtk_box_pack_start(GTK_BOX(vbox),
|
widget = _update_boolean(&config[i]);
|
||||||
_update_boolean(&config[i]),
|
|
||||||
FALSE, TRUE, 0);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0);
|
||||||
|
}
|
||||||
gtk_widget_show_all(vbox);
|
gtk_widget_show_all(vbox);
|
||||||
return vbox;
|
return vbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _on_string_changed(GtkWidget * widget, gpointer data);
|
||||||
static GtkWidget * _update_string(AccountConfig * config, GtkSizeGroup * group)
|
static GtkWidget * _update_string(AccountConfig * config, GtkSizeGroup * group)
|
||||||
{
|
{
|
||||||
GtkWidget * hbox;
|
GtkWidget * hbox;
|
||||||
@ -693,10 +694,28 @@ static GtkWidget * _update_string(AccountConfig * config, GtkSizeGroup * group)
|
|||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
||||||
widget = gtk_entry_new();
|
widget = gtk_entry_new();
|
||||||
gtk_size_group_add_widget(group, widget);
|
gtk_size_group_add_widget(group, widget);
|
||||||
|
g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(
|
||||||
|
_on_string_changed), &config->value);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
return hbox;
|
return hbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void _on_string_changed(GtkWidget * widget, gpointer data)
|
||||||
|
{
|
||||||
|
const char * text;
|
||||||
|
char ** value = data;
|
||||||
|
char * p;
|
||||||
|
|
||||||
|
text = gtk_entry_get_text(GTK_ENTRY(widget));
|
||||||
|
if((p = realloc(*value, strlen(text)+1)) == NULL)
|
||||||
|
{
|
||||||
|
mailer_error(NULL, strerror(errno), 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
*value = p;
|
||||||
|
strcpy(p, text);
|
||||||
|
}
|
||||||
|
|
||||||
static GtkWidget * _update_password(AccountConfig * config,
|
static GtkWidget * _update_password(AccountConfig * config,
|
||||||
GtkSizeGroup * group)
|
GtkSizeGroup * group)
|
||||||
{
|
{
|
||||||
@ -710,6 +729,24 @@ static GtkWidget * _update_password(AccountConfig * config,
|
|||||||
widget = gtk_entry_new();
|
widget = gtk_entry_new();
|
||||||
gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);
|
gtk_entry_set_visibility(GTK_ENTRY(widget), FALSE);
|
||||||
gtk_size_group_add_widget(group, widget);
|
gtk_size_group_add_widget(group, widget);
|
||||||
|
g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(
|
||||||
|
_on_string_changed), &config->value);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
|
return hbox;
|
||||||
|
}
|
||||||
|
|
||||||
|
static GtkWidget * _update_file(AccountConfig * config, GtkSizeGroup * group)
|
||||||
|
{
|
||||||
|
GtkWidget * hbox;
|
||||||
|
GtkWidget * widget;
|
||||||
|
|
||||||
|
hbox = gtk_hbox_new(FALSE, 0);
|
||||||
|
widget = gtk_label_new(config->title);
|
||||||
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
||||||
|
widget = gtk_file_chooser_button_new("Choose file",
|
||||||
|
GTK_FILE_CHOOSER_ACTION_OPEN);
|
||||||
|
gtk_size_group_add_widget(group, widget);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
return hbox;
|
return hbox;
|
||||||
}
|
}
|
||||||
@ -738,6 +775,7 @@ static GtkWidget * _display_string(AccountConfig * config,
|
|||||||
GtkSizeGroup * group);
|
GtkSizeGroup * group);
|
||||||
static GtkWidget * _display_password(AccountConfig * config,
|
static GtkWidget * _display_password(AccountConfig * config,
|
||||||
GtkSizeGroup * group);
|
GtkSizeGroup * group);
|
||||||
|
static GtkWidget * _display_file(AccountConfig * config, GtkSizeGroup * group);
|
||||||
static GtkWidget * _display_uint16(AccountConfig * config,
|
static GtkWidget * _display_uint16(AccountConfig * config,
|
||||||
GtkSizeGroup * group);
|
GtkSizeGroup * group);
|
||||||
static GtkWidget * _display_boolean(AccountConfig * config,
|
static GtkWidget * _display_boolean(AccountConfig * config,
|
||||||
@ -747,37 +785,36 @@ static GtkWidget * _account_config_display(AccountConfig * config)
|
|||||||
{
|
{
|
||||||
GtkWidget * vbox;
|
GtkWidget * vbox;
|
||||||
GtkSizeGroup * group;
|
GtkSizeGroup * group;
|
||||||
|
GtkWidget * widget;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
vbox = gtk_vbox_new(FALSE, 4);
|
vbox = gtk_vbox_new(FALSE, 4);
|
||||||
gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
|
gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
|
||||||
group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
|
group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
|
||||||
for(i = 0; config[i].name != NULL; i++)
|
for(i = 0; config[i].name != NULL; i++)
|
||||||
|
{
|
||||||
switch(config[i].type)
|
switch(config[i].type)
|
||||||
{
|
{
|
||||||
case ACT_NONE:
|
case ACT_NONE:
|
||||||
continue;
|
continue;
|
||||||
case ACT_STRING:
|
case ACT_STRING:
|
||||||
gtk_box_pack_start(GTK_BOX(vbox),
|
widget = _display_string(&config[i], group);
|
||||||
_display_string(&config[i],
|
|
||||||
group), FALSE, TRUE, 0);
|
|
||||||
break;
|
break;
|
||||||
case ACT_PASSWORD:
|
case ACT_PASSWORD:
|
||||||
gtk_box_pack_start(GTK_BOX(vbox),
|
widget = _display_password(&config[i], group);
|
||||||
_display_password(&config[i],
|
break;
|
||||||
group), FALSE, TRUE, 0);
|
case ACT_FILE:
|
||||||
|
widget = _display_file(&config[i], group);
|
||||||
break;
|
break;
|
||||||
case ACT_UINT16:
|
case ACT_UINT16:
|
||||||
gtk_box_pack_start(GTK_BOX(vbox),
|
widget = _display_uint16(&config[i], group);
|
||||||
_display_uint16(&config[i],
|
|
||||||
group), FALSE, TRUE, 0);
|
|
||||||
break;
|
break;
|
||||||
case ACT_BOOLEAN:
|
case ACT_BOOLEAN:
|
||||||
gtk_box_pack_start(GTK_BOX(vbox),
|
widget = _display_boolean(&config[i], group);
|
||||||
_display_boolean(&config[i],
|
|
||||||
group), FALSE, TRUE, 0);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0);
|
||||||
|
}
|
||||||
gtk_widget_show_all(vbox);
|
gtk_widget_show_all(vbox);
|
||||||
return vbox;
|
return vbox;
|
||||||
}
|
}
|
||||||
@ -791,23 +828,32 @@ static GtkWidget * _display_string(AccountConfig * config, GtkSizeGroup * group)
|
|||||||
widget = gtk_label_new(config->title);
|
widget = gtk_label_new(config->title);
|
||||||
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
||||||
widget = gtk_label_new("FIXME");
|
widget = gtk_label_new(config->value);
|
||||||
gtk_size_group_add_widget(group, widget);
|
gtk_size_group_add_widget(group, widget);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
return hbox;
|
return hbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static GtkWidget * _display_file(AccountConfig * config, GtkSizeGroup * group)
|
||||||
|
{
|
||||||
|
return _display_string(config, group);
|
||||||
|
}
|
||||||
|
|
||||||
static GtkWidget * _display_password(AccountConfig * config,
|
static GtkWidget * _display_password(AccountConfig * config,
|
||||||
GtkSizeGroup * group)
|
GtkSizeGroup * group)
|
||||||
{
|
{
|
||||||
GtkWidget * hbox;
|
GtkWidget * hbox;
|
||||||
GtkWidget * widget;
|
GtkWidget * widget;
|
||||||
|
PangoFontDescription * desc;
|
||||||
|
|
||||||
hbox = gtk_hbox_new(FALSE, 0);
|
hbox = gtk_hbox_new(FALSE, 0);
|
||||||
widget = gtk_label_new(config->title);
|
widget = gtk_label_new(config->title);
|
||||||
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
||||||
widget = gtk_label_new("FIXME");
|
widget = gtk_label_new("hidden");
|
||||||
|
desc = pango_font_description_new();
|
||||||
|
pango_font_description_set_style(desc, PANGO_STYLE_ITALIC);
|
||||||
|
gtk_widget_modify_font(widget, desc);
|
||||||
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
gtk_size_group_add_widget(group, widget);
|
gtk_size_group_add_widget(group, widget);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
@ -824,6 +870,7 @@ static GtkWidget * _display_uint16(AccountConfig * config, GtkSizeGroup * group)
|
|||||||
widget = gtk_label_new(config->title);
|
widget = gtk_label_new(config->title);
|
||||||
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
||||||
|
/* FIXME will be malloced? */
|
||||||
snprintf(buf, sizeof(buf), "%u", (uint16_t)config->value);
|
snprintf(buf, sizeof(buf), "%u", (uint16_t)config->value);
|
||||||
widget = gtk_label_new(buf);
|
widget = gtk_label_new(buf);
|
||||||
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
@ -842,6 +889,7 @@ static GtkWidget * _display_boolean(AccountConfig * config,
|
|||||||
widget = gtk_label_new(config->title);
|
widget = gtk_label_new(config->title);
|
||||||
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
|
||||||
|
/* FIXME will be malloced? */
|
||||||
widget = gtk_label_new(config->value != 0 ? "Yes" : "No");
|
widget = gtk_label_new(config->value != 0 ? "Yes" : "No");
|
||||||
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
gtk_size_group_add_widget(group, widget);
|
gtk_size_group_add_widget(group, widget);
|
||||||
|
Loading…
Reference in New Issue
Block a user