Commit Graph

537 Commits (d44a68ec6950c533cf67ee2a34f9888a4ae569cc)

Author SHA1 Message Date
Manos Pitsidianakis bfc36f63de
imap: add byte cache for Envelopes in IMAP backend 2019-09-15 23:38:31 +03:00
Manos Pitsidianakis 2eb41f3d3d
ui: dedup history suggestions in command execute bar 2019-09-15 23:38:31 +03:00
Manos Pitsidianakis 3ae2d03663
ui: add triptych thread mailing view
This mail list view shows one entry per thread just like CompactListing,
but the entry is slightly bigger just like in some GUIs, and when the
thread is opened the view becomes 3 columned:

+--+-------+----+
|~~|-------|~~~ |
|~~|-------|~~  |
|  |-------|    |
|  |-------|~~~ |
+--+-------+----+

This is meant to be used with bigger terminal sizes
2019-09-15 23:38:31 +03:00
Manos Pitsidianakis e3cd2d4c67
ui: save execute cmd history to XDG_DATA_DIR 2019-09-15 13:21:15 +03:00
Manos Pitsidianakis f61a43108c
ui: show worker and static threads in account tab 2019-09-15 13:21:15 +03:00
Manos Pitsidianakis f394fde143
add priority and info to jobs and workers
jobs now have a priority given to them, in order to parse some mailboxes
(eg INBOX, Sent) first.

worker threads now can set their names and status
2019-09-15 13:21:14 +03:00
Manos Pitsidianakis fd38dbed48
override configuration with per-folder configs 2019-09-15 13:21:14 +03:00
Manos Pitsidianakis 81a55abc7c
Update crossbeam to 0.7.2 and remove chan 2019-09-15 13:21:14 +03:00
Manos Pitsidianakis ecb3fd7f3d
Add dyn keyword to Trait objects
And fix some unused var warnings as well
2019-09-15 13:21:14 +03:00
Manos Pitsidianakis d1d11356db
imap: get() ENVELOPE instead of RFC822.HEADER; it's faster 2019-09-15 13:21:14 +03:00
Manos Pitsidianakis 335a1011de
imap: add watch 2019-09-15 13:21:14 +03:00
Manos Pitsidianakis c3e3c98fb0
melib: filter subscribed folders in MailBackend::new() 2019-09-15 13:21:14 +03:00
Manos Pitsidianakis 64dc44f18f
imap: replace unwraps with checks 2019-09-15 13:21:14 +03:00
Manos Pitsidianakis 525bd16493
imap: add folder operations in backend 2019-09-15 13:21:14 +03:00
Manos Pitsidianakis c9f7b41e47
imap: continuous payload delivery in async workers 2019-09-15 13:21:13 +03:00
Manos Pitsidianakis c561814cd6
imap: add `danger_accept_invalid_certs` option 2019-09-15 13:21:13 +03:00
Manos Pitsidianakis c2c5f2db69
melib: add Failure to RefreshEventKind 2019-09-15 13:21:13 +03:00
Manos Pitsidianakis 0812242f60
Add IMAP backend
TODOs: new message events (untagged responses)
2019-09-15 13:21:13 +03:00
Manos Pitsidianakis 3f7d962abd
melib: remove ThreadTree, use ThreadNodes for root_set
Remove ThreadTree index in Threads {} struct. Keep a Vec<ThreadHash> for
root_set state of mailbox instead of rebuilding ThreadTrees every
time.
2019-09-08 11:49:23 +03:00
Manos Pitsidianakis dc2184a9de
melib: add Folder operations in mail backends
Add following operations in mail backend:
- Create,
- Delete,
- Subscribe,
- Unsubscribe,
- Rename
2019-09-08 11:15:57 +03:00
Manos Pitsidianakis 8b0dff728d
ui: don't show new mail notifications in ignored folders 2019-09-08 11:13:51 +03:00
Manos Pitsidianakis a866e060a1
ui: open MessageRfc822 attachments in new tab 2019-09-08 11:13:51 +03:00
Manos Pitsidianakis f72fb069fa
ui: add paste input in StatusBar 2019-08-30 18:41:25 +03:00
Manos Pitsidianakis 1328f994f3
Make config objects Serializable with serde 2019-08-25 21:44:19 +03:00
Manos Pitsidianakis 02b0f69e14
Replace config crate with toml
config crate was not really needed
2019-08-25 14:14:54 +03:00
Manos Pitsidianakis b474b44b10
Add special use semantics for mailboxes 2019-08-25 10:48:01 +03:00
Manos Pitsidianakis 76909a1959
add folder subscriptions 2019-08-25 10:48:01 +03:00
Manos Pitsidianakis b39b285711
ui: fix flag colors in re-highlight in CompactListing 2019-08-18 15:47:10 +03:00
Manos Pitsidianakis 734bc109b0
ui: refactor menu 2019-08-18 15:47:10 +03:00
Manos Pitsidianakis 1845b046fa
ui: add attribute support
bold/italic etc
2019-08-18 15:47:09 +03:00
Manos Pitsidianakis 2610e9c055
ui: don't check terminal size in ThreadView 2019-08-17 12:56:11 +03:00
Manos Pitsidianakis c0dcd7254a
ui: bound check in draw_horz in ThreadView 2019-08-17 12:26:32 +03:00
Manos Pitsidianakis e5f8714162
ui: make wide chars occupy more than one cell
If setting a wide char to a Cell, mark the next one as empty in order to
skip printing it.

This prevents the following misalignment:
  |   subject
  |📎  Fwd: RE:
  |   second subject
2019-08-17 12:22:54 +03:00
Manos Pitsidianakis af573b57f1
ui: add nonavailable folder checks 2019-08-15 11:30:25 +03:00
Manos Pitsidianakis 84a042411d
melib: remove unnecessary unsafe impls 2019-08-15 11:30:25 +03:00
Manos Pitsidianakis 89b1e381dc
melib: recreate removed email if it comes back
If an email is removed by an outside actor, it is marked as removed.
Renaming files first send a Remove event and then a Rename one. So if a
removed email turns out to have been renamed by someone else, issue a
Create event to get it back.
2019-08-04 00:47:03 +03:00
Manos Pitsidianakis 16a5d9b28a
ui, ThreadView: update seen flag in ThreadEntries
Update seen flag when receiving EnvelopeRename events.
2019-08-04 00:30:40 +03:00
Manos Pitsidianakis 84950ad740
ui, CompactListing: Don't accept listing actions if unfocused 2019-08-04 00:28:20 +03:00
Manos Pitsidianakis fed13816dd
Bump version to all workspace crates 2019-08-03 23:59:49 +03:00
Manos Pitsidianakis 22f11445e2
Print error and exit if Maildir path config is wrong 2019-08-03 23:55:32 +03:00
Manos Pitsidianakis bc7da4610e
Send MailboxUpdate events when threads are updated
Depending on the insertion order of folders which is non-deterministic
because it relies on the kernel's scheduling of parsing threads, the
listing the user sees might not be up-to-date because later thread
updates are never broadcast. This results in inconsistencies between
threads and mail listings when a thread's root envelope was part of a
not broadcast update leading to `key not found` panics in a listing's
hashmaps.
2019-08-02 15:17:23 +03:00
Manos Pitsidianakis 3aec1f6dec
Bump version to 0.2.0 2019-08-02 01:00:54 +03:00
Manos Pitsidianakis 714f8255fc
ui: fix pageup/dn behaviour 2019-08-02 01:00:54 +03:00
Matthias Beyer 678921d2b7
Remove unused imports
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:54 +03:00
Matthias Beyer 79becdcc42
Fix: This comment is not a proper rustdoc comment and probably should not be one anyways
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:54 +03:00
Matthias Beyer 6e716946b7
Reformat to be a proper rust comment
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:53 +03:00
Matthias Beyer fb36dc58c8
Remove unused variable
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:53 +03:00
Matthias Beyer abcd68e789
Make function pub
As this file was written (according to the top-level comment) for this
function, it should be pub.

This fixes an "unused function" warning.

Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:53 +03:00
Matthias Beyer fecb66e877
Print to stderr when printing error
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:53 +03:00
Matthias Beyer 02bfda5eed
Prefix unused variables with underscore
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2019-08-02 01:00:53 +03:00