From kmail-devel Tue Sep 10 10:31:01 2002 From: Don Sanders Date: Tue, 10 Sep 2002 10:31:01 +0000 To: kmail-devel Subject: Stuff I'm working on X-MARC-Message: https://marc.info/?l=kmail-devel&m=103165356723524 Hi, Here is a list of changes I'm currently working on in make_it_cool and expect to complete over the next 6-9 weeks. Port widgets to use KParts, this is to work towards kde-pim integration which is a critical goal of mine. Use mmap for zero-copy parsing and display of large messages. I really think mmap is a good way of solving this problem, and I tested my zero-copy parsing code more last night and I can't see anything wrong with it, it works fine for 20MB plus messages for me. (except I didn't handle 7bit encoded parts, I crashed on those, fixed now). And don't do dumb things like needlessly dumping a copy of all attachments to disk when the message is displayed. KMAcctExpPop -> KMAcctPop, is changed to use a hidden MailDir folder to provide safe downloading of large messages straight to disk. Implement KMFolder:Iterator and use it when looping over messages instead of using a low-level integer index. Implement ref counting for KMMessage Implement KMMessage KMFolder::message(KMFolder::iterator) that returns a ref counted KMMessage and KMMsgInfo KMFolder::messageInfo(KMFolder::iterator) that returns a ref counted KMMsgInfo, and get rid of getMsg, unGetMsg and even KMMsgBase. I don't like that hierarchy. Keep an x(how big?) megabyte cache of KMMessages this means we don't necessarily even have to parse a message when it is reselected. Also keep folders open (so changing back to them is fast) and turn on Sam's commented out mmap code to make folder switching even faster. (The commented out code works fine just I was scared to use mmap). Make it easier to use serial numbers, (provide simple methods in the kernel instead of having to explicitly go through the msgdict). And then use the numbers in more places. Like in KMCommands so that the search dialog can have a context menu. Change the .sorted file so that it stores serial numbers this means it remains valid even after messages are deleted. Which will speed up folder switching. Add some comments to it and maybe move it into KMFolder. Also add highlevel comments to other classes. Port KMFolderImap to MailDir and implement body caching by default. Implement KMVFolder virtual folder support. Update gui to support virtual folders. Provide a framework for embedding KMail, KOrganizer and KAddressbook. I really want to do this as if we fork this gives us a legitimate different goal from KMail rather than just competing directly with KMail. But also still support being a stand alone mail client. Try to optimize start up time it's too slow. Change the KMFolder interface so that it fits KMFolderImap better and we can get rid of all the protocol == "imap" in the code. Don. _______________________________________________ KMail Developers mailing list kmail@mail.kde.org http://mail.kde.org/mailman/listinfo/kmail