Commit Graph

784 Commits (a41dc6c38a95ce7c23ebf2adf086209dbd36145a)
 

Author SHA1 Message Date
Manos Pitsidianakis a41dc6c38a
JMAP WIP #5 5 years ago
Manos Pitsidianakis 1ee8ef7a05
JMAP WIP #4 5 years ago
Manos Pitsidianakis a1efeed343
JMAP WIP #3 5 years ago
Manos Pitsidianakis e8611cca2f
JMAP WIP #2 5 years ago
Manos Pitsidianakis a43f6919cc
JMAP WIP 5 years ago
Manos Pitsidianakis d69be5bb0b
ui/accounts: don't panic if Backend::folders is_err 5 years ago
Manos Pitsidianakis 328b17a995
ui/CompactListing: use Segment Trees to calculate max page column width
Given a range of entries that occupy a page (eg [0, 50] for a page of 50
rows high) get the max entry width for this column by using maximum
range queries with segment trees.
5 years ago
Manos Pitsidianakis 7432be5aaa
ui/listings: truncate subject at 150 grapheme width
Large subjects would cause large CellBuffer allocations.
5 years ago
Manos Pitsidianakis b401b64f35
ui/CellBuffer: change row_iter() bounds to Range
Writing a range x..y is more ergonomic than (x, y+ 1)
5 years ago
Manos Pitsidianakis 651fda1467
text_processing: use grapheme length in Truncate 5 years ago
Manos Pitsidianakis d9b568cfb4
melib/envelope: decode other_headers values 5 years ago
Manos Pitsidianakis 59f7f03d64
ui: refactor watch thread spawning procedure
- Remove unnecessary parameters from watch(), reload()
- Add NewThread event that adds new threads in
work_controller.static_threads hashmap
- removed obsolete field State.threads
- silence watch thread error notifications
5 years ago
Manos Pitsidianakis 7732b851e6
melib: fix minor header parsing errors
- set_subject checked if last byte was control character instead of last
character. Characters can be multi-byte, duh.
- email::parser::date didn't provide for Date values that had -0000
instead of +0000 (that's a chrono requirement/bug)
5 years ago
Manos Pitsidianakis 81c70b0136
melib: small test cosmetic fixes 5 years ago
Manos Pitsidianakis e79d9aa1c2
melib/parser: parse quote-printable CRLF soft breaks
Check for CRLF soft breaks after checking for LF ones
5 years ago
Manos Pitsidianakis b93154a596
ui/MailListings: fix set_seen action not being processed 5 years ago
Manos Pitsidianakis 9fae0f2fa3
melib/imap: prevent minor blocking cases 5 years ago
Manos Pitsidianakis f05a4205f7
melib/ui: small fixes
- melib/imap: accept quoted strings with escaped quotes in
protocol_parser
- ui/accounts: return unavailabity correctly if folder's worker slot is
empty instead of judging only by its vacancy
- ui/MailView: set view as not dirty if envelope loading from backend
fails so that it stops requesting it in every subsequent redraw
5 years ago
Manos Pitsidianakis 6f76cd9acc
melib: add special_usage() method to BackendFolder
Eventually after loading potential usage values from configuration,
backends will be able to change the usage values themselves. IMAP and
JMAP have the ability to set Mailbox roles (IMAP needs LIST-SPECIAL
extension
5 years ago
Manos Pitsidianakis bce97d71bb
testing/imap_conn: update imapconn shell use 5 years ago
Manos Pitsidianakis 504b658f68
melib/imap: add UidFetchResponse struct and parser
Add handwritten parser for UID FETCH responses and use it for all UID
FETCH calls.
5 years ago
Manos Pitsidianakis 569127fac5
melib/imap: detect untagged CAPABILITY responses
Gmail sends an untagged CAPABILITY response before accepting login, so
be smarter when logging in
5 years ago
Manos Pitsidianakis 8235af9237
melib/imap: quote mailbox names on SELECT/EXAMINE 5 years ago
Manos Pitsidianakis a20e08eb43
imap: treat \NoSelect mailboxes as empty
\NoSelect are mailboxes that can't be selected, thus treat them as if
they are empty.
5 years ago
Manos Pitsidianakis ad7c91bc29
ui/sqlite3: warn user if db hasn't been initialised 5 years ago
Manos Pitsidianakis f3a7fa6350
Bump rustc requirement to 1.39 5 years ago
Manos Pitsidianakis 70357328ea
Fix typos in Makefile 5 years ago
Manos Pitsidianakis 40e928dad3
Push version to 0.4.1 5 years ago
Manos Pitsidianakis a130871ff1
Add documentation for tags 5 years ago
Manos Pitsidianakis 0eaf17871a
melib: add set_tags command in BackendOp 5 years ago
Manos Pitsidianakis f632bc4c08
ui: update rows on TagAdd/TagRemove
Except for threadlisting
5 years ago
Manos Pitsidianakis c6f1fa9be0
ui: Add TagAction
Add/Remove
5 years ago
Manos Pitsidianakis dab9b39f4d
melib/imap: detect tag (\* flag) support 5 years ago
Manos Pitsidianakis fdb42cfc0c
ui/status: show tag and search backend info
Show tag and search backend info for each account.
5 years ago
Manos Pitsidianakis b858fcb0ab
ui/conf: change field order
Change field order because FolderConf has an extra_settings sinkhole
field for serde, which catches any setting that could go to the other
field.
5 years ago
Manos Pitsidianakis e5da10093d
ui/listing: use MailListingTrait instead of ListingTrait 5 years ago
Manos Pitsidianakis 8e27b86453
Add MailListingTrait
Inheriting ListingTrait
5 years ago
Manos Pitsidianakis 6cf73b4238
Remove Option<EnvelopeHash> from ListingTrait
It was never used.
5 years ago
Manos Pitsidianakis 46a807eee1
melib: remove control characters from subject 5 years ago
Manos Pitsidianakis d376f83f48
ui/conversations: fix padding left unpainted 5 years ago
Manos Pitsidianakis d048d8566d
ui: add format=flowed if text/plain att is the only one 5 years ago
Manos Pitsidianakis c431fb6dff
ui: use BoundsIterator in clear_area 5 years ago
Manos Pitsidianakis 9d8d3e09f4
melib: remove unused methods from BackendOp 5 years ago
Manos Pitsidianakis 3a3b815b3a
ui/accounts: add save_special method for mail
Add save_special method in Accounts. save_special() saves mail to the
first folder_type (eg Draft, Sent, Inbox) folder it finds or to any
other as fall over.
5 years ago
Manos Pitsidianakis a059e4ad4c
melib: add summary field to MeliError 5 years ago
Manos Pitsidianakis 7010ee7495
melib/mbox: send Finished in Mbox get 5 years ago
Manos Pitsidianakis ef26b03bb6
Add some documentation 5 years ago
Manos Pitsidianakis 16ccff0f44
ui: add RowIterator and BoundsIterator for CellBuffer
Use `RowIterator` to iterate the cells of a row without the need to do
any bounds checking; the iterator will simply return `None` when it
reaches the end of the row.  `RowIterator` can be created via the
`CellBuffer::row_iter` method and can be returned by `BoundsIterator`
which iterates each row.
5 years ago
Manos Pitsidianakis 3ae43817a1
ui: user-configured colors for tags in mail listings 5 years ago
Manos Pitsidianakis bca33370cc
Add tag settings in UI config module 5 years ago