[balsa/replace-libbalsa-mailbox-local-load-messages] Drop libbalsa_mailbox_local_load_messages
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/replace-libbalsa-mailbox-local-load-messages] Drop libbalsa_mailbox_local_load_messages
- Date: Tue, 10 Mar 2020 01:26:51 +0000 (UTC)
commit 50aa6ed39b4e0d8d36a776e2cf26a6927e948f76
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Mon Mar 9 21:25:13 2020 -0400
Drop libbalsa_mailbox_local_load_messages
Remove libbalsa_mailbox_local_load_messages from the API, and
replace it with LibBalsaMailbox::check virtual method.
* libbalsa/mailbox_local.c (libbalsa_mailbox_local_class_init),
(lbml_load_messages_idle_cb), (libbalsa_mailbox_local_check),
(libbalsa_mailbox_local_set_threading):
* libbalsa/mailbox_local.h:
* libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_check):
* libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_check):
* libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_check):
ChangeLog | 13 +++++++++++++
libbalsa/mailbox_local.c | 28 +++++++++++++++-------------
libbalsa/mailbox_local.h | 2 --
libbalsa/mailbox_maildir.c | 5 +++--
libbalsa/mailbox_mbox.c | 4 +++-
libbalsa/mailbox_mh.c | 5 +++--
6 files changed, 37 insertions(+), 20 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index ccfb3c6ba..0a847f519 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2020-03-09 Peter Bloomfield <pbloomfield bellsouth net>
+
+ Remove libbalsa_mailbox_local_load_messages from the API, and
+ replace it with LibBalsaMailbox::check virtual method.
+
+ * libbalsa/mailbox_local.c (libbalsa_mailbox_local_class_init),
+ (lbml_load_messages_idle_cb), (libbalsa_mailbox_local_check),
+ (libbalsa_mailbox_local_set_threading):
+ * libbalsa/mailbox_local.h:
+ * libbalsa/mailbox_maildir.c (libbalsa_mailbox_maildir_check):
+ * libbalsa/mailbox_mbox.c (libbalsa_mailbox_mbox_check):
+ * libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_check):
+
2020-03-06 Peter Bloomfield <pbloomfield bellsouth net>
mailbox: Make cache-message a class method
diff --git a/libbalsa/mailbox_local.c b/libbalsa/mailbox_local.c
index 9793750af..968102bcb 100644
--- a/libbalsa/mailbox_local.c
+++ b/libbalsa/mailbox_local.c
@@ -126,6 +126,7 @@ static gboolean lbml_set_threading_idle_cb(LibBalsaMailboxLocal *local);
static void libbalsa_mailbox_local_cache_message(LibBalsaMailbox * mailbox,
guint msgno,
LibBalsaMessage * message);
+static void libbalsa_mailbox_local_check(LibBalsaMailbox *mailbox);
/* LibBalsaMailboxLocal class method: */
static void lbm_local_real_remove_files(LibBalsaMailboxLocal * local);
@@ -182,6 +183,8 @@ libbalsa_mailbox_local_class_init(LibBalsaMailboxLocalClass * klass)
libbalsa_mailbox_local_test_can_reach;
libbalsa_mailbox_class->cache_message =
libbalsa_mailbox_local_cache_message;
+ libbalsa_mailbox_class->check =
+ libbalsa_mailbox_local_check;
klass->check_files = NULL;
klass->set_path = NULL;
@@ -1080,17 +1083,18 @@ lbml_load_messages_idle_cb(LibBalsaMailbox * mailbox)
}
lastno = libbalsa_mailbox_total_messages(mailbox);
- msgno = priv->msgno;
- new_messages = lastno - msgno;
+ new_messages = 0;
lastn = g_node_last_child(msg_tree);
get_info = LIBBALSA_MAILBOX_LOCAL_GET_CLASS(local)->get_info;
- while (++msgno <= lastno){
+ for (msgno = 1; msgno <= lastno; msgno++) {
LibBalsaMailboxLocalMessageInfo *msg_info = get_info(local, msgno);
- libbalsa_mailbox_local_load_message(local, &lastn, msgno, msg_info);
-
- if (msg_info->message)
- lbm_local_cache_message(local, msgno, msg_info->message);
+ if (!msg_info->loaded) {
+ ++new_messages;
+ libbalsa_mailbox_local_load_message(local, &lastn, msgno, msg_info);
+ if (msg_info->message != NULL)
+ lbm_local_cache_message(local, msgno, msg_info->message);
+ }
}
priv->messages_loaded = TRUE;
@@ -1105,9 +1109,8 @@ lbml_load_messages_idle_cb(LibBalsaMailbox * mailbox)
return FALSE;
}
-void
-libbalsa_mailbox_local_load_messages(LibBalsaMailbox *mailbox,
- guint msgno)
+static void
+libbalsa_mailbox_local_check(LibBalsaMailbox *mailbox)
{
LibBalsaMailboxLocal *local = (LibBalsaMailboxLocal *) mailbox;
LibBalsaMailboxLocalPrivate *priv =
@@ -1117,8 +1120,7 @@ libbalsa_mailbox_local_load_messages(LibBalsaMailbox *mailbox,
libbalsa_lock_mailbox(mailbox);
priv->messages_loaded = FALSE;
- if (!priv->load_messages_id) {
- priv->msgno = msgno;
+ if (priv->load_messages_id == 0) {
priv->load_messages_id =
g_idle_add((GSourceFunc) lbml_load_messages_idle_cb, mailbox);
}
@@ -1229,7 +1231,7 @@ libbalsa_mailbox_local_set_threading(LibBalsaMailbox * mailbox,
}
if (!ok)
return; /* Something bad happened */
- libbalsa_mailbox_local_load_messages(mailbox, total);
+ libbalsa_mailbox_local_check(mailbox);
}
#if defined(DEBUG_LOADING_AND_THREADING)
diff --git a/libbalsa/mailbox_local.h b/libbalsa/mailbox_local.h
index 562227a38..ab2d25285 100644
--- a/libbalsa/mailbox_local.h
+++ b/libbalsa/mailbox_local.h
@@ -71,8 +71,6 @@ gint libbalsa_mailbox_local_set_path(LibBalsaMailboxLocal * mailbox,
#define libbalsa_mailbox_local_get_path(local) \
(libbalsa_mailbox_get_url((LibBalsaMailbox*)local)+7)
-void libbalsa_mailbox_local_load_messages(LibBalsaMailbox * mailbox,
- guint last_msgno);
void libbalsa_mailbox_local_msgno_removed(LibBalsaMailbox * mailbox,
guint msgno);
void libbalsa_mailbox_local_remove_files(LibBalsaMailboxLocal *mailbox);
diff --git a/libbalsa/mailbox_maildir.c b/libbalsa/mailbox_maildir.c
index b5d7651fe..f9c985f2c 100644
--- a/libbalsa/mailbox_maildir.c
+++ b/libbalsa/mailbox_maildir.c
@@ -580,9 +580,10 @@ libbalsa_mailbox_maildir_check(LibBalsaMailbox * mailbox)
libbalsa_message_set_msgno(msg_info->local_info.message, msgno);
}
- msgno = mdir->msgno_2_msg_info->len;
lbm_maildir_parse_subdirs(mdir);
- libbalsa_mailbox_local_load_messages(mailbox, msgno);
+
+ if (LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_maildir_parent_class)->check != NULL)
+ LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_maildir_parent_class)->check(mailbox);
}
static void
diff --git a/libbalsa/mailbox_mbox.c b/libbalsa/mailbox_mbox.c
index bbf3597c3..9e00b4602 100644
--- a/libbalsa/mailbox_mbox.c
+++ b/libbalsa/mailbox_mbox.c
@@ -1074,7 +1074,9 @@ libbalsa_mailbox_mbox_check(LibBalsaMailbox * mailbox)
#endif
libbalsa_mime_stream_shared_unlock(mbox_stream);
mbox_unlock(mailbox, mbox_stream);
- libbalsa_mailbox_local_load_messages(mailbox, msgno);
+
+ if (LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_mbox_parent_class)->check != NULL)
+ LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_mbox_parent_class)->check(mailbox);
}
static void
diff --git a/libbalsa/mailbox_mh.c b/libbalsa/mailbox_mh.c
index efe183a83..e7846f6cc 100644
--- a/libbalsa/mailbox_mh.c
+++ b/libbalsa/mailbox_mh.c
@@ -676,9 +676,10 @@ libbalsa_mailbox_mh_check(LibBalsaMailbox * mailbox)
libbalsa_message_set_msgno(msg_info->local_info.message, msgno);
}
- msgno = mh->msgno_2_msg_info->len;
lbm_mh_parse_both(mh);
- libbalsa_mailbox_local_load_messages(mailbox, msgno);
+
+ if (LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_mh_parent_class)->check != NULL)
+ LIBBALSA_MAILBOX_CLASS(libbalsa_mailbox_mh_parent_class)->check(mailbox);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]