#include "utils.h"
#include "alertpanel.h"
+#include "pixmaps/mark.xpm"
+
typedef enum
{
COL_DEFAULT = 0,
- COL_NAME = 1,
- COL_PROTOCOL = 2,
- COL_SERVER = 3
+ COL_GETALL = 1,
+ COL_NAME = 2,
+ COL_PROTOCOL = 3,
+ COL_SERVER = 4
} EditAccountColumnPos;
-# define N_EDIT_ACCOUNT_COLS 4
+# define N_EDIT_ACCOUNT_COLS 5
#define PREFSBUFSIZE 1024
GtkWidget *close_btn;
} edit_account;
+static GdkPixmap *markxpm;
+static GdkBitmap *markxpmmask;
+
static void account_edit_create (void);
static void account_edit_prefs (void);
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,
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) {
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;
GtkWidget *default_btn;
+ GtkWidget *recvatgetall_btn;
+
GtkWidget *hbbox;
GtkWidget *close_btn;
GTK_SIGNAL_FUNC (manage_window_focus_in), NULL);
gtk_signal_connect (GTK_OBJECT (window), "focus_out_event",
GTK_SIGNAL_FUNC (manage_window_focus_out), NULL);
+ gtk_widget_realize(window);
vbox = gtk_vbox_new (FALSE, 12);
gtk_widget_show (vbox);
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
- titles[COL_DEFAULT] = "";
+ titles[COL_DEFAULT] = "D";
+ titles[COL_GETALL] = "G";
titles[COL_NAME] = _("Name");
titles[COL_PROTOCOL] = _("Protocol");
titles[COL_SERVER] = _("Server");
clist = gtk_clist_new_with_titles (N_EDIT_ACCOUNT_COLS, titles);
gtk_widget_show (clist);
gtk_container_add (GTK_CONTAINER (scrolledwin), clist);
- gtk_clist_set_column_width (GTK_CLIST(clist), COL_DEFAULT , 16);
+ gtk_clist_set_column_width (GTK_CLIST(clist), COL_DEFAULT , 10);
+ gtk_clist_set_column_width (GTK_CLIST(clist), COL_GETALL , 10);
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_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);
GTK_SIGNAL_FUNC (account_edit_close),
NULL);
+ PIXMAP_CREATE(clist, markxpm, markxpmmask, mark_xpm);
+
edit_account.window = window;
edit_account.clist = clist;
edit_account.close_btn = close_btn;
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);
+
+ if ((ac_prefs->protocol != A_POP3) && (ac_prefs->protocol != A_APOP)) return;
+
+ account_set_as_recv_at_get_all(ac_prefs);
+ account_clist_set();
+}
+
static void account_edit_close(void)
{
account_list_set();
gchar *text[N_EDIT_ACCOUNT_COLS];
text[COL_DEFAULT] = ac_prefs->is_default ? "*" : "";
+ text[COL_GETALL] = (ac_prefs->protocol == A_POP3 ||
+ ac_prefs->protocol == A_APOP) &&
+ ac_prefs->recv_at_getall ? "*" : "";
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;
row = gtk_clist_append(clist, text);
else {
gtk_clist_set_text(clist, row, COL_DEFAULT, text[COL_DEFAULT]);
+ gtk_clist_set_text(clist, row, COL_GETALL, text[COL_GETALL]);
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]);
}
+ if (*text[COL_DEFAULT])
+ gtk_clist_set_pixmap(clist, row, COL_DEFAULT,
+ markxpm, markxpmmask);
+ if (*text[COL_GETALL])
+ gtk_clist_set_pixmap(clist, row, COL_GETALL,
+ markxpm, markxpmmask);
+
gtk_clist_set_row_data(clist, row, ac_prefs);
return row;