Also the read flags are synced with the server. This makes it easy to have the same mailbox state on different machines.
Messages could be deleted by delete them form the folder (not when moving them to trash) This maybe needs some more thoughts but its a save solution. One problem with moving it to trash is that you also want to have the option to restore it again. If it is a header only messages and you delete it from the server you lose the body part. Complete messages could theoretically be append to the mailbox again when restoring the mail form trash. Append is commented out though...
An solution for the delete problem would be to move the message to a trash folder on the server. Moving mails on the server is not implemented yet, though.
You can subscribe or unsubscribe to a mailbox using the imap pref panel. The settings are written to the server and are not stored locally.
Add some helper classes which could also be used for POP and SMTP:
ServerConnection: abstract ssl or socket connection
ConnectionReader (still a bit IMAP specific but could be easily separated IMHO): read complete lines or a bunch of data more efficient. Old implementation did it byte by byte, this class read data in bunches and buffer the left over for the next request...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40399 a95241bf-73f2-0310-859d-f6bbb57e9c96
Remove button in the pref app removes the complete account because we don't have separate chains any more. The pref app stays a mess, needs some layout love! (I did it even look worse...)
The new account/mail settings classes know if they have been changed but the current pref panel does not use this feature very well. It always mark the settings as modified when the settings view is displayed or more precise when the settings view is detached from the pref window, this could be optimized. The according mail protocol is completely restarted when their settings changed.
Some system filters are now directly integrated in the mail protocols. Hopefully make things easier to understand.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40398 a95241bf-73f2-0310-859d-f6bbb57e9c96
Accounts are now stored in a separate file. Previously they where somehow magically assembled from the chain ids. Now its possible to remove a account temporary by removing the account file form the account folder.
Each account could have an inbound protocol, an outbound protocol and some filters.
Mails are now associated with an account and not with a chain. This required to replace the chain id attribute by an account attribute.
Replace BMailFilter and BMailChain by a less general approach. Basically the chain had a list of filters and call the ProcessMailMessage for each filter. This made it sometime difficult to understand what is going on, e.g. sometimes a filter used information gathered by another filters. The new MailProtocol and MailFilter classes are calling more dedicated hook functions, e.g. HeaderFetched or MessageReadyToSend.
As before all MailProtocol's (plus their filters) are running in their own thread.
Cleaned up the error and status window a bit. Abstracted the interface to these windows. Should be easy to write a BNotification api back-end now.
Parsing of mail headers is much faster now. Fetching the headers of a large mailbox takes ~min and not ~hour now! Initial checkout time is in the same order like Opera. The problem was the massive use of fgets in parse_header (mail_util.cpp) now the complete header is read in one go. Furthermore, only interesting fields are extracted.
Remove some unused files, BeOS relicts... Feel free to translate the mail server and remove the own language system (headers/private/mail/MDRLanguage.h).
Sorry for the remaining old (and new) coding style issues, sometime just ignore them, to many :(
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40397 a95241bf-73f2-0310-859d-f6bbb57e9c96
to create a package that refers to a license that is not a system
license or contained in the package
* added package-info flags (currently only approve_license and
system_package)
* adjusted package-reader/writer and pkgman accordingly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40393 a95241bf-73f2-0310-859d-f6bbb57e9c96
Not yet integrated in the app as it needs a bit of work to give
him some place in the window without breaking too much
its visual appareance.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40391 a95241bf-73f2-0310-859d-f6bbb57e9c96
* PackageWriterImpl no longer accesses members of WriterImplBase
directly, but uses getters/setters instead
* package attribute registration has been moved from PackageWriterImpl
to WriterImplBase, as it will be used in the same manner by the
RepositoryWriter
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40388 a95241bf-73f2-0310-859d-f6bbb57e9c96
There was a strange crash under gcc4. After some searching I found out that there is some clash with namespaces.
After removing the namespaces it works again. Could somebody explain what went wrong there?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40386 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Make sure that video and audio default to display rating as rating (untested).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40382 a95241bf-73f2-0310-859d-f6bbb57e9c96
is now only a fallback attribute list which is install in case the Person
MIME type has no attributes at all. Otherwise the GUI is completely driven
by the current Person attributes, as configured (and sorted) by FileTypes.
This has been on my mental TODO list since years. Finally one can add
a "Cell phone" attribute in Filetypes and actually see and edit it in
People. Or a birth day attribute. If I had read the previous code correctly,
it was only due to a bug that People did not remove those any attributes
on every launch.
I've tested this quite a bit, but it wouldn't hurt to test it some more.
The only "regression" I am aware of is that State and Zip code are not
in one line anymore. Perhaps this feature could be reintroduced by looking
at the display width and if two attributes are short, put them in one line...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40381 a95241bf-73f2-0310-859d-f6bbb57e9c96
to manually sort the attributes and b) very obvious how to do it. Drag&drop
sorting should be implemented eventually (more convenient but less obvious),
but this works pretty well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40380 a95241bf-73f2-0310-859d-f6bbb57e9c96
if all other attributes are the same as before. This first is helping
a feature I am going to commit next, the other is making sure that a
newly created attribute is selected, I pondered other options to realize
this feature against the highly asynchronous model updates, but this
seems to be most robust and highly unlikely to be triggered in accident.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40378 a95241bf-73f2-0310-859d-f6bbb57e9c96
* pulled commonly useful parts out of PackageWriterImpl into
WriterImplBase
* moved CachedStringTable and related methods into a separate class,
StringCache, in order to support having more than one string cache
per package file
* made package attribute section use a string cache, too, as that's
going to be very useful for repositories
* instead of writing package attributes directly, we now collect
corresponding PackageAttributes and write those later
* adjusted package reader accordingly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40376 a95241bf-73f2-0310-859d-f6bbb57e9c96
fixed size flag at once. Not sure if this can be merged into one of the
existing GetInfo() variants without breaking binary compatibility.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40374 a95241bf-73f2-0310-859d-f6bbb57e9c96
a BSplitView. The layout weight is remembered in the settings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40373 a95241bf-73f2-0310-859d-f6bbb57e9c96
types and defines of HPKG
* added header, magic and version for haiku repository format
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40370 a95241bf-73f2-0310-859d-f6bbb57e9c96
The names of settings files should not be localized. Pointed by
Sergei Reznikov (Diver). Thanx!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40367 a95241bf-73f2-0310-859d-f6bbb57e9c96
related to gradients. This was for example very noticeable when running
MediaPlayer which redraws the slider a lot. With three movies running,
app_server would leak at about 100KiB per second.
Might be related to #7071 or even fix it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40364 a95241bf-73f2-0310-859d-f6bbb57e9c96
Localization files of the EXR Translation Add-On for Finnish, Polish and
Ukrainian languages replaced with correct versions. Previous version was empty
because of my local problem downloading them from HTA.
I'm sorry for unconvenience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40361 a95241bf-73f2-0310-859d-f6bbb57e9c96
section access into the SectionInfo structure, of which
PackageReaderImpl now keeps two instances and a pointer to the
current of these two
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40359 a95241bf-73f2-0310-859d-f6bbb57e9c96
#7135#7140#7141#7145#7186#7188#7191#7136#7187#7184#7185#7192#7138#7139
with some changes and exclusions:
- all attempts to localize "fprintf(stderr,..." and "printf(..."
replaced by _untranslated_ "syslog(LOG_ERR ...";
- following *Translator.rdef files, that were not added in mentioned patches
were additionally created:
SGI, TIFF, RAW, RTF, PPM, WebP, EXR, STXT, WonderBrush, GIF, TGA;
- some small fixes for consistent catalogs building.
Thank you, Jorma! Please check. ;-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40357 a95241bf-73f2-0310-859d-f6bbb57e9c96