COL_DEFAULT = 0,
COL_NAME = 1,
COL_PROTOCOL = 2,
- COL_SERVER = 3
+ COL_SERVER = 3,
+ COL_GETALL = 4
} EditAccountColumnPos;
-# define N_EDIT_ACCOUNT_COLS 4
+# define N_EDIT_ACCOUNT_COLS 5
#define PREFSBUFSIZE 1024
static void account_set_default (void);
+static void account_set_recv_at_get_all (void);
+
static void account_edit_close (void);
static gint account_delete_event (GtkWidget *widget,
GdkEventAny *event,
gpointer data);
+static void account_selected (GtkCList *clist,
+ gint row,
+ gint column,
+ GdkEvent *event,
+ gpointer data);
static void account_key_pressed (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
return NULL;
}
-/**
- * account_find_mail_from_address:
+/*
+ * account_find_from_address:
* @address: Email address string.
- *
+ *
* Find a mail (not news) account with the specified email address.
- *
+ *
* Return value: The found account, or NULL if not found.
- **/
-PrefsAccount *account_find_mail_from_address(const gchar *address)
+ */
+PrefsAccount *account_find_from_address(const gchar *address)
{
GList *cur;
PrefsAccount *ac;
for (cur = account_list; cur != NULL; cur = cur->next) {
ac = (PrefsAccount *)cur->data;
- if (ac->protocol != A_NNTP &&
- !strcmp2(address, ac->address))
+ if (ac->protocol != A_NNTP && !strcmp2(address, ac->address))
return ac;
}
if (ac_prefs->is_default)
account_set_as_default(ac_prefs);
+ if (ac_prefs->recv_at_getall)
+ account_set_as_recv_at_get_all(ac_prefs);
+
account_clist_set();
if (ac_prefs->protocol == A_IMAP4 || ac_prefs->protocol == A_NNTP) {
if (ac_prefs->protocol == A_IMAP4) {
folder = folder_new(F_IMAP, ac_prefs->account_name,
ac_prefs->recv_server);
- folder_item_append(FOLDER_ITEM(folder->node->data),
- folder_item_new("INBOX", "INBOX"));
} else {
folder = folder_new(F_NEWS, ac_prefs->account_name,
ac_prefs->nntp_server);
folder_add(folder);
if (ac_prefs->protocol == A_IMAP4)
folder->create_tree(folder);
- folderview_update_all();
+ folderview_set_all();
}
}
return NULL;
}
+void account_set_as_recv_at_get_all(PrefsAccount *ac_prefs)
+{
+ PrefsAccount *ap;
+ GList *cur;
+
+ for (cur = account_list; cur != NULL; cur = cur->next) {
+ ap = (PrefsAccount *)cur->data;
+ if (ap->account_name == ac_prefs->account_name) {
+ if (ap->recv_at_getall == 0)
+ ap->recv_at_getall = 1;
+ else
+ ap->recv_at_getall = 0;
+ }
+ }
+
+}
+
+
void account_set_missing_folder(void)
{
PrefsAccount *ap;
if (ap->protocol == A_IMAP4) {
folder = folder_new(F_IMAP, ap->account_name,
ap->recv_server);
- folder_item_append
- (FOLDER_ITEM(folder->node->data),
- folder_item_new("INBOX", "INBOX"));
} else {
folder = folder_new(F_NEWS, ap->account_name,
ap->nntp_server);
GtkWidget *default_btn;
+ GtkWidget *recvatgetall_btn;
+
GtkWidget *hbbox;
GtkWidget *close_btn;
titles[COL_NAME] = _("Name");
titles[COL_PROTOCOL] = _("Protocol");
titles[COL_SERVER] = _("Server");
+ titles[COL_GETALL] = _("Get all");
clist = gtk_clist_new_with_titles (N_EDIT_ACCOUNT_COLS, titles);
gtk_widget_show (clist);
gtk_clist_set_column_width (GTK_CLIST(clist), COL_NAME , 100);
gtk_clist_set_column_width (GTK_CLIST(clist), COL_PROTOCOL, 70);
gtk_clist_set_column_width (GTK_CLIST(clist), COL_SERVER , 100);
+ gtk_clist_set_column_width (GTK_CLIST(clist), COL_GETALL , 20);
gtk_clist_set_selection_mode (GTK_CLIST(clist), GTK_SELECTION_BROWSE);
for (i = 0; i < N_EDIT_ACCOUNT_COLS; i++)
GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(clist)->column[i].button,
GTK_CAN_FOCUS);
+ gtk_signal_connect (GTK_OBJECT (clist), "select_row",
+ GTK_SIGNAL_FUNC (account_selected), NULL);
+
vbox2 = gtk_vbox_new (FALSE, 0);
gtk_widget_show (vbox2);
gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 0);
gtk_widget_show (vbox2);
gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 0);
- default_btn = gtk_button_new_with_label (_(" Set as usually used account "));
+ default_btn = gtk_button_new_with_label (_(" Set as default account "));
gtk_widget_show (default_btn);
gtk_box_pack_start (GTK_BOX (vbox2), default_btn, TRUE, FALSE, 0);
gtk_signal_connect (GTK_OBJECT(default_btn), "clicked",
GTK_SIGNAL_FUNC (account_set_default), NULL);
- gtkut_button_set_create(&hbbox, &close_btn, _("Close"),
+ recvatgetall_btn = gtk_button_new_with_label (_(" Enable/Disable 'Receive at Get all' "));
+ gtk_widget_show (recvatgetall_btn);
+ gtk_box_pack_start (GTK_BOX (vbox2), recvatgetall_btn, TRUE, FALSE, 0);
+ gtk_signal_connect (GTK_OBJECT(recvatgetall_btn), "clicked",
+ GTK_SIGNAL_FUNC (account_set_recv_at_get_all), NULL);
+
+ gtkut_button_set_create(&hbbox, &close_btn, _("Close"),
NULL, NULL, NULL, NULL);
gtk_widget_show(hbbox);
gtk_box_pack_end (GTK_BOX (hbox), hbbox, FALSE, FALSE, 0);
main_window_reflect_prefs_all();
}
+static void account_set_recv_at_get_all(void)
+{
+ GtkCList *clist = GTK_CLIST(edit_account.clist);
+ gint row;
+ PrefsAccount *ac_prefs;
+
+ if (!clist->selection) return;
+
+ row = GPOINTER_TO_INT(clist->selection->data);
+ ac_prefs = gtk_clist_get_row_data(clist, row);
+ account_set_as_recv_at_get_all(ac_prefs);
+ account_clist_set();
+}
+
static void account_edit_close(void)
{
account_list_set();
return TRUE;
}
+static void account_selected(GtkCList *clist, gint row, gint column,
+ GdkEvent *event, gpointer data)
+{
+ if (event && event->type == GDK_2BUTTON_PRESS)
+ account_edit_prefs();
+}
+
static void account_key_pressed(GtkWidget *widget, GdkEventKey *event,
gpointer data)
{
text[COL_DEFAULT] = ac_prefs->is_default ? "*" : "";
text[COL_NAME] = ac_prefs->account_name;
+#if !USE_SSL
text[COL_PROTOCOL] = ac_prefs->protocol == A_POP3 ? "POP3" :
ac_prefs->protocol == A_APOP ? "APOP" :
ac_prefs->protocol == A_IMAP4 ? "IMAP4" :
ac_prefs->protocol == A_LOCAL ? "Local" :
ac_prefs->protocol == A_NNTP ? "NNTP" : "";
+#else
+ text[COL_PROTOCOL] = ac_prefs->protocol == A_POP3 ? (!ac_prefs->ssl_pop ? "POP3" : "POP3 (SSL)") :
+ ac_prefs->protocol == A_APOP ? (!ac_prefs->ssl_pop ? "APOP" : "APOP (SSL)") :
+ ac_prefs->protocol == A_IMAP4 ? (!ac_prefs->ssl_imap ? "IMAP4" : "IMAP4 (SSL)") :
+ ac_prefs->protocol == A_LOCAL ? "Local" :
+ ac_prefs->protocol == A_NNTP ? "NNTP" : "";
+#endif
text[COL_SERVER] = ac_prefs->protocol == A_NNTP
? ac_prefs->nntp_server : ac_prefs->recv_server;
+ if (!ac_prefs->protocol == A_POP3) {
+ text[COL_GETALL] = ac_prefs->recv_at_getall == 1 ? _("No") :
+ ac_prefs->recv_at_getall == 0 ? _("No") : "";
+ }
+ else {
+ text[COL_GETALL] = ac_prefs->recv_at_getall == 1 ? _("Yes") :
+ ac_prefs->recv_at_getall == 0 ? _("No") : "";
+ }
+
if (row < 0)
row = gtk_clist_append(clist, text);
else {
gtk_clist_set_text(clist, row, COL_NAME, text[COL_NAME]);
gtk_clist_set_text(clist, row, COL_PROTOCOL, text[COL_PROTOCOL]);
gtk_clist_set_text(clist, row, COL_SERVER, text[COL_SERVER]);
+ gtk_clist_set_text(clist, row, COL_GETALL, text[COL_GETALL]);
}
gtk_clist_set_row_data(clist, row, ac_prefs);
gint row;
row = account_clist_set_row((PrefsAccount *)cur->data, -1);
- if ((PrefsAccount *)cur->data == cur_account)
+ if ((PrefsAccount *)cur->data == cur_account) {
gtk_clist_select_row(clist, row, -1);
+ gtkut_clist_set_focus_row(clist, row);
+ }
}
- if (prev_row >= 0)
+ if (prev_row >= 0) {
gtk_clist_select_row(clist, prev_row, -1);
+ gtkut_clist_set_focus_row(clist, prev_row);
+ }
gtk_clist_thaw(clist);
}