+2007-04-03 [paul] 2.8.1cvs84
+
+ * src/filtering.c
+ * src/folder.c
+ * src/folder.h
+ * src/prefs_common.c
+ * src/prefs_common.h
+ * src/prefs_other.c
+ Fix sync being done too late
+ Thanks to Colin
+
2007-04-02 [colin] 2.8.1cvs83
* src/summaryview.c
( cvs diff -u -r 1.1.2.16 -r 1.1.2.17 src/image_viewer.c; cvs diff -u -r 1.94.2.130 -r 1.94.2.131 src/messageview.c; ) > 2.8.1cvs81.patchset
( cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/plugins/bogofilter/bogofilter_gtk.c; ) > 2.8.1cvs82.patchset
( cvs diff -u -r 1.395.2.294 -r 1.395.2.295 src/summaryview.c; cvs diff -u -r 1.1.2.28 -r 1.1.2.29 src/plugins/bogofilter/bogofilter.c; cvs diff -u -r 1.18.2.50 -r 1.18.2.51 src/plugins/spamassassin/spamassassin.c; ) > 2.8.1cvs83.patchset
+( cvs diff -u -r 1.60.2.30 -r 1.60.2.31 src/filtering.c; cvs diff -u -r 1.213.2.138 -r 1.213.2.139 src/folder.c; cvs diff -u -r 1.87.2.39 -r 1.87.2.40 src/folder.h; cvs diff -u -r 1.204.2.129 -r 1.204.2.130 src/prefs_common.c; cvs diff -u -r 1.103.2.79 -r 1.103.2.80 src/prefs_common.h; cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/prefs_other.c; ) > 2.8.1cvs84.patchset
MICRO_VERSION=1
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=83
+EXTRA_VERSION=84
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
batch);
}
/* we don't reference the msginfos, because caller will do */
+ if (prefs_common.real_time_sync)
+ folder_item_synchronise(last_item);
g_slist_free(batch);
batch = NULL;
}
static void folder_persist_prefs_free (GHashTable *pptable);
static void folder_item_restore_persist_prefs (FolderItem *item, GHashTable *pptable);
-
void folder_system_init(void)
{
folder_register_class(mh_get_class());
}
g_slist_free(unfiltered);
}
- }
+ if (prefs_common.real_time_sync)
+ folder_item_synchronise(item);
+ } else {
+ if (prefs_common.real_time_sync)
+ folder_item_synchronise(item);
+ }
g_slist_free(newmsg_list);
}
}
+void folder_item_synchronise(FolderItem *item)
+{
+ if (!item)
+ return;
+ if (item->prefs->offlinesync && item->folder->klass->synchronise) {
+ statusbar_print_all(_("Synchronising %s for offline use...\n"), item->path ? item->path : "(null)");
+ item->folder->klass->synchronise(item);
+ statusbar_pop_all();
+ }
+}
+
static void folder_item_synchronise_func(FolderItem *item, gpointer data)
{
Folder *folder = (Folder *)data;
if (folder == NULL || item->folder == folder) {
- if(item->prefs->offlinesync && item->folder->klass->synchronise)
- item->folder->klass->synchronise(item);
+ folder_item_synchronise(item);
}
}
gboolean folder_get_sort_type (Folder *folder,
FolderSortKey *sort_key,
FolderSortType *sort_type);
-
+void folder_item_synchronise (FolderItem *item);
#endif /* __FOLDER_H__ */
NULL, NULL, NULL},
{"unsafe_ssl_certs", "FALSE", &prefs_common.unsafe_ssl_certs, P_BOOL,
NULL, NULL, NULL},
-
+#ifndef MAEMO
+ {"real_time_sync", "FALSE", &prefs_common.real_time_sync, P_BOOL,
+ NULL, NULL, NULL},
+#else
+ {"real_time_sync", "TRUE", &prefs_common.real_time_sync, P_BOOL,
+ NULL, NULL, NULL},
+#endif
{NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL}
};
gint never_send_retrcpt;
gint hide_quotes;
gboolean unsafe_ssl_certs;
+ gboolean real_time_sync;
};
extern PrefsCommon prefs_common;
GtkWidget *spinbtn_iotimeout;
GtkWidget *checkbtn_gtk_can_change_accels;
GtkWidget *checkbtn_askonfilter;
+ GtkWidget *checkbtn_real_time_sync;
} OtherPage;
static struct KeybindDialog {
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);
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);
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->spinbtn_iotimeout = spinbtn_iotimeout;
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;
}
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->checkbtn_gtk_can_change_accels));