[RFC] : Balsa-index API



	Hi all,
here is what I was talking about for the port to gnome2. I'm focusing on 
balsa-index but I hope others will do the same for other complex balsa 
object. The aim is to make clearer the goals of each object (what it was 
supposed to do and what we plan for it in the future), and to clean, 
simplify and perhaps complete his methoeds (ie external API).

Here I go.

For me balsa-index is an object that handles user interaction on a list of 
messages through a certain GUI. So it must assume representing the list of 
messages, taking care of user requests (selection, deletion, different 
types of viewing : none or preview pane or in a different window or source 
visualisation..., transfer...) and forward the orders to libbalsa 
functions (libbalsa_*_messages...).
Here I don't bind only one balsa-index to one mailbox. I want balsa-index 
to manage a certain list of messages (so that one message could be 
displayed in different balsa-indexes) but obviously we need a sync 
mechanism so that whenever the message list is affected by an external 
change (ex : another balsa-index has issued a delete command on messages 
that are also displayd in another balsa-index...) it tells the balsa-index 
to refresh.
I want this new flexibility to handle the "virtual folders" thing : ie you 
want balsa to look for all messages matching filters and put the list in a 
window. The best way, IMHO, to do that would be to have a flexible 
balsa-index so that we represent the list in the same way as a mailbox 
content so that user can do the same actions directly on the filtered 
messages : best example is when you have a spam filter but you want to be 
able to browse the rejected mails to be sure your filter has not included 
important mails.
Now I'm note sure we need the visualisation of the messages body in the 
"virtual folder" window, I rather imagine that when you double-click on 
the message in the list you're sent to the mailbox message index where the 
messages sits actually. But this should be configurable.

So to do that we need an API. This is for the episod 2 ;-), in the 
meantime, any comment on the goals are welcome.
Bye
Manu



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]