*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
*/
#ifdef HAVE_CONFIG_H
#include "gtk/gtkutils.h"
#include "gtk/prefswindow.h"
+#include "combobox.h"
#include "manage_window.h"
#ifdef HAVE_LIBETPAN
GtkWidget *checkbtn_cleanonexit;
GtkWidget *checkbtn_askonclean;
GtkWidget *checkbtn_warnqueued;
- GtkWidget *checkbtn_cliplog;
- GtkWidget *spinbtn_loglength;
GtkWidget *spinbtn_iotimeout;
- GtkWidget *chkbtn_never_send_retrcpt;
- GtkWidget *chkbtn_gtk_can_change_accels;
+ GtkWidget *checkbtn_gtk_can_change_accels;
+ GtkWidget *checkbtn_askonfilter;
+ GtkWidget *checkbtn_real_time_sync;
} OtherPage;
static struct KeybindDialog {
GtkWidget *ok_btn;
GtkWidget *cancel_btn;
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_other");
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_set_title (GTK_WINDOW (window), _("Select key bindings"));
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
- combo = gtk_combo_new ();
- gtk_box_pack_start (GTK_BOX (hbox1), combo, TRUE, TRUE, 0);
- gtkut_combo_set_items (GTK_COMBO (combo),
+ combo = combobox_text_new(FALSE,
_("Default"),
"Mew / Wanderlust",
"Mutt",
_("Old Sylpheed"),
NULL);
- gtk_editable_set_editable(GTK_EDITABLE(GTK_COMBO (combo)->entry), FALSE);
+ gtk_box_pack_start (GTK_BOX (hbox1), combo, TRUE, TRUE, 0);
hbox1 = gtk_hbox_new (FALSE, 8);
gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
static void prefs_keybind_apply_clicked(GtkWidget *widget)
{
- GtkEntry *entry = GTK_ENTRY(GTK_COMBO(keybind.combo)->entry);
const gchar *text;
struct KeyBind *menurc;
gint n_menurc;
{"<Compose>/Edit/Advanced/Delete a word backward", "<control>W"},
{"<Compose>/Edit/Advanced/Delete a word forward", "<alt>D"},
};
-
- text = gtk_entry_get_text(entry);
-
+
+ text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(keybind.combo));
+
if (!strcmp(text, _("Default"))) {
menurc = default_menurc;
n_menurc = G_N_ELEMENTS(default_menurc);
menurc = old_sylpheed_menurc;
n_menurc = G_N_ELEMENTS(old_sylpheed_menurc);
} else {
+ g_free(text);
return;
}
+ g_free(text);
/* prefs_keybind_apply(empty_menurc, G_N_ELEMENTS(empty_menurc)); */
prefs_keybind_apply(menurc, n_menurc);
GtkWidget *vbox_addr;
GtkWidget *checkbtn_addaddrbyclick;
- GtkWidget *frame_cliplog;
- GtkWidget *vbox_cliplog;
- GtkWidget *hbox_cliplog;
- GtkWidget *checkbtn_cliplog;
- GtkWidget *loglength_label;
- GtkWidget *spinbtn_loglength;
- GtkObject *spinbtn_loglength_adj;
- GtkTooltips *loglength_tooltip;
- GtkWidget *label;
-
GtkWidget *frame_exit;
GtkWidget *vbox_exit;
GtkWidget *checkbtn_confonexit;
GtkWidget *checkbtn_cleanonexit;
- GtkWidget *checkbtn_askonclean;
GtkWidget *checkbtn_warnqueued;
GtkWidget *frame_keys;
GtkWidget *vbox_keys;
- GtkWidget *chkbtn_gtk_can_change_accels;
+ GtkWidget *checkbtn_gtk_can_change_accels;
GtkTooltips *gtk_can_change_accels_tooltip;
GtkWidget *button_keybind;
GtkWidget *spinbtn_iotimeout;
GtkObject *spinbtn_iotimeout_adj;
- GtkWidget *chkbtn_never_send_retrcpt;
-
+ GtkWidget *vbox2;
+ GtkWidget *checkbtn_askonclean;
+ GtkWidget *checkbtn_askonfilter;
+ GtkWidget *checkbtn_real_time_sync;
vbox1 = gtk_vbox_new (FALSE, VSPACING);
gtk_widget_show (vbox1);
gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
(vbox_addr, checkbtn_addaddrbyclick,
_("Add address to destination when double-clicked"));
- /* Clip Log */
- vbox_cliplog = gtkut_get_options_frame(vbox1, &frame_cliplog, _("Log Size"));
-
- PACK_CHECK_BUTTON (vbox_cliplog, checkbtn_cliplog,
- _("Clip the log size"));
- hbox_cliplog = gtk_hbox_new (FALSE, 8);
- gtk_container_add (GTK_CONTAINER (vbox_cliplog), hbox_cliplog);
- gtk_widget_show (hbox_cliplog);
-
- loglength_label = gtk_label_new (_("Log window length"));
- gtk_box_pack_start (GTK_BOX (hbox_cliplog), loglength_label,
- FALSE, TRUE, 0);
- gtk_widget_show (GTK_WIDGET (loglength_label));
-
- loglength_tooltip = gtk_tooltips_new();
-
- spinbtn_loglength_adj = gtk_adjustment_new (500, 0, G_MAXINT, 1, 10, 10);
- spinbtn_loglength = gtk_spin_button_new
- (GTK_ADJUSTMENT (spinbtn_loglength_adj), 1, 0);
- gtk_widget_show (spinbtn_loglength);
- gtk_box_pack_start (GTK_BOX (hbox_cliplog), spinbtn_loglength,
- FALSE, FALSE, 0);
- gtk_widget_set_size_request (GTK_WIDGET (spinbtn_loglength), 64, -1);
- gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_loglength), TRUE);
-
- gtk_tooltips_set_tip(GTK_TOOLTIPS(loglength_tooltip), spinbtn_loglength,
- _("0 to stop logging in the log window"),
- NULL);
-
- label = gtk_label_new(_("lines"));
- gtk_widget_show (label);
- gtk_box_pack_start(GTK_BOX(hbox_cliplog), label, FALSE, FALSE, 0);
-
- SET_TOGGLE_SENSITIVITY(checkbtn_cliplog, loglength_label);
- SET_TOGGLE_SENSITIVITY(checkbtn_cliplog, spinbtn_loglength);
- SET_TOGGLE_SENSITIVITY(checkbtn_cliplog, label);
-
/* On Exit */
vbox_exit = gtkut_get_options_frame(vbox1, &frame_exit, _("On exit"));
PACK_CHECK_BUTTON (hbox1, checkbtn_cleanonexit,
_("Empty trash on exit"));
- PACK_CHECK_BUTTON (hbox1, checkbtn_askonclean,
- _("Ask before emptying"));
- SET_TOGGLE_SENSITIVITY (checkbtn_cleanonexit, checkbtn_askonclean);
PACK_CHECK_BUTTON (vbox_exit, checkbtn_warnqueued,
_("Warn if there are queued messages"));
vbox_keys = gtkut_get_options_frame(vbox1, &frame_keys, _("Keyboard shortcuts"));
- PACK_CHECK_BUTTON(vbox_keys, chkbtn_gtk_can_change_accels,
+ PACK_CHECK_BUTTON(vbox_keys, checkbtn_gtk_can_change_accels,
_("Enable customisable menu shortcuts"));
gtk_can_change_accels_tooltip = gtk_tooltips_new();
gtk_tooltips_set_tip(GTK_TOOLTIPS(gtk_can_change_accels_tooltip),
- chkbtn_gtk_can_change_accels,
+ checkbtn_gtk_can_change_accels,
_("If checked, you can change the keyboard shortcuts of "
"most of the menu items by focusing on the menu "
"item and pressing a key combination.\n"
gtk_widget_show (label_iotimeout);
gtk_box_pack_start (GTK_BOX (hbox1), label_iotimeout, FALSE, FALSE, 0);
- PACK_CHECK_BUTTON(vbox1, chkbtn_never_send_retrcpt,
- _("Never send Return Receipts"));
+ vbox2 = gtk_vbox_new (FALSE, 8);
+ gtk_widget_show (vbox2);
+ gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
+
+ PACK_CHECK_BUTTON (vbox2, checkbtn_askonclean,
+ _("Ask before emptying trash"));
+ PACK_CHECK_BUTTON (vbox2, checkbtn_askonfilter,
+ _("Ask about account specific filtering rules when "
+ "filtering manually"));
+ PACK_CHECK_BUTTON (vbox2, checkbtn_real_time_sync,
+ _("Synchronise offline folders as soon as possible"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_addaddrbyclick),
prefs_common.add_address_by_click);
prefs_common.ask_on_clean);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_warnqueued),
prefs_common.warn_queued_on_exit);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_cliplog),
- prefs_common.cliplog);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_never_send_retrcpt),
- prefs_common.never_send_retrcpt);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_gtk_can_change_accels),
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_gtk_can_change_accels),
prefs_common.gtk_can_change_accels);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_loglength),
- prefs_common.loglength);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_iotimeout),
prefs_common.io_timeout_secs);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_askonfilter),
+ prefs_common.ask_apply_per_account_filtering_rules);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_real_time_sync),
+ prefs_common.real_time_sync);
+
prefs_other->checkbtn_addaddrbyclick = checkbtn_addaddrbyclick;
prefs_other->checkbtn_confonexit = checkbtn_confonexit;
prefs_other->checkbtn_cleanonexit = checkbtn_cleanonexit;
prefs_other->checkbtn_askonclean = checkbtn_askonclean;
prefs_other->checkbtn_warnqueued = checkbtn_warnqueued;
- prefs_other->checkbtn_cliplog = checkbtn_cliplog;
- prefs_other->spinbtn_loglength = spinbtn_loglength;
prefs_other->spinbtn_iotimeout = spinbtn_iotimeout;
- prefs_other->chkbtn_never_send_retrcpt = chkbtn_never_send_retrcpt;
- prefs_other->chkbtn_gtk_can_change_accels = chkbtn_gtk_can_change_accels;
+ prefs_other->checkbtn_gtk_can_change_accels = checkbtn_gtk_can_change_accels;
+ prefs_other->checkbtn_askonfilter = checkbtn_askonfilter;
+ prefs_other->checkbtn_real_time_sync = checkbtn_real_time_sync;
prefs_other->page.widget = vbox1;
}
static void prefs_other_save(PrefsPage *_page)
{
OtherPage *page = (OtherPage *) _page;
- MainWindow *mainwindow;
gboolean gtk_can_change_accels;
prefs_common.add_address_by_click = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->checkbtn_askonclean));
prefs_common.warn_queued_on_exit = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->checkbtn_warnqueued));
- prefs_common.cliplog = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(page->checkbtn_cliplog));
- prefs_common.loglength = gtk_spin_button_get_value_as_int(
- GTK_SPIN_BUTTON(page->spinbtn_loglength));
prefs_common.io_timeout_secs = gtk_spin_button_get_value_as_int(
GTK_SPIN_BUTTON(page->spinbtn_iotimeout));
sock_set_io_timeout(prefs_common.io_timeout_secs);
#ifdef HAVE_LIBETPAN
imap_main_set_timeout(prefs_common.io_timeout_secs);
#endif
- prefs_common.never_send_retrcpt = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(page->chkbtn_never_send_retrcpt));
-
- mainwindow = mainwindow_get_mainwindow();
- log_window_set_clipping(mainwindow->logwin, prefs_common.cliplog,
- prefs_common.loglength);
+ prefs_common.ask_apply_per_account_filtering_rules =
+ gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(page->checkbtn_askonfilter));
+ prefs_common.real_time_sync =
+ gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(page->checkbtn_real_time_sync));
gtk_can_change_accels = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(page->chkbtn_gtk_can_change_accels));
+ GTK_TOGGLE_BUTTON(page->checkbtn_gtk_can_change_accels));
if (prefs_common.gtk_can_change_accels != gtk_can_change_accels) {